PostgresTools 使 Agent 能够与 PostgreSQL 数据库进行交互。

先决条件

以下示例需要 psycopg2 库。

pip install -U psycopg2

您还需要一个数据库。以下示例使用运行在 Docker 容器中的 Postgres 数据库。

docker run -d \
  -e POSTGRES_DB=ai \
  -e POSTGRES_USER=ai \
  -e POSTGRES_PASSWORD=ai \
  -e PGDATA=/var/lib/postgresql/data/pgdata \
  -v pgvolume:/var/lib/postgresql/data \
  -p 5532:5432 \
  --name pgvector \
  agno/pgvector:16

示例

以下 Agent 将列出数据库中的所有表。

cookbook/tools/postgres.py
from agno.agent import Agent
from agno.tools.postgres import PostgresTools

# 使用连接详细信息初始化 PostgresTools
postgres_tools = PostgresTools(
    host="localhost",
    port=5532,
    db_name="ai",
    user="ai",
    password="ai"
)

# 使用 PostgresTools 创建一个 Agent
agent = Agent(tools=[postgres_tools])

# 示例:要求 Agent 运行 SQL 查询
agent.print_response("""
请运行一个 SQL 查询,获取 users 表中过去 30 天注册的所有用户
""")

Toolkit 参数

名称类型默认值描述
connectionpsycopg2.extensions.connectionNone可选的数据库连接对象。
db_namestrNone可选的要连接的数据库名称。
userstrNone可选的数据库身份验证用户名。
passwordstrNone可选的数据库身份验证密码。
hoststrNone可选的数据库连接主机。
portintNone可选的数据库连接端口。
run_queriesboolTrue启用运行 SQL 查询。
inspect_queriesboolFalse在执行前启用检查 SQL 查询。
summarize_tablesboolTrue启用表结构摘要。
export_tablesboolFalse启用从数据库导出表。

Toolkit 函数

函数描述
show_tables获取并显示数据库中的表列表。返回表列表。
describe_table通过返回列、数据类型和最大字符长度来描述指定表的结构。参数包括指定表名的 ‘table’。返回表描述。
summarize_table通过计算数值列的最小值、最大值、平均值、标准差和非空计数等聚合函数来汇总表。参数包括指定表名的 ‘table’,以及可选的指定模式的 ‘table_schema’(默认为 “public”)。返回表的摘要。
inspect_query通过返回查询计划来检查 SQL 查询。参数包括指定 SQL 查询的 ‘query’。返回查询计划。
export_table_to_path将指定表以 CSV 格式导出到给定路径。参数包括指定表名的 ‘table’,以及可选的指定保存文件位置的 ‘path’(默认为当前目录)。返回导出操作的结果。
run_query执行 SQL 查询并返回结果。参数包括指定 SQL 查询的 ‘query’。返回查询执行结果。

开发者资源