本教程将带你从零开始,一步步构建一个完整的多 Agent 协作系统。每一步都有详细的代码示例和解释,让你真正理解 Agno 框架的工作原理。

第一步:创建你的第一个 Agent

让我们从最简单的开始 - 创建一个能回答问题的 Agent。

1.1 创建基础文件

首先创建一个新文件 step1_simple_agent.py

from agno import Agent
from agno.models import Qwen# 第一步:配置模型
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key-here",  # 替换为你的API密钥base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 第二步:创建一个简单的Agent
simple_agent = Agent(name="简单助手",model=qwen,instructions="你是一个友好的助手,能回答各种问题。"
)# 第三步:测试Agent
if __name__ == "__main__":response = simple_agent.run("你好,请介绍一下自己")print(f"Agent回复: {response.content}")

1.2 运行第一个Agent

运行这个文件:

python step1_simple_agent.py

预期输出:

Agent回复: 你好!我是一个友好的AI助手,很高兴认识你!我可以帮助你回答各种问题...

1.3 代码解释

  • Qwen模型配置:这是我们使用的大语言模型,需要配置API密钥和服务地址
  • Agent创建:Agent是最基本的智能体,有名字、模型和指令
  • run方法:这是与Agent交互的主要方式

第二步:给 Agent 添加工具

现在让我们给 Agent 添加一些实用的工具,比如搜索功能。

2.1 安装工具依赖

pip install duckduckgo-search

2.2 创建带工具的Agent

创建文件 step2_agent_with_tools.py

from agno import Agent
from agno.models import Qwen
from agno.tools.duckduckgo import DuckDuckGoTools# 配置模型(和第一步相同)
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key-here",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 创建带搜索工具的Agent
search_agent = Agent(name="搜索助手",model=qwen,tools=[DuckDuckGoTools()],  # 添加搜索工具instructions="""你是一个专业的搜索助手。当用户询问最新信息时,请使用搜索工具获取准确的信息。搜索后,请整理并总结搜索结果。"""
)# 测试搜索功能
if __name__ == "__main__":# 测试1:普通问答(不需要搜索)print("=== 测试1:普通问答 ===")response1 = search_agent.run("什么是人工智能?")print(f"回复: {response1.content}\n")# 测试2:需要搜索的问题print("=== 测试2:搜索最新信息 ===")response2 = search_agent.run("2024年最新的AI技术发展趋势是什么?")print(f"回复: {response2.content}")

2.3 运行带工具的Agent

python step2_agent_with_tools.py

预期输出:

=== 测试1:普通问答 ===
回复: 人工智能(AI)是计算机科学的一个分支...=== 测试2:搜索最新信息 ===
回复: 根据我搜索到的最新信息,2024年AI技术发展的主要趋势包括:
1. 大语言模型的持续优化...
2. 多模态AI的突破...

2.4 工具的工作原理

当Agent遇到需要最新信息的问题时,它会:

  1. 识别需要搜索
  2. 调用DuckDuckGo搜索工具
  3. 获取搜索结果
  4. 整理并回复用户

第三步:创建多个专业Agent

现在我们创建多个各有专长的Agent。

3.1 创建专业Agent团队

创建文件 step3_multiple_agents.py

from agno import Agent
from agno.models import Qwen
from agno.tools.duckduckgo import DuckDuckGoTools# 共享的模型配置
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key-here",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# Agent 1: 网络搜索专家
web_search_agent = Agent(name="网络搜索专家",model=qwen,tools=[DuckDuckGoTools()],instructions="""你是一个专业的网络搜索专家。你的任务是:1. 根据用户需求进行精准搜索2. 筛选和整理搜索结果3. 提供准确、及时的信息请始终使用搜索工具获取最新信息。"""
)# Agent 2: 新闻分析师
news_agent = Agent(name="新闻分析师",model=qwen,tools=[DuckDuckGoTools()],instructions="""你是一个专业的新闻分析师。你的任务是:1. 搜索和收集相关新闻2. 分析新闻的重要性和影响3. 提供深入的新闻解读4. 识别新闻趋势和模式请用专业的新闻分析视角来回答问题。"""
)# Agent 3: 技术顾问
tech_advisor = Agent(name="技术顾问",model=qwen,instructions="""你是一个资深的技术顾问。你的专长包括:1. 软件开发和架构设计2. 技术选型和最佳实践3. 问题诊断和解决方案4. 技术趋势分析请提供专业、实用的技术建议。"""
)# 测试不同的Agent
def test_agents():print("=== 测试网络搜索专家 ===")search_result = web_search_agent.run("搜索2024年Python最新版本的特性")print(f"搜索专家: {search_result.content}\n")print("=== 测试新闻分析师 ===")news_result = news_agent.run("分析最近AI领域的重要新闻")print(f"新闻分析师: {news_result.content}\n")print("=== 测试技术顾问 ===")tech_result = tech_advisor.run("我想开发一个Web应用,应该选择什么技术栈?")print(f"技术顾问: {tech_result.content}")if __name__ == "__main__":test_agents()

