在 协作模式 中,所有团队成员会同时响应用户查询。这使得团队协调员能够审查团队是否就某一特定主题达成共识,然后将所有团队成员的响应综合成一个单一的响应。
当与 async await
一起使用时,这尤其有用,因为它允许各个成员并发响应,并允许协调员异步地综合响应。
在“协作”模式下:
创建协作模式团队
创建文件 discussion_team.py
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("""
You are a Reddit researcher.
You will be given a topic to research on Reddit.
You will need to find the most relevant posts on 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("""
You are a HackerNews researcher.
You will be given a topic to research on HackerNews.
You will need to find the most relevant posts on 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("""
You are a academic paper researcher.
You will be given a topic to research in academic literature.
You will need to find relevant scholarly articles, papers, and academic discussions.
Focus on peer-reviewed content and citations from reputable sources.
Provide brief summaries of key findings and methodologies.
"""),
)
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("""
You are a Twitter/X researcher.
You will be given a topic to research on Twitter/X.
You will need to find trending discussions, influential voices, and real-time updates.
Focus on verified accounts and credible sources when possible.
Track relevant hashtags and ongoing conversations.
"""),
)
agent_team = Team(
name="Discussion Team",
mode="collaborate",
model=OpenAIChat("gpt-4o"),
members=[
reddit_researcher,
hackernews_researcher,
academic_paper_researcher,
twitter_researcher,
],
instructions=[
"You are a discussion master.",
"You have to stop the discussion when you think the team has reached a consensus.",
],
success_criteria="The team has reached a consensus.",
enable_agentic_context=True,
show_tool_calls=True,
markdown=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,
)
)
运行团队
安装库
pip install openai duckduckgo-search arxiv pypdf googlesearch-python pycountry
运行团队
python discussion_team.py
你可以通过指定由团队协调员进行评估的成功标准来指导协作团队:
strategy_team = Team(
members=[hackernews_researcher, academic_paper_researcher, twitter_researcher],
mode="collaborate",
name="Research Team",
description="A team that researches a topic",
success_criteria="The team has reached a consensus on the topic",
)
response = strategy_team.run(
"What is the best way to learn to code?"
)