此示例展示了如何创建一个允许多个代理就某一主题进行协作的讨论团队。
import asyncio
from textwrap import dedent
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.team.team import Team
from agno.tools.arxiv import ArxivTools
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.googlesearch import GoogleSearchTools
from agno.tools.hackernews import HackerNewsTools
reddit_researcher = Agent(
name="Reddit Researcher",
role="Research a topic on Reddit",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGoTools()],
add_name_to_instructions=True,
instructions=dedent("""
你是 Reddit 研究者。
你将获得一个要在 Reddit 上研究的主题。
你需要找到最相关的帖子。
"""),
)
hackernews_researcher = Agent(
name="HackerNews Researcher",
model=OpenAIChat("gpt-4o"),
role="Research a topic on HackerNews.",
tools=[HackerNewsTools()],
add_name_to_instructions=True,
instructions=dedent("""
你是 HackerNews 研究者。
你将获得一个要在 HackerNews 上研究的主题。
你需要找到最相关的帖子。
"""),
)
academic_paper_researcher = Agent(
name="Academic Paper Researcher",
model=OpenAIChat("gpt-4o"),
role="Research academic papers and scholarly content",
tools=[GoogleSearchTools(), ArxivTools()],
add_name_to_instructions=True,
instructions=dedent("""
你是学术论文研究者。
你将获得一个要在学术文献中研究的主题。
你需要找到相关的学术文章、论文和学术讨论。
专注于同行评审的内容和来自可靠来源的引用。
简要总结关键发现和研究方法。
"""),
)
twitter_researcher = Agent(
name="Twitter Researcher",
model=OpenAIChat("gpt-4o"),
role="Research trending discussions and real-time updates",
tools=[DuckDuckGoTools()],
add_name_to_instructions=True,
instructions=dedent("""
你是 Twitter/X 研究者。
你将获得一个要在 Twitter/X 上研究的主题。
你需要找到热门讨论、有影响力的人物和实时更新。
尽可能专注于已验证的账户和可信的来源。
追踪相关的标签和正在进行的对话。
"""),
)
agent_team = Team(
name="Discussion Team",
mode="collaborate",
model=OpenAIChat("gpt-4o"),
members=[
reddit_researcher,
hackernews_researcher,
academic_paper_researcher,
twitter_researcher,
],
instructions=[
"你是讨论主持人。",
"当您认为团队已达成共识时,请停止讨论。",
],
success_criteria="The team has reached a consensus.",
enable_agentic_context=True,
update_team_context=True,
show_tool_calls=True,
markdown=True,
debug_mode=True,
show_members_responses=True,
)
if __name__ == "__main__":
asyncio.run(
agent_team.print_response(
message="Start the discussion on the topic: 'What is the best way to learn to code?'",
stream=True,
stream_intermediate_steps=True,
)
)
创建虚拟环境
打开 Terminal
并创建一个 python 虚拟环境。
python3 -m venv .venv
source .venv/bin/activate
Install required libraries
pip install openai duckduckgo-search arxiv pypdf googlesearch-python pycountry
Set environment variables
export OPENAI_API_KEY=****
Run the agent
python discussion_team.py