3.2 运行多Agent测试

python step3_multiple_agents.py

你会看到每个Agent都有自己的专业特色和回答风格。


第四步:组建Team进行协作

现在是最关键的部分 - 让多个Agent协作完成复杂任务!

4.1 创建Agent团队

创建文件 step4_team_collaboration.py

from agno import Agent, Team
from agno.models import Qwen
from agno.tools.duckduckgo import DuckDuckGoTools# 模型配置
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key-here",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 创建专业Agent(复用第三步的Agent)
web_search_agent = Agent(name="Web Search Agent",model=qwen,tools=[DuckDuckGoTools()],instructions="你是网络搜索专家,负责搜索和收集信息。"
)news_agent = Agent(name="News Agent",model=qwen,tools=[DuckDuckGoTools()],instructions="你是新闻分析师,负责分析和解读新闻内容。"
)# 关键步骤:创建Team
research_team = Team(name="Research Team",agents=[web_search_agent, news_agent],  # 团队成员instructions="""你们是一个专业的研究团队。工作流程:1. Web Search Agent 负责搜索相关信息2. News Agent 负责分析和整理信息3. 团队协作完成深入的研究报告请确保:- 信息准确和及时- 分析深入和专业- 报告结构清晰""",show_chain_of_thought=True  # 显示思考过程
)# 测试团队协作
def test_team_collaboration():print("=== 团队协作测试 ===")# 复杂任务:需要搜索+分析task = "研究2024年人工智能在医疗领域的最新应用和发展趋势"print(f"任务: {task}\n")print("团队开始协作...\n")# 使用Team处理复杂任务result = research_team.run(task)print("=== 团队协作结果 ===")print(result.content)if __name__ == "__main__":test_team_collaboration()

4.2 Team协作的工作原理

当你运行这个代码时,你会看到:

  1. 任务分配:Team自动将任务分配给合适的Agent
  2. 协作过程:Agent之间会交换信息和结果
  3. 结果整合:Team将各Agent的工作整合成最终结果

预期输出示例:

=== 团队协作测试 ===
任务: 研究2024年人工智能在医疗领域的最新应用和发展趋势团队开始协作...=== 团队协作结果 ===
# 2024年人工智能在医疗领域研究报告## 最新应用
1. AI辅助诊断系统...
2. 智能药物发现...
3. 个性化治疗方案...## 发展趋势
1. 多模态AI在医疗影像的应用...
2. 大语言模型在医疗问答的突破...

第五步:完整的实战项目

现在让我们基于 ago_multi_agent.py 创建一个完整的项目。

5.1 完整项目代码

创建文件 step5_complete_project.py(基于 ago_multi_agent.py):

