DuckDbTools 使 Agent 能够使用 DuckDb 运行 SQL 和分析数据。

先决条件

以下示例需要 DuckDB 库。要安装 DuckDB,请运行以下命令:

pip install duckdb

有关更多安装选项,请参阅 DuckDB 文档

示例

以下 Agent 将使用 SQL 分析电影文件并返回结果。

cookbook/tools/duckdb_tools.py
from agno.agent import Agent
from agno.tools.duckdb import DuckDbTools

agent = Agent(
    tools=[DuckDbTools()],
    show_tool_calls=True,
    system_message="Use this file for Movies data: https://agno-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv",
)

agent.print_response("What is the average rating of movies?", markdown=True, stream=False)

Toolkit 参数

参数类型默认值描述
db_pathstr-指定数据库文件的路径。
connectionDuckDBPyConnection-提供现有的 DuckDB 连接对象。
init_commandsList-在数据库连接上运行的初始 SQL 命令列表。
read_onlyboolFalse将数据库连接配置为只读。
configdict-数据库连接的配置选项。
run_queriesboolTrue指示在操作期间是否运行 SQL 查询。
inspect_queriesboolFalse启用对 SQL 查询的检查,而不执行它们。
create_tablesboolTrue允许在操作期间在数据库中创建表。
summarize_tablesboolTrue在操作期间启用表数据的摘要。
export_tablesboolFalse允许在操作期间将表导出为外部格式。

Toolkit 函数

函数描述
show_tables显示数据库中表的函数
describe_table描述表的函数
inspect_query检查查询并返回查询计划的函数。在运行查询之前,请务必检查查询。
run_query运行查询并返回结果的函数。
summarize_table计算表中汇总信息的函数。该函数启动一个查询,该查询计算所有列的多个汇总信息,包括最小值、最大值、平均值、标准差和近似唯一值。
get_table_name_from_path从路径获取表名的函数
create_table_from_path从路径创建表的函数
export_table_to_path以所需格式(默认为 parquet)保存表的函数。如果提供了路径,则表将保存在该路径下。例如:如果路径是 /tmp,则表将保存为 /tmp/table.parquet。否则,它将在当前目录中保存。
load_local_path_to_table将本地文件加载到 duckdb 的函数
load_local_csv_to_table将本地 CSV 文件加载到 duckdb 的函数
load_s3_path_to_table将 S3 中的文件加载到 duckdb 的函数
load_s3_csv_to_table将 S3 中的 CSV 文件加载到 duckdb 的函数
create_fts_index在表上创建全文搜索索引的函数
full_text_search在表的列中搜索特定文本/关键字的全文搜索函数

开发者资源