Agno 支持使用 MongoDbStorage
类作为 Teams 的存储后端。
您需要提供 db_url
或 client
。以下示例使用了 db_url
。
"""
运行:`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.mongodb import MongoDbStorage
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.hackernews import HackerNewsTools
from pydantic import BaseModel
# MongoDB 连接设置
db_url = "mongodb://localhost:27017"
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=MongoDbStorage(
collection_name="team_sessions", db_url=db_url, db_name="agno"
),
instructions=[
"首先,在 hackernews 上搜索用户询问的内容。",
"然后,让网络搜索员搜索每个故事以获取更多信息。",
"最后,提供一个周到且引人入胜的总结。",
],
response_model=Article,
show_tool_calls=True,
markdown=True,
debug_mode=True,
show_members_responses=True,
)
hn_team.print_response("写一篇关于 hackernews 上排名前 2 的故事的文章")
参数 | 类型 | 默认值 | 描述 |
---|---|---|---|
collection_name | str | - | 要使用的集合的名称。 |
db_url | Optional[str] | None | 数据库 URL,如果提供的话。 |
db_name | str | "agno" | 数据库名称。 |
client | Optional[MongoClient] | None | MongoDB 客户端,如果提供的话。 |