from agno import Agent, Team
from agno.models import Qwen
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.reasoning import ReasoningTools# 配置Qwen模型
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key-here",  # 请替换为你的API密钥base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 创建Web搜索Agent
web_search_agent = Agent(name="Web Search Agent",model=qwen,tools=[DuckDuckGoTools()],instructions="""你是一个专业的网络搜索专家。你的职责是:1. 根据研究需求进行精准的网络搜索2. 收集相关的、可靠的信息源3. 整理和筛选搜索结果4. 为团队提供准确的基础信息请确保搜索的信息是最新的、权威的。"""
)# 创建新闻分析Agent
news_agent = Agent(name="News Agent",model=qwen,tools=[DuckDuckGoTools()],instructions="""你是一个资深的新闻分析师和研究员。你的职责是:1. 深入分析收集到的信息2. 识别重要趋势和模式3. 提供专业的见解和解读4. 撰写结构化的研究报告请用批判性思维分析信息,提供有价值的洞察。"""
)# 创建推理研究团队
reasoning_research_team = Team(name="Reasoning Research Team",agents=[web_search_agent, news_agent],tools=[ReasoningTools()],  # 添加推理工具instructions="""你们是一个专业的推理研究团队,专门处理复杂的研究任务。## 团队协作流程:1. **信息收集阶段**:Web Search Agent 负责搜索和收集相关信息2. **深度分析阶段**:News Agent 负责分析信息,识别关键点3. **推理整合阶段**:使用推理工具进行逻辑分析和结论推导4. **报告生成阶段**:生成结构化的研究报告## 质量标准:- 信息必须准确和最新- 分析必须深入和专业- 推理必须逻辑清晰- 报告必须结构完整## 输出格式:请按以下格式输出研究报告:# 研究报告:[主题]## 执行摘要## 关键发现## 详细分析## 趋势预测## 结论和建议""",show_chain_of_thought=True
)# 主函数:演示完整的研究流程
def main():print("🚀 Agno 多Agent协作系统启动")print("=" * 50)# 研究任务列表research_tasks = ["分析2024年生成式AI技术的最新发展和商业应用","研究量子计算在未来5年的发展前景和挑战","调查可持续能源技术的最新突破和投资趋势"]for i, task in enumerate(research_tasks, 1):print(f"\n📋 任务 {i}: {task}")print("-" * 40)try:# 使用团队协作完成研究任务result = reasoning_research_team.run(task)print("✅ 研究完成!")print("📊 研究报告:")print(result.content)except Exception as e:print(f"❌ 任务执行失败: {str(e)}")print("\n" + "=" * 50)# 单独测试各个Agent
def test_individual_agents():print("🧪 测试单个Agent功能")print("=" * 30)# 测试搜索Agentprint("\n🔍 测试Web搜索Agent:")search_result = web_search_agent.run("搜索2024年AI芯片的最新发展")print(f"搜索结果: {search_result.content[:200]}...")# 测试新闻Agentprint("\n📰 测试新闻分析Agent:")news_result = news_agent.run("分析人工智能对就业市场的影响")print(f"分析结果: {news_result.content[:200]}...")# 交互式研究模式
def interactive_research():print("\n🎯 进入交互式研究模式")print("输入 'quit' 退出")while True:user_query = input("\n请输入你想研究的问题: ")if user_query.lower() == 'quit':print("👋 再见!")breakif user_query.strip():print("\n🔄 团队开始研究...")try:result = reasoning_research_team.run(user_query)print("\n📋 研究结果:")print(result.content)except Exception as e:print(f"❌ 研究失败: {str(e)}")if __name__ == "__main__":# 选择运行模式print("请选择运行模式:")print("1. 预设任务演示")print("2. 单个Agent测试")print("3. 交互式研究")choice = input("请输入选择 (1/2/3): ")if choice == "1":main()elif choice == "2":test_individual_agents()elif choice == "3":interactive_research()else:print("无效选择,运行默认演示")main()

5.2 运行完整项目

python step5_complete_project.py

运行效果:

🚀 Agno 多Agent协作系统启动
==================================================📋 任务 1: 分析2024年生成式AI技术的最新发展和商业应用
----------------------------------------
✅ 研究完成!
📊 研究报告:
# 研究报告:2024年生成式AI技术发展分析## 执行摘要
2024年生成式AI技术呈现爆发式增长...## 关键发现
1. 大语言模型能力显著提升
2. 多模态AI成为新趋势
3. 企业级应用快速普及
...

常见问题和解决方案

Q1: API密钥配置问题

问题:运行时提示API密钥错误

解决方案

# 方法1:直接在代码中配置
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="sk-your-actual-api-key",  # 替换为真实密钥base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)# 方法2:使用环境变量(推荐)
import os
qwen = Qwen(model="qwen2.5-72b-instruct",api_key=os.getenv("QWEN_API_KEY"),base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)

Q2: 工具导入失败

问题ImportError: No module named 'agno.tools.duckduckgo'

解决方案

# 安装必要的依赖
pip install agno
pip install duckduckgo-search

Q3: Team协作没有效果

问题:Team运行时只有一个Agent在工作

解决方案

# 确保Team的instructions明确指定协作流程
team = Team(name="Research Team",agents=[agent1, agent2],instructions="""明确的协作指令:1. Agent1负责搜索信息2. Agent2负责分析信息3. 两个Agent必须协作完成任务""",show_chain_of_thought=True  # 显示协作过程
)

Q4: 响应速度慢

问题:Agent响应时间过长

解决方案

# 优化模型配置
qwen = Qwen(model="qwen2.5-72b-instruct",api_key="your-api-key",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",timeout=30,  # 设置超时时间max_tokens=1000  # 限制输出长度
)

