Agno 支持使用 PostgreSQL 作为团队存储后端,通过 PostgresStorage 类。

用法

运行 PgVector

安装 Docker Desktop 并使用以下命令在端口 5532 上运行 PgVector

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
postgres_storage_for_team.py
"""
运行: `pip install openai duckduckgo-search newspaper4k lxml_html_clean agno` 来安装依赖项
"""

from typing import List

from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.storage.postgres import PostgresStorage
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.hackernews import HackerNewsTools
from pydantic import BaseModel

db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"


class Article(BaseModel):
    title: str
    summary: str
    reference_links: List[str]


hn_researcher = Agent(
    name="HackerNews 研究员",
    model=OpenAIChat("gpt-4o"),
    role="从 hackernews 获取热门新闻。",
    tools=[HackerNewsTools()],
)

web_searcher = Agent(
    name="网络搜索员",
    model=OpenAIChat("gpt-4o"),
    role="搜索网络上的信息",
    tools=[DuckDuckGoTools()],
    add_datetime_to_instructions=True,
)


hn_team = Team(
    name="HackerNews 团队",
    mode="coordinate",
    model=OpenAIChat("gpt-4o"),
    members=[hn_researcher, web_searcher],
    storage=PostgresStorage(
        table_name="agent_sessions", db_url=db_url, auto_upgrade_schema=True
    ),
    instructions=[
        "首先,在 hackernews 上搜索用户询问的内容。",
        "然后,让网络搜索员搜索每条新闻以获取更多信息。",
        "最后,提供一个周到且引人入胜的总结。",
    ],
    response_model=Article,
    show_tool_calls=True,
    markdown=True,
    debug_mode=True,
    show_members_responses=True,
)

hn_team.print_response("写一篇关于 hackernews 上排名前 2 的故事的文章")

参数

参数类型默认值描述
table_namestr-要使用的表名。
schemaOptional[str]"ai"Schema 名称,默认为 "ai"。
db_urlOptional[str]None数据库 URL,如果提供的话。
db_engineOptional[Engine]None要使用的数据库引擎。
schema_versionint1Schema 的版本,默认为 1。
auto_upgrade_schemaboolFalse如果为 true,将在必要时自动升级 schema。

开发者资源