进阶技巧和最佳实践

1. Agent角色设计

# ✅ 好的Agent设计
expert_agent = Agent(name="数据分析专家",model=qwen,instructions="""你是一个资深的数据分析专家,具有10年以上的行业经验。你的专长:- 统计分析和数据挖掘- 商业智能和报表分析- 预测建模和趋势分析工作风格:- 严谨、客观、基于数据- 提供可操作的建议- 用图表和数字说话"""
)# ❌ 不好的Agent设计
bad_agent = Agent(name="助手",model=qwen,instructions="你是一个助手"  # 太模糊
)

2. Team协作优化

# 高效的Team设计
optimized_team = Team(name="产品研发团队",agents=[market_researcher, tech_analyst, product_manager],instructions="""## 协作流程(严格按顺序执行):### 第一阶段:市场调研- Market Researcher: 调研市场需求和竞品- 输出:市场调研报告### 第二阶段:技术分析- Tech Analyst: 基于市场报告分析技术可行性- 输出:技术方案建议### 第三阶段:产品规划- Product Manager: 整合前两阶段结果,制定产品规划- 输出:完整的产品规划文档## 质量要求:- 每个阶段必须有明确的输出- 后续阶段必须基于前面的结果- 最终输出必须包含所有阶段的关键信息"""
)

3. 错误处理和重试机制

def robust_agent_call(agent, query, max_retries=3):"""带重试机制的Agent调用"""for attempt in range(max_retries):try:result = agent.run(query)if result and result.content:return resultexcept Exception as e:print(f"尝试 {attempt + 1} 失败: {e}")if attempt == max_retries - 1:raisereturn None# 使用示例
try:result = robust_agent_call(my_agent, "复杂的查询")print(result.content)
except Exception as e:print(f"所有尝试都失败了: {e}")

总结

通过这个手把手的教程,你已经学会了:

✅ 你现在掌握的技能:

  1. 基础Agent创建 - 从零开始创建智能Agent
  2. 工具集成 - 给Agent添加搜索等实用工具
  3. 多Agent设计 - 创建专业化的Agent团队
  4. Team协作 - 实现真正的多Agent协作
  5. 完整项目 - 构建生产级的多Agent系统

🚀 下一步建议:

  1. 实践项目

    • 创建自己的专业Agent(如代码审查、文档生成等)
    • 构建特定领域的研究团队
    • 开发自动化工作流程
  2. 深入学习

    • 探索更多工具集成
    • 学习自定义工具开发
    • 研究高级协作模式
  3. 生产部署

    • 添加日志和监控
    • 实现API接口
    • 优化性能和成本

💡 关键要点回顾:

  • Agent = 模型 + 指令 + 工具
  • Team = 多个Agent + 协作指令
  • 成功的关键在于清晰的角色定义和协作流程
  • 从简单开始,逐步增加复杂性

现在你已经具备了使用Agno框架构建强大多Agent系统的能力!开始创建你自己的AI助手团队吧! 🎉

多 Agent 协作的优势

  • 任务分工明确:每个 Agent 专注于特定领域,提高专业性
  • 并行处理能力:多个 Agent 可以同时处理不同任务
  • 容错性强:单个 Agent 失败不会影响整个系统
  • 可扩展性好:可以轻松添加新的 Agent 来扩展功能
  • 协作智能:通过 Team 机制实现智能体间的信息共享和协调

适用场景

  • 复杂研究任务(如市场分析、技术调研)
  • 多源信息整合(如新闻聚合、数据分析)
  • 内容生成与处理(如文档生成、翻译)
  • 决策支持系统
  • 自动化工作流程

环境配置

安装依赖

# 安装 Agno 框架
pip install agno# 安装相关依赖
pip install duckduckgo-search

API 密钥配置

import os# 配置通义千问 API 密钥
os.environ["DASHSCOPE_API_KEY"] = "your-api-key-here"# 其他可能需要的 API 密钥
# os.environ["OPENAI_API_KEY"] = "your-openai-key"
# os.environ["ANTHROPIC_API_KEY"] = "your-anthropic-key"

基础设置

确保你的环境支持:

  • Python 3.8+
  • 稳定的网络连接(用于 API 调用)
  • 足够的内存和计算资源

核心概念

Agent(智能体)

Agent 是 Agno 框架中的基本执行单元,每个 Agent 都有:

  • 名称和角色:定义 Agent 的身份和职责
  • 模型:使用的 AI 模型(如 Qwen、GPT 等)
  • 工具:Agent 可以使用的外部工具
  • 指令:指导 Agent 行为的规则和要求
from agno.agent import Agent
from agno.models.qwen import Qwen
from agno.tools.duckduckgo import DuckDuckGoToolsagent = Agent(name="示例 Agent",role="处理特定任务",model=qwen_model,tools=[DuckDuckGoTools()],instructions="具体的行为指令"
)

Team(团队)

Team 是多个 Agent 的协作容器,负责:

  • 协调 Agent 工作:分配任务和管理执行流程
  • 信息共享:在 Agent 之间传递信息
  • 结果整合:汇总各 Agent 的输出
  • 质量控制:确保最终结果符合要求
from agno.team.team import Teamteam = Team(name="协作团队",mode="coordinate",  # 协作模式members=[agent1, agent2],instructions=["团队协作指令"]
)

Tools(工具)

工具为 Agent 提供外部能力:

  • DuckDuckGoTools:网络搜索功能
  • ReasoningTools:推理和分析工具
  • 自定义工具:根据需求开发的专用工具

Model(模型)

模型是 Agent 的"大脑",支持多种 AI 模型:

  • Qwen:通义千问模型
  • OpenAI GPT:OpenAI 的 GPT 系列
  • Claude:Anthropic 的 Claude 模型

代码详解

基于 ago_multi_agent.py 的完整代码分析:

1. 导入必要模块

import os
from agno.agent import Agent
from agno.models.qwen import Qwen
from agno.team.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.reasoning import ReasoningTools

2. 配置模型

# 配置 API 密钥
os.environ["DASHSCOPE_API_KEY"] = "your-api-key"# 创建 Qwen 模型实例
qwen = Qwen(id="qwen-flash",  # 模型标识符base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",top_p=0.7,        # 控制生成多样性temperature=0.95,  # 控制随机性
)

参数说明:

  • id:模型标识符,选择具体的模型版本
  • base_url:API 服务地址
  • top_p:核采样参数,值越小生成越确定
  • temperature:温度参数,值越高生成越随机

3. 创建专门化 Agent

Web 搜索 Agent
web_agent = Agent(name="Web Search Agent",role="处理网络搜索请求和一般研究",model=qwen,tools=[DuckDuckGoTools()],instructions="始终包含来源",add_datetime_to_instructions=True,debug_mode=True,
)
新闻 Agent
news_agent = Agent(name="News Agent",role="处理新闻请求和时事分析",model=qwen,tools=[DuckDuckGoTools(search=True, news=True)],instructions=["使用表格显示新闻信息和发现。","明确说明来源和发布日期。","关注提供当前和相关的新闻见解。",],add_datetime_to_instructions=True,debug_mode=True,
)

配置参数详解:

  • name:Agent 的名称标识
  • role:Agent 的角色描述
  • model:使用的 AI 模型
  • tools:可用工具列表
  • instructions:行为指令(可以是字符串或列表)
  • add_datetime_to_instructions:是否添加时间信息
  • debug_mode:是否启用调试模式

4. 创建协作团队

reasoning_research_team = Team(name="Reasoning Research Team",mode="coordinate",  # 协作模式model=qwen,members=[web_agent, news_agent],tools=[ReasoningTools(add_instructions=True)],instructions=["协作提供全面的研究和新闻见解","考虑当前事件和热门话题","使用表格和图表清晰专业地展示数据","以结构化、易于遵循的格式呈现发现","仅输出最终的综合分析,而不是单个代理响应",],markdown=True,show_members_responses=True,enable_agentic_context=True,add_datetime_to_instructions=True,success_criteria="团队已提供完整的研究分析,包括数据、可视化、趋势评估和基于当前信息和可靠来源的可操作见解。",debug_mode=True,
)

Team 参数详解:

  • mode:协作模式(coordinate、sequential、parallel 等)
  • members:团队成员 Agent 列表
  • tools:团队级别的工具
  • markdown:是否使用 Markdown 格式输出
  • show_members_responses:是否显示各成员的响应
  • enable_agentic_context:是否启用智能体上下文
  • success_criteria:成功标准定义

5. 执行任务

if __name__ == "__main__":reasoning_research_team.print_response("""使用中文输出,研究并比较可再生能源的最新发展:1. 获取可再生能源创新的最新消息2. 分析可再生能源领域的最新发展3. 比较不同的可再生能源技术4. 推荐值得关注的未来趋势""",stream=True,show_full_reasoning=True,stream_intermediate_steps=True,)

执行参数说明:

  • stream:是否流式输出结果
  • show_full_reasoning:是否显示完整推理过程
  • stream_intermediate_steps:是否流式显示中间步骤

实战示例

示例 1:创建单个 Agent

from agno.agent import Agent
from agno.models.qwen import Qwen
from agno.tools.duckduckgo import DuckDuckGoTools# 创建模型
model = Qwen(id="qwen-flash")# 创建专门的研究 Agent
research_agent = Agent(name="Research Assistant",role="专业研究助手",model=model,tools=[DuckDuckGoTools()],instructions=["提供准确、详细的研究信息","引用可靠来源","以结构化方式组织信息"]
)# 使用 Agent
response = research_agent.run("研究人工智能在医疗领域的应用")
print(response.content)

示例 2:组建 Agent 团队

# 创建多个专门化 Agent
data_agent = Agent(name="Data Analyst",role="数据分析专家",model=model,tools=[DuckDuckGoTools()],instructions="专注于数据收集和统计分析"
)report_agent = Agent(name="Report Writer",role="报告撰写专家",model=model,instructions="将分析结果整理成专业报告"
)# 创建协作团队
analysis_team = Team(name="Analysis Team",mode="sequential",  # 顺序执行模式members=[data_agent, report_agent],instructions=["首先收集和分析数据","然后生成综合报告","确保报告专业且易懂"]
)# 执行团队任务
result = analysis_team.run("分析2024年电商市场趋势")

示例 3:配置不同协作模式

# 并行模式:多个 Agent 同时工作
parallel_team = Team(name="Parallel Research Team",mode="parallel",members=[web_agent, news_agent],instructions="同时进行网络搜索和新闻分析"
)# 协调模式:智能分配任务
coordinate_team = Team(name="Coordinate Team",mode="coordinate",members=[web_agent, news_agent],instructions="根据任务需求智能分配工作"
)

最佳实践

Agent 设计原则

  1. 单一职责原则

    # 好的设计:专门化 Agent
    translation_agent = Agent(name="Translator",role="专业翻译",instructions="只负责文本翻译任务"
    )# 避免:功能过于复杂的 Agent
    # complex_agent = Agent(
    #     name="Everything Agent",
    #     role="处理所有任务"  # 不推荐
    # )
    
  2. 清晰的角色定义

    agent = Agent(name="Market Analyst",role="专注于市场趋势分析和预测",instructions=["分析市场数据和趋势","提供基于数据的预测","使用图表和可视化展示结果"]
    )
    
  3. 合适的工具配置

    # 根据 Agent 职责配置相应工具
    search_agent = Agent(name="Search Specialist",tools=[DuckDuckGoTools(search=True, news=True)],instructions="专门负责信息搜索和收集"
    )
    

Team 协作模式选择

  1. Sequential(顺序模式)

    • 适用于:有明确先后顺序的任务
    • 示例:数据收集 → 分析 → 报告生成
  2. Parallel(并行模式)

    • 适用于:可以同时进行的独立任务
    • 示例:多源信息收集、多角度分析
  3. Coordinate(协调模式)

    • 适用于:需要智能任务分配的复杂场景
    • 示例:综合研究、多维度分析

错误处理

try:result = team.run(task)if result.success:print(f"任务完成:{result.content}")else:print(f"任务失败:{result.error}")
except Exception as e:print(f"执行错误:{e}")# 实施备用方案

性能优化

  1. 合理设置模型参数

    # 平衡性能和质量
    model = Qwen(temperature=0.7,  # 适中的随机性top_p=0.9,       # 适中的多样性
    )
    
  2. 启用调试模式进行开发

    agent = Agent(debug_mode=True,  # 开发时启用# debug_mode=False,  # 生产时关闭
    )
    
  3. 合理使用流式输出

    # 对于长时间任务,使用流式输出提升用户体验
    team.print_response(task,stream=True,stream_intermediate_steps=True
    )
    

扩展应用

自定义工具

from agno.tools.base import Toolclass CustomAnalysisTool(Tool):def __init__(self):super().__init__(name="Custom Analysis")def analyze_data(self, data):# 自定义分析逻辑return f"分析结果:{data}"# 在 Agent 中使用自定义工具
custom_agent = Agent(name="Custom Agent",tools=[CustomAnalysisTool()],instructions="使用自定义工具进行分析"
)

复杂任务分解

# 将复杂任务分解为多个子任务
def complex_research_workflow(topic):# 第一阶段:信息收集collection_team = Team(name="Information Collection",members=[web_agent, news_agent],mode="parallel")raw_data = collection_team.run(f"收集关于{topic}的信息")# 第二阶段:数据分析analysis_agent = Agent(name="Data Analyzer",instructions="分析收集到的数据")analysis_result = analysis_agent.run(f"分析数据:{raw_data}")# 第三阶段:报告生成report_agent = Agent(name="Report Generator",instructions="生成最终报告")final_report = report_agent.run(f"生成报告:{analysis_result}")return final_report

实际项目应用

新闻聚合系统
news_system = Team(name="News Aggregation System",members=[Agent(name="News Collector", tools=[DuckDuckGoTools(news=True)]),Agent(name="Content Analyzer", instructions="分析新闻内容"),Agent(name="Summary Generator", instructions="生成新闻摘要")],mode="sequential",instructions="收集、分析并总结最新新闻"
)
市场研究系统
market_research_system = Team(name="Market Research System",members=[Agent(name="Data Collector", tools=[DuckDuckGoTools()]),Agent(name="Trend Analyzer", instructions="分析市场趋势"),Agent(name="Report Writer", instructions="撰写研究报告")],mode="coordinate",instructions="进行全面的市场研究分析"
)

总结

Agno 多 Agent 协作框架提供了一个强大而灵活的平台,用于构建智能化的多智能体系统。通过合理的 Agent 设计、Team 协作和工具配置,可以实现复杂任务的自动化处理。

关键要点:

  • 遵循单一职责原则设计 Agent
  • 根据任务特点选择合适的协作模式
  • 合理配置模型参数和工具
  • 实施适当的错误处理和性能优化
  • 根据实际需求扩展和定制功能

通过本教程的学习和实践,你应该能够熟练使用 Agno 框架构建自己的多 Agent 协作系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/95538.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95538.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/95538.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库查询优化

这篇文章适合刚刚入手项目的小伙伴,为大家如何提高数据库查询效率提供一些建议。1.添加索引1.1 索引是什么对于索引基础薄弱的同学,我们可以从 “索引是什么” 简单类比:索引就像书籍的目录,能帮数据库快速定位到需要的数据&#…

安徽大学概率论期末试卷及答案解析

本文还有配套的精品资源,点击获取 简介:安徽大学的概率论课程围绕随机现象的规律性,覆盖了多个核心概念,如随机事件的概率、条件概率、独立事件、概率分布、期望值、方差、大数定律和中心极限定理。本资源包含期末试卷及答案&a…

HarmonyOS应用开发之界面列表不刷新问题Bug排查记:从现象到解决完整记录

Bug排查在软件开发过程中扮演着至关重要的角色,本文采用日记形式记录了Bug排查的全过程,通过这种方式可以更加真实、详细地记录问题,便于后续追溯和经验沉淀。 Bug背景 在使用HarmonyOS的ArkUI框架开发一个卡片管理应用时,遇到了…

FastVLM-0.5B 模型解析

模型介绍 FastVLM(Fast Vision-Language Model)是苹果团队于2025年在CVPR会议上提出的高效视觉语言模型,专为移动设备(如iPhone、iPad、Mac)优化,核心创新在于通过全新设计的 FastViTHD混合视觉编码器 解决…

集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测

集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测 一、主要功能 该代码使用 CNN 提取特征,LSTM 捕捉时序依赖,并通过 AdaBoost 集成多个弱学习器(每个弱学习器是一个 CNN-LSTM 网络),最终组合成一个强预测器,用于回归预测任务。代码完成了从数据预处理、模型…

关于Homebrew:Mac快速安装Homebrew

关于macOS 安装HomebrewHomebrewHomebrew介绍Homebrew 官网地址Homebrew 能安装什么?Mac上安装Homebrew主要步骤:打开终端,执行官网安装脚本注意遇到问题①:脚本在克隆 Homebrew 核心仓库时,​​无法连接 GitHub​​&a…

【前端】使用Vercel部署前端项目,api转发到后端服务器

文章目录Vercel是什么概要Vercel部署分为两种方案:一、使用GitHub构建部署二、通过 Vercel CLI 上传本地构建资源注意事项转发API到后端小结Vercel是什么 Vercel是一款专为前端开发者打造的云部署平台,它支持一键部署静态网站、AI工具和现代Web应用。Ve…

滚珠导轨在工业制造领域如何实现高效运行?

在工业制造领域中滚珠导轨凭借其高精度、低摩擦、高刚性等特点,被广泛应用于多种设备和场景,并在设备性能中起着关键作用,以下是具体应用:加工中心:滚珠导轨用于加工中心的工作台和主轴箱等部件的移动,能保…

大基座模型与 Scaling Law:AI 时代的逻辑与困境

一、背景:为什么大模型一定要“做大”? 在人工智能的发展历程中,有一个不容忽视的“铁律”:更大的模型往往意味着更强的性能。从 GPT-2 到 GPT-4,从 BERT 到 PaLM,从 LLaMA 到 Claude,每一代的…

内网的应用系统间通信需要HTTPS吗

内网是否需要 HTTPS? 虽然内网通常被视为“相对安全”的环境,但仍需根据具体情况决定是否使用 HTTPS,原因如下: 内部威胁风险 ● 内网可能面临内部人员攻击、横向渗透(如黑客突破边界后在内网扫描)、设备…

6.ImGui-颜色(色板)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 上一个内容:5.ImGui-按钮 IMGui中表示颜色的的结构体 ImVec4和ImU32,如下图红框…

【C++】Vector完全指南:动态数组高效使用

0. 官方文档 vector 1. vector介绍 Vector 简单来说就是顺序表,是一个可以动态增长的数组。 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c…

关于无法导入父路径的问题

问题重现 有下面的代码: from ..utils import Config,set_DATA_PATH DATA_PATH set_DATA_PATH()报错如下:from ..utils import Config,set_DATA_PATH ImportError: attempted relative import beyond top-level package解决方案 #获取当前脚本所在目录的…

C/C++包管理工具:Conan

Conan是一个专为C/C设计的开源、去中心化、跨平台的包管理器,致力于简化依赖管理和二进制分发流程。Conan基于Python进行开发,支持与主流的构建系统集成,提供了强大的跨平台和交叉编译能力。通过Conan,开发者可以高效的创建、共享…

核心高并发复杂接口重构方案

核心高并发复杂接口重构方案 一、重构目标与原则 核心目标 提升接口性能:降低响应时间,提高吞吐量,降低资源使用 增强可维护性:拆解复杂逻辑,模块化设计,降低后续迭代成本 保障稳定性:通过架构优化和灰度策略,确保重构过程无服务中断 提升扩展性:设计灵活的扩展点,…

C++容器内存布局与性能优化指南

C容器的内存布局和缓存友好性对程序性能有决定性影响。理解这些底层机制,能帮你写出更高效的代码。 一、容器内存布局概述 不同容器在内存中的组织方式差异显著,这直接影响了它们的访问效率和适用场景。容器类型内存布局特点元数据位置元素存储位置std::…

Beautiful.ai:AI辅助PPT工具高效搞定排版,告别熬夜做汇报烦恼

你是不是每次做 PPT 都头大?找模板、调排版、凑内容,熬大半夜出来的东西还没眼看?尤其是遇到 “明天就要交汇报” 的紧急情况,打开 PPT 软件半天,光标在空白页上晃来晃去,连标题都想不出来 —— 这种抓瞎的…

阿里云携手MiniMax构建云原生数仓最佳实践:大模型时代的 Data + AI 数据处理平台

MiniMax简介MiniMax是全球领先的通用人工智能科技公司。自2022年初成立以来,MiniMax以“与所有人共创智能”为使命,致力于推动人工智能科技前沿发展,实现通用人工智能(AGI)。MiniMax自主研发了一系列多模态通用大模型,…

一键生成PPT的AI工具排名:2025年能读懂你思路的AI演示工具

人工智能正在重塑PPT制作方式,让专业演示变得触手可及。随着人工智能技术的飞速发展,AI生成PPT工具已成为职场人士、学生和创作者提升效率的得力助手。这些工具通过智能算法,能够快速将文本、数据或创意转化为结构化、视觉化的演示文稿&#…

数据库基础知识——聚合函数、分组查询

目录 一、聚合函数 1.1 count 1.1.1 统计整张表中所有记录的总条数 1.1.2 统计单列的数据 1.1.3 统计单列记录限制条件 1.2 sum 1.3 avg 1.4 max, min 二、group by 分组查询 2.1 语法 2.2 示例 2.3 having 一、聚合函数 常用的聚合函数 函数说明count ([distinc…