Agno开发教程系列(四):多Agent协作系统(上)—— Team团队协作机制
本教程是Agno框架系列教程的第四篇,将深入讲解如何通过Team机制构建多Agent协作系统,让多个专业化的AI Agent像真实团队一样高效协作完成复杂任务。
📖 目录
- 引言:为什么需要多Agent协作#引言为什么需要多agent协作
- Team基础概念
- Team的创建与配置
- Team协作模式详解
- 实战案例1:简单的研究团队
- 实战案例2:内容创作团队
- Team的高级特性
- 最佳实践与注意事项
- 总结与下一篇预告
引言:为什么需要多Agent协作
在前三篇教程中,我们学习了Agno框架的基础知识、工具使用和记忆系统。这些都是构建单个智能Agent的关键要素。然而,在实际应用中,我们经常会遇到这样的场景:
🤔 单Agent的局限性
❌ 任务过于复杂的困境:
场景:撰写一份金融市场深度分析报告
单Agent需要:
1. 搜索最新财经新闻 📰
2. 获取股票数据 📈
3. 分析市场风险 ⚠️
4. 撰写专业报告 📝
结果:工具太多,任务混乱,质量下降 😵
❌ 工具数量过多的问题:
⚠️ 重要原则: 当一个Agent需要使用超过2-3个工具时,任务分配容易混乱,响应质量会显著下降。
❌ 缺乏专业分工:
想象一下,让一个人同时担任:
- 📰 新闻记者
- 📊 数据分析师
- ⚠️ 风险评估师
- ✍️ 专业作家
这样做虽然可行,但效率和质量都会大打折扣!
✅ 多Agent协作的优势
就像现实世界中的团队协作,多个专业Agent一起工作会带来巨大优势:
🎯 Team协作模式:
┌─────────────────────────────────────┐
│ Team Leader (协调者) │
│ "我来分配任务和整合结果" │
└──────────┬──────────────────────────┘
│
┌──────┴────────┬────────┐
│ │ │
┌───▼────┐ ┌────▼───┐ ┌─▼──────┐
│新闻收集│ │数据分析│ │报告撰写│
│ Agent │ │ Agent │ │ Agent │
└────────┘ └────────┘ └────────┘
专注搜索 专注分析 专注写作
结果:专业分工,高效协作,质量提升 ✨
核心理念: 两个专家协同工作,总比一个通才表现更好!
📊 单Agent vs Team对比
| 维度 | 单Agent | Team |
|---|---|---|
| 任务复杂度 | ✅ 简单、单一任务 | ✅ 复杂、多步骤任务 |
| 工具数量 | ⚠️ 建议2-3个以内 | ✅ 分配给不同成员 |
| 响应质量 | ⚠️ 工具多时易混乱 | ✅ 专业分工提升质量 |
| 并行处理 | ❌ 顺序执行 | ✅ 支持并行协作 |
| 可维护性 | ⚠️ 指令多时难维护 | ✅ 职责清晰易扩展 |
| 学习曲线 | 🟢 简单 | 🟡 中等 |
🎯 Team的典型应用场景
-
📚 研究与信息聚合
- 从Reddit、Twitter、学术论文、新闻网站收集信息
- 多源数据汇总分析
-
🔄 多步骤工作流
- 数据采集 → 清洗 → 分析 → 报告生成
- 流水线式任务处理
-
💼 专业决策系统
- 金融分析:数据收集 → 风险评估 → 投资建议
- 医疗辅助:症状收集 → 诊断分析 → 治疗建议
-
✍️ 内容创作流程
- 研究 → 撰稿 → 审校 → 发布
- 多角色协同创作
-
💻 技术问题解决
- 需求分析 → 代码生成 → 测试 → 文档编写
- 软件开发全流程
Team基础概念
在深入代码之前,让我们先理解Team的核心概念和组织结构。
🏢 什么是Team
Team(团队) 是Agno框架提供的一种多Agent协作机制,它将多个Agent组织在一起,通过协调者统一管理,共同完成复杂任务。
Team的组成结构
┌─────────────────────────────────────────┐
│ Team(团队) │
├─────────────────────────────────────────┤
│ │
│ 🎯 Team Leader(团队领导者) │
│ ├─ 负责任务分析和分配 │
│ ├─ 协调成员间的交互 │
│ ├─ 聚合成员的输出结果 │
│ └─ 生成最终统一响应 │
│ │
│ 👥 Team Members(团队成员) │
│ ├─ 成员1:专注任务A │
│ ├─ 成员2:专注任务B │
│ └─ 成员3:专注任务C │
│ │
└─────────────────────────────────────────┘
核心组件说明
| 组件 | 角色 | 职责 |
|---|---|---|
| Team Leader | 协调者/管理者 | 任务分配、结果聚合、团队协调 |
| Team Members | 执行者/专家 | 执行具体任务、提供专业输出 |
🎭 Team的工作原理
Team的运行遵循以下流程:
用户输入
↓
┌──────────────────────┐
│ 1️⃣ Team Leader │
│ 接收并分析任务 │
└──────────┬───────────┘
↓
┌──────────────────────┐
│ 2️⃣ 任务分配 │
│ 根据协作模式分配 │
└──────────┬───────────┘
↓
┌──────┴──────┐
↓ ↓
┌────────┐ ┌────────┐
│ 成员A │ │ 成员B │
│ 执行 │ │ 执行 │
└───┬────┘ └────┬───┘
↓ ↓
┌──────────────────────┐
│ 3️⃣ 结果聚合 │
│ Leader整合输出 │
└──────────┬───────────┘
↓
最终响应
💡 Team vs 单Agent的核心区别
设计哲学差异
单Agent设计:
# 一个Agent处理所有任务
agent = Agent(
tools=[
DuckDuckGoTools(), # 搜索工具
YFinanceTools(), # 金融工具
FileTools(), # 文件工具
CalculatorTools(), # 计算工具
# ... 更多工具
]
)
# ⚠️ 工具太多,Agent容易"分心"
Team设计:
# 多个专业化Agent
web_agent = Agent(
name="Web Searcher",
tools=[DuckDuckGoTools()] # 只负责搜索
)
finance_agent = Agent(
name="Finance Analyst",
tools=[YFinanceTools()] # 只负责金融分析
)
# 组建Team
team = Team(
members=[web_agent, finance_agent]
)
# ✅ 每个Agent专注自己的领域
🌟 Team的核心优势
-
🎯 专业化分工
- 每个Agent专注一个领域
- 提高单项任务的执行质量
-
📈 可扩展性
- 新增成员无需修改现有Agent
- 模块化设计易于维护
-
⚡ 并行处理
- 某些模式支持成员并行工作
- 提高整体执行效率
-
🔄 灵活协作
- 支持多种协作模式
- 适应不同任务场景
-
🧩 复用性强
- 成员Agent可在多个Team中复用
- 降低开发成本
Team的创建与配置
现在让我们动手创建第一个Team,从最简单的例子开始。
🚀 基础Team创建
让我们创建一个由Web搜索Agent和研究分析Agent组成的简单研究团队:
"""
示例1:最简单的研究Team
功能:搜索信息 + 深度分析
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
# 步骤1:创建Web搜索Agent
web_agent = Agent(
name="Web Agent", # Agent名称
role="搜索网络信息", # 角色描述
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()], # 配置搜索工具
instructions="始终包含信息来源", # 行为指令
markdown=True # 使用Markdown格式输出
)
# 步骤2:创建研究分析Agent
research_agent = Agent(
name="Research Agent",
role="深度研究分析",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions="提供深入的分析和见解",
markdown=True
)
# 步骤3:创建Team(组建团队)
research_team = Team(
name="Research Team", # 团队名称
members=[web_agent, research_agent], # 团队成员列表
model=DeepSeek(api_key="DEEPSEEK_API_KEY"), # Leader使用的模型
instructions="协调团队成员完成研究任务", # 团队协作指令
markdown=True
)
# 步骤4:运行Team
research_team.print_response(input="分析人工智能在医疗领域的最新应用")
运行效果:
🎯 Team Leader: 正在协调团队成员...
📡 Web Agent 正在工作:
搜索到5篇相关文章...
- AI诊断系统的最新进展
- 医疗影像识别技术
...
🔬 Research Agent 正在工作:
基于收集的信息进行深度分析...
核心发现:
1. AI在早期癌症检测中准确率达95%
2. 个性化治疗方案推荐系统...
...
✅ Team Leader: 最终报告
综合Web Agent的搜索和Research Agent的分析...
[完整的研究报告]
👥 Team成员管理最佳实践
1. 明确的身份标识
为每个成员设置清晰的身份信息,帮助Team Leader更好地分配任务:
"""
示例2:专业化成员定义
"""
finance_agent = Agent(
# 基础标识
id="finance_001", # 唯一标识符
name="Finance Analyst", # 显示名称
role="获取和分析财务数据", # 角色定位
# 详细描述
description="""
专门收集和分析财务数据的专家。
擅长:
- 股票价格查询
- 分析师建议汇总
- 公司财务信息分析
""",
# 模型和工具
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[YFinanceTools(
stock_price=True, # 启用股票价格查询
analyst_recommendations=True, # 启用分析师建议
company_info=True # 启用公司信息
)],
# 行为指令
instructions=[
"使用表格展示数据",
"提供简洁的财务报告",
"标注数据来源和更新时间"
],
markdown=True
)
2. 职责划分原则
✅ 好的实践:
# 职责明确,各司其职
data_collector = Agent(
name="Data Collector",
role="收集原始数据",
tools=[DuckDuckGoTools()]
)
data_analyzer = Agent(
name="Data Analyzer",
role="分析数据趋势",
tools=[] # 不需要工具,专注分析
)
report_writer = Agent(
name="Report Writer",
role="撰写分析报告",
tools=[]
)
❌ 避免的做法:
# 职责模糊,功能重叠
general_agent = Agent(
name="General Agent",
role="做所有事情", # ⚠️ 太宽泛
tools=[
DuckDuckGoTools(),
YFinanceTools(),
FileTools(),
# ... 工具太多
]
)
⚙️ Team的核心配置参数
"""
Team配置参数详解
"""
team = Team(
# 基础配置
name="团队名称", # 必需:团队标识
members=[agent1, agent2, agent3], # 必需:成员列表
model=DeepSeek(api_key="DEEPSEEK_API_KEY"), # 必需:Leader模型
# 协作模式
mode="collaborate", # 可选:route/collaborate/coordinate
# 指令配置
instructions=[ # 团队协作指令
"协调所有成员完成任务",
"综合不同成员的观点",
"生成统一的结论"
],
# 显示配置
show_members_responses=True, # 显示成员的响应过程
markdown=True, # 使用Markdown格式
# 上下文共享
enable_agentic_context=True, # 启用团队上下文共享
share_member_interactions=True, # 成员间共享交互历史
# 输出配置
respond_directly=False, # False表示Leader会处理结果
)
配置参数说明表
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
name | str | 团队名称 | 必需 |
members | List[Agent] | 团队成员列表 | 必需 |
model | Model | Leader使用的模型 | 必需 |
mode | str | 协作模式 | "route" |
instructions | List[str] | 协作指令 | [] |
show_members_responses | bool | 显示成员响应 | False |
enable_agentic_context | bool | 启用团队上下文 | False |
share_member_interactions | bool | 共享交互历史 | False |
🔄 Team的运行机制
Team执行任务的完整流程:
┌─────────────────────────────────────┐
│ 1️⃣ 接收任务 │
│ team.print_response("任务描述") │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 2️⃣ Team Leader分析 │
│ - 理解任务需求 │
│ - 识别需要的专业能力 │
└──────────────┬──────────────────────┘
↓
[根据mode分支]
↓
┌──────────┴──────────┐
↓ ↓
┌─────────┐ ┌─────────┐
│ Route │ │Collab │
│ 单成员 │ │所有成员 │
└────┬────┘ └────┬────┘
↓ ↓
┌─────────────────────────────────────┐
│ 3️⃣ 成员执行任务 │
│ - 使用各自的工具 │
│ - 生成专业输出 │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 4️⃣ Leader聚合结果 │
│ - 收集所有成员输出 │
│ - 综合分析 │
│ - 解决冲突观点 │
└──────────────┬──────────────────────┘
↓
┌─────────────────────────────────────┐
│ 5️⃣ 生成最终响应 │
│ - 返回统一的结果 │
└─────────────────────────────────────┘
Team协作模式详解
Agno提供了三种核心协作模式,每种模式适用于不同的任务场景。选择正确的模式是构建高效Team的关键!
1️⃣ Route Mode(路由模式)
核心机制
用户任务
↓
┌──────────────────┐
│ Team Leader │
│ "这是数学题, │
│ 交给数学Agent" │
└────────┬─────────┘
↓
[智能路由]
↓
┌─────▼─────┐
│ Math Agent│
│ 执行 │
└─────┬─────┘
↓
返回结果
工作原理: Team Leader作为智能路由器,分析任务后选择最合适的单个成员执行。
适用场景
✅ 最佳应用:
- 任务可以由某个专业Agent独立完成
- 需要选择最佳执行者的场景
- 类似"客服转接"的任务分配
❌ 不适用:
- 需要多个成员协作的任务
- 需要多角度分析的场景
实战示例:数学运算团队
"""
示例:Route模式 - 数学运算团队
场景:根据问题类型路由到对应的数学Agent
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
# 创建加法专家
addition_agent = Agent(
name="Addition Agent",
role="执行加法运算",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="专门处理加法问题,返回精确结果",
instructions=[
"只处理加法运算",
"返回计算步骤和最终结果",
"使用数学符号清晰展示"
]
)
# 创建减法专家
subtraction_agent = Agent(
name="Subtraction Agent",
role="执行减法运算",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="专门处理减法问题,返回精确结果",
instructions=[
"只处理减法运算",
"返回计算步骤和最终结果",
"使用数学符号清晰展示"
]
)
# 创建乘法专家
multiplication_agent = Agent(
name="Multiplication Agent",
role="执行乘法运算",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="专门处理乘法问题,返回精确结果",
instructions=[
"只处理乘法运算",
"返回计算步骤和最终结果"
]
)
# 创建路由模式Team
math_team = Team(
name="Math Team",
mode="route", # 🎯 关键:使用路由模式
members=[addition_agent, subtraction_agent, multiplication_agent],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
"分析问题类型(加法/减法/乘法)",
"将任务路由给对应的专家",
"返回专家的计算结果"
],
show_members_responses=True,
markdown=True
)
# 测试不同类型的问题
print("=" * 60)
print("问题1:加法运算")
print("=" * 60)
math_team.print_response(input="计算 156 + 789 的结果")
print("\n" + "=" * 60)
print("问题2:减法运算")
print("=" * 60)
math_team.print_response(input="计算 1000 - 234 的结果")
print("\n" + "=" * 60)
print("问题3:乘法运算")
print("=" * 60)
math_team.print_response(input="计算 25 × 48 的结果")
运行效果:
============================================================
问题1:加法运算
============================================================
🎯 Team Leader: 这是加法问题,路由到 Addition Agent
➕ Addition Agent:
156 + 789 = 945
计算步骤:
156
+ 789
-----
945
✅ 最终答案:945
============================================================
问题2:减法运算
============================================================
🎯 Team Leader: 这是减法问题,路由到 Subtraction Agent
➖ Subtraction Agent:
1000 - 234 = 766
计算步骤:
1000
- 234
-----
766
✅ 最终答案:766
Route模式的优势与局限
✅ 优势:
- 🎯 精准匹配:任务分配给最合适的专家
- ⚡ 高效执行:只有一个Agent工作,速度快
- 💰 成本节约:减少不必要的模型调用
⚠️ 局限:
- 单一视角:只有一个Agent的观点
- 不适合协作:无法发挥多Agent协同优势
2️⃣ Collaborate Mode(协作模式)
核心机制
用户任务
↓
┌────────────────────┐
│ Team Leader │
│ "这个研究任务, │
│ 所有人一起上!" │
└──────┬─┬─┬─────────┘
│ │ │
┌───┘ │ └───┐
↓ ↓ ↓
┌────┐┌────┐┌────┐
│成员││成员││成员│
│ A ││ B ││ C │
└─┬──┘└─┬──┘└─┬──┘
│ │ │
└──┬──┴──┬──┘
↓ ↓
[并行执行同一任务]
↓
┌────────────────────┐
│ Leader聚合结果 │
│ 综合所有观点 │
└────────────────────┘
工作原理: 所有成员并行执行相同任务,从不同角度提供输入,Team Leader聚合所有结果形成全面结论。
适用场景
✅ 最佳应用:
- 需要多角度、多来源信息的研究任务
- 需要多专家意见的决策场景
- 信息聚合和对比分析
✅ 典型案例:
- 多源新闻聚合(Reddit + Twitter + 学术论文)
- 多专家会诊(不同专科医生的意见)
- 市场调研(多个渠道的用户反馈)
实战示例:多源研究团队
"""
示例:Collaborate模式 - 多源研究团队
场景:从不同来源收集信息,综合分析
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
# 创建Reddit研究员
reddit_agent = Agent(
name="Reddit Researcher",
role="从Reddit收集社区讨论",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="专注于Reddit社区的讨论和用户观点",
instructions=[
"搜索Reddit相关讨论",
"总结社区主流观点",
"提取用户真实体验",
"标注讨论热度和时间"
],
markdown=True
)
# 创建新闻研究员
news_agent = Agent(
name="News Researcher",
role="收集最新新闻资讯",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="专注于主流媒体的新闻报道",
instructions=[
"搜索权威媒体的最新报道",
"关注官方声明和数据",
"提供客观的新闻视角",
"标注新闻来源和发布时间"
],
markdown=True
)
# 创建学术研究员
academic_agent = Agent(
name="Academic Researcher",
role="查找学术研究",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="专注于学术论文和研究报告",
instructions=[
"搜索相关学术论文",
"提取研究结论和数据",
"关注权威机构的报告",
"标注研究来源和发表时间"
],
markdown=True
)
# 创建协作模式Team
research_team = Team(
name="Multi-Source Research Team",
mode="collaborate", # 🎯 关键:使用协作模式
members=[reddit_agent, news_agent, academic_agent],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
"协调所有研究员同时开展调查",
"综合不同来源的信息",
"对比社区观点、媒体报道和学术研究",
"识别共识与分歧",
"生成全面的研究报告"
],
show_members_responses=True,
markdown=True
)
# 执行研究任务
print("=" * 60)
print("🔍 研究任务:量子计算的最新发展")
print("=" * 60)
research_team.print_response(input="研究量子计算的最新发展趋势和应用")
运行效果:
============================================================
🔍 研究任务:量子计算的最新发展
============================================================
🎯 Team Leader: 协调三位研究员同时开展调查...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💬 Reddit Researcher 的发现:
来自Reddit社区的讨论:
**r/QuantumComputing 热门话题:**
- 用户对IBM的127量子比特处理器表示兴奋
- 讨论Google的量子优势实验
- 开发者分享Qiskit学习经验
**社区主流观点:**
- 认为量子计算仍处于早期阶段
- 期待在密码学领域的应用
- 担心"量子寒冬"是否会到来
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📰 News Researcher 的发现:
主流媒体报道:
**权威新闻来源:**
- Nature: IBM发布433量子比特处理器(2024年10月)
- MIT Technology Review: 量子纠错取得突破
- Bloomberg: 量子计算初创公司获$50M融资
**关键数据:**
- 全球量子计算市场预计2030年达$125B
- 超过30家公司投资量子技术
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎓 Academic Researcher 的发现:
学术研究进展:
**重要论文:**
- Nature (2024): "量子纠错新方法使错误率降低10倍"
- Science: "拓扑量子计算的实验验证"
- arXiv: 200+ 篇关于量子算法的最新论文
**研究机构:**
- MIT、斯坦福、清华大学活跃在该领域
- 主要研究方向:量子纠错、量子算法、量子模拟
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Team Leader 综合报告:
# 量子计算最新发展综合研究报告
## 📊 多源信息对比分析
| 维度 | 社区观点 | 媒体报道 | 学术研究 |
|------|---------|---------|---------|
| **发展阶段** | 早期阶段 | 快速增长 | 技术突破期 |
| **关注焦点** | 实用工具 | 商业应用 | 理论突破 |
| **情绪倾向** | 谨慎乐观 | 积极正面 | 客观严谨 |
## 🎯 核心发现
### 1. 硬件进展
- **共识**: IBM、Google等巨头持续突破量子比特数量
- **亮点**: IBM 433量子比特处理器(学术+媒体验证)
- **挑战**: 量子纠错仍是关键瓶颈(社区+学术共识)
### 2. 应用前景
- **近期**: 量子化学模拟、优化问题(学术主流)
- **中期**: 密码学、机器学习(社区期待)
- **远期**: 通用量子计算(媒体预测)
### 3. 市场趋势
- **投资**: 大量资金流入(媒体数据:$50M单笔融资)
- **人才**: 开发者积极学习(社区Qiskit讨论活跃)
- **预期**: 2030年市场规模$125B(媒体预测)
## ⚠️ 风险提示
- **技术风险**: 量子纠错尚未完全解决
- **预期管理**: 社区担心过度炒作导致"量子寒冬"
- **时间线**: 实用化可能需要5-10年
## 📌 结论
量子计算正处于**技术突破期**,硬件能力快速提升,学术研究活跃,
商业投资积极,但距离实用化仍需时间。建议保持关注但理性预期。
Collaborate模式的优势与局限
✅ 优势:
- 🌐 全面视角:多角度信息汇总
- 🔍 交叉验证:不同来源互相印证
- 📊 对比分析:识别共识与分歧
- ⚡ 并行执行:所有成员同时工作
⚠️ 注意事项:
- 💰 成本较高:所有成员都会调用模型
- ⏱️ 时间消耗:需要等待所有成员完成
- 🔄 可能冗余:不同成员可能收集重复信息
3️⃣ Coordinate Mode(协调模式)
核心机制
用户任务
↓
┌──────────────────┐
│ Team Leader │
│ "按流程执行" │
└────────┬─────────┘
↓
┌─────▼─────┐
│ 成员A │
│ 数据采集 │
└─────┬─────┘
↓ [输出传递]
┌─────▼─────┐
│ 成员B │
│ 数据清洗 │
└─────┬─────┘
↓ [输出传递]
┌─────▼─────┐
│ 成员C │
│ 数据分析 │
└─────┬─────┘
↓
最终结果
工作原理: 成员按顺序执行任务,前一个成员的输出作为下一个成员的输入,形成流水线式工作流。
适用场景
✅ 最佳应用:
- 多步骤流水线任务
- 有明确执行顺序依赖的工作流
- 数据处理管道(ETL流程)
✅ 典型案例:
- 数据分析:采集 → 清洗 → 分析 → 可视化
- 内容创作:研究 → 撰写 → 审校 → 发布
- 软件开发:需求 → 设计 → 编码 → 测试
实战示例:数据分析流水线
"""
示例:Coordinate模式 - 数据分析流水线
场景:数据采集 → 清洗 → 分析,顺序执行
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
# 步骤1:数据采集Agent
data_collector = Agent(
name="Data Collector",
role="采集原始数据",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="负责从各种来源收集原始数据",
instructions=[
"搜索并收集相关的原始数据",
"包含数据来源和时间戳",
"保持数据的完整性",
"整理成结构化格式"
]
)
# 步骤2:数据清洗Agent
data_cleaner = Agent(
name="Data Cleaner",
role="清洗和结构化数据",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="负责清洗数据、去除噪音、建立清晰结构",
instructions=[
"接收Data Collector提供的原始数据",
"去除无关信息和重复内容",
"标准化数据格式",
"建立清晰的数据结构",
"标注数据质量"
]
)
# 步骤3:数据分析Agent
data_analyzer = Agent(
name="Data Analyzer",
role="分析数据并得出结论",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="负责深度分析数据,提取洞察和结论",
instructions=[
"接收Data Cleaner提供的清洗后数据",
"进行深度分析",
"识别趋势和模式",
"提供数据驱动的洞察",
"生成分析报告"
]
)
# 创建协调模式Team
analysis_team = Team(
name="Data Analysis Pipeline",
mode="coordinate", # 🎯 关键:使用协调模式
members=[data_collector, data_cleaner, data_analyzer],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
"按顺序执行数据分析流水线:采集 → 清洗 → 分析",
"确保每个步骤的输出成为下一步骤的输入",
"保持数据流转的连贯性",
"生成完整的分析报告"
],
share_member_interactions=True, # 🔑 关键:成员间共享交互
show_members_responses=True,
markdown=True
)
# 执行分析任务
print("=" * 60)
print("📊 任务:分析2024年电动汽车市场趋势")
print("=" * 60)
analysis_team.print_response(input="分析2024年电动汽车市场的发展趋势")
运行效果:
============================================================
📊 任务:分析2024年电动汽车市场趋势
============================================================
🎯 Team Leader: 启动数据分析流水线...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📡 步骤1: Data Collector 正在工作...
收集到的原始数据:
**销售数据:**
- 2024年Q1全球电动车销量:250万辆
- 中国市场占比:52%
- 欧洲市场占比:28%
- 美国市场占比:12%
**市场新闻:**
- Tesla降价策略
- 比亚迪海外扩张
- 新能源补贴政策调整
- 充电基础设施建设
**技术进展:**
- 固态电池研发进展
- 800V快充技术普及
- 智能驾驶功能升级
[数据来源和时间戳已标注]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧹 步骤2: Data Cleaner 正在工作...
接收并清洗Data Collector的输出...
**清洗后的结构化数据:**
```json
{
"sales_data": {
"q1_2024_global": 2500000,
"market_share": {
"china": 0.52,
"europe": 0.28,
"usa": 0.12,
"others": 0.08
}
},
"market_trends": [
{
"trend": "price_competition",
"players": ["Tesla", "BYD"],
"impact": "high"
},
{
"trend": "policy_adjustment",
"region": "global",
"impact": "medium"
},
{
"trend": "infrastructure_expansion",
"focus": "charging_network",
"impact": "high"
}
],
"technology": [
{
"tech": "solid_state_battery",
"status": "development"
},
{
"tech": "800v_charging",
"status": "mass_production"
}
],
"data_quality": "high"
}
✅ 数据清洗完成,结构清晰,可进入分析阶段
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔬 步骤3: Data Analyzer 正在工作...
基于清洗后的数据进行深度分析...
2024年电动汽车市场趋势分析报告
📈 市场概况
销量表现
- Q1全球销量: 250万辆
- 同比增长: 约35%(基于历史数据推算)
- 市场集中度: 前三大市场占比92%
区域分布
| 区域 | 占比 | 特点 |
|---|---|---|
| 🇨🇳 中国 | 52% | 绝对主导,内需强劲 |
| 🇪🇺 欧洲 | 28% | 政策驱动,稳步增长 |
| 🇺🇸 美国 | 12% | 增速加快,潜力巨大 |
| 🌍 其他 | 8% | 新兴市场待开发 |
🎯 核心趋势
1. 价格竞争白热化 ⚡
关键发现:
- Tesla通过降价抢占市场份额
- 比亚迪以性价比优势扩张海外
- 预计价格战将持续至2024年底
影响评估: 🔴 高影响
- 利好消费者
- 挤压中小品牌生存空间
2. 技术突破加速 🚀
重点技术:
-
800V快充: 已进入量产阶段
- 充电时间缩短至15-20分钟
- 提升用户体验
-
固态电池: 研发阶段
- 预计2026-2027年商用
- 续航里程翻倍潜力
3. 基础设施完善 🔌
建设进展:
- 充电桩网络持续扩张
- 高速公路覆盖率提升
- 解决"里程焦虑"
💡 洞察与预测
短期(2024 Q2-Q4)
- 价格战延续: 市场竞争加剧
- 技术迭代: 800V成为新标配
- 政策调整: 补贴逐步退坡
中期(2025-2026)
- 市场整合: 中小品牌淘汰
- 技术升级: 固态电池商用化
- 海外扩张: 中国品牌全球化
⚠️ 风险提示
- 政策风险: 补贴退坡影响需求
- 供应链: 原材料价格波动
- 技术路线: 氢能源等替代方案竞争
📊 结论
2024年电动汽车市场处于高速增长期,技术进步和价格竞争 是主要驱动力。建议:
- 消费者:现在是购车好时机(价格优惠)
- 投资者:关注头部企业和技术创新公司
- 从业者:聚焦技术研发和成本控制
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Team Leader: 数据分析流水线执行完成!
已生成完整的市场趋势分析报告,包含:
- 数据采集(Data Collector)
- 数据清洗(Data Cleaner)
- 深度分析(Data Analyzer)
报告质量:✅ 高质量 数据可信度:✅ 可靠
#### Coordinate模式的优势与局限
**✅ 优势:**
- 🔄 流程清晰:明确的执行顺序
- 📊 数据传递:前一步输出成为下一步输入
- 🎯 专业分工:每个Agent专注自己的环节
- 🔍 可追溯:每个步骤的输出都可查看
**⚠️ 注意事项:**
- ⏱️ 顺序执行:无法并行,总时间是各步骤之和
- 🔗 链式依赖:前一步失败会影响后续步骤
- 📏 流程固定:不适合需要灵活调整顺序的任务
---
### 📊 三种协作模式对比总结
| 模式 | 执行方式 | 成员参与 | 适用场景 | 成本 | 速度 |
|------|---------|---------|---------|------|------|
| **Route** | 路由到单个成员 | 1个成员 | 任务分类、专家选择 | 💰 低 | ⚡⚡⚡ 快 |
| **Collaborate** | 所有成员并行 | 所有成员 | 多源研究、综合决策 | 💰💰💰 高 | ⚡⚡ 中等 |
| **Coordinate** | 成员顺序执行 | 依次执行 | 流水线、多步骤流程 | 💰💰 中 | ⚡ 慢 |
### 🎯 模式选择决策树
开始 ↓ 任务可以由单个成员完成? ├─ 是 → 使用 Route Mode └─ 否 ↓
需要多个成员的不同视角? ├─ 是 → 使用 Collaborate Mode └─ 否 ↓
任务有明确的执行顺序? ├─ 是 → 使用 Coordinate Mode └─ 否 → 重新设计任务或组合多种模式
---
## 实战案例1:简单的研究团队
让我们通过一个完整的案例,构建一个由**研究员**和**总结员**组成的简单团队。
### 📋 案例背景
**需求:** 研究某个主题,收集资料并生成摘要报告
**团队设计:**
- 研究员:负责搜索和收集信息
- 总结员:负责提炼要点和生成报告
**协作模式:** Coordinate(顺序执行)
### 💻 完整代码实现
```python
"""
实战案例1:简单的研究团队
功能:信息收集 + 内容总结
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤1:创建研究员Agent
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
researcher = Agent(
name="Researcher",
role="信息收集专家",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="""
专业的网络信息研究员,擅长:
- 使用搜索引擎查找权威信息
- 从多个来源收集相关资料
- 评估信息的可信度和时效性
""",
instructions=[
"使用搜索工具查找最新、最相关的信息",
"收集至少3-5个可靠来源的资料",
"每个信息都要标注来源链接",
"关注信息的发布时间和权威性",
"整理成结构化的研究笔记"
],
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤2:创建总结员Agent
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
summarizer = Agent(
name="Summarizer",
role="内容总结专家",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="""
专业的内容总结专家,擅长:
- 提炼长篇内容的核心要点
- 生成结构清晰的摘要
- 保持信息的准确性和完整性
""",
instructions=[
"仔细阅读研究员提供的所有资料",
"提取关键信息和核心观点",
"按重要性排序信息",
"使用清晰的标题和层次结构",
"生成简洁易读的总结报告",
"保留重要的数据和引用来源"
],
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤3:创建研究团队
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
simple_team = Team(
name="Simple Research Team",
mode="coordinate", # 顺序执行:研究 → 总结
members=[researcher, summarizer],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
"首先让研究员收集相关信息",
"然后让总结员提炼要点",
"确保信息传递的完整性",
"生成一份简洁专业的研究报告"
],
show_members_responses=True, # 显示各成员的工作过程
share_member_interactions=True, # 成员间共享信息
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤4:执行研究任务
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
print("=" * 70)
print("🎯 研究任务:AI在教育领域的应用")
print("=" * 70)
simple_team.print_response(
input="研究人工智能在教育领域的最新应用,包括技术趋势和实际案例"
)
📊 运行效果展示
======================================================================
🎯 研究任务:AI在教育领域的应用
======================================================================
🔍 Team Leader: 启动研究流程...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 Researcher 正在工作...
## 研究报告:AI在教育领域的应用
### 🔎 信息来源1: 教育科技新闻
**来源:** EdTech Magazine
**发布时间:** 2024年10月
**核心内容:**
- 个性化学习平台使用AI算法分析学生学习模式
- 自适应学习系统根据学生表现调整难度
- 案例:Khan Academy的AI辅导系统
### 🔎 信息来源2: 学术研究
**来源:** Journal of Educational Technology
**发布时间:** 2024年9月
**核心内容:**
- AI聊天机器人作为24/7学习助手
- 自动批改系统节省教师80%的作业批改时间
- 学习分析预测学生的学习困难
### 🔎 信息来源3: 产业报告
**来源:** Gartner Research
**发布时间:** 2024年Q3
**核心内容:**
- 全球教育AI市场规模预计2025年达$6B
- 主要应用场景:智能辅导、内容生成、评估系统
- 60%的教育机构计划2025年前部署AI工具
### 🔎 信息来源4: 实际案例
**案例1:** Duolingo的AI语言学习
- 使用GPT-4提供对话练习
- 个性化学习路径
- 实时反馈和纠错
**案例2:** Coursera的AI课程推荐
- 基于学习历史推荐课程
- 预测学习成果
- 优化学习路径
### 📊 收集到的关键数据
- AI教育应用增长率:45% YoY
- 学生学习效率提升:平均30%
- 教师工作负担减少:40-50%
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Summarizer 正在工作...
接收研究员的资料,开始提炼总结...
# AI在教育领域应用总结报告
## 🎯 核心要点
### 1. 主要应用场景(按重要性排序)
#### ⭐ 个性化学习
- **技术**: AI算法分析学习模式,自适应调整内容
- **效果**: 学习效率提升30%
- **代表**: Khan Academy AI辅导系统
#### ⭐ 智能辅导助手
- **技术**: AI聊天机器人提供24/7支持
- **效果**: 即时解答,覆盖更多学生
- **代表**: Duolingo GPT-4对话练习
#### ⭐ 自动化评估
- **技术**: 自动批改作业和考试
- **效果**: 节省教师80%批改时间
- **应用**: 客观题、作文评分
### 2. 关键数据
| 指标 | 数据 |
|------|------|
| 市场规模(2025预测) | $6B |
| 年增长率 | 45% |
| 学习效率提升 | 平均30% |
| 教师负担减少 | 40-50% |
| 机构采用计划 | 60%(2025年前) |
### 3. 典型案例
**🏆 成功案例:**
1. **Khan Academy**: AI自适应学习系统
2. **Duolingo**: GPT-4驱动的语言学习
3. **Coursera**: AI课程推荐引擎
### 4. 技术趋势
1. **个性化程度加深**: 从统一教学到千人千面
2. **实时反馈增强**: 即时诊断学习问题
3. **预测分析应用**: 提前识别学习困难
4. **内容自动生成**: AI辅助创建教学材料
## 💡 洞察与展望
### 优势
✅ 提高学习效率和个性化程度
✅ 减轻教师工作负担
✅ 降低教育成本,扩大覆盖面
### 挑战
⚠️ 数据隐私和安全问题
⚠️ 教师角色转型需求
⚠️ 技术公平性(数字鸿沟)
### 未来方向
- AI + VR/AR 沉浸式学习
- 更自然的人机交互
- 跨学科知识图谱构建
## 📚 信息来源
- EdTech Magazine (2024年10月)
- Journal of Educational Technology (2024年9月)
- Gartner Research (2024年Q3)
- Khan Academy、Duolingo、Coursera 官方资料
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Team Leader: 研究任务完成!
已生成完整的研究报告,包含:
✓ 5个权威信息来源
✓ 结构化的总结报告
✓ 关键数据和案例
✓ 趋势分析和展望
🎯 案例总结
工作流程:
- Researcher 使用搜索工具收集信息
- Summarizer 接收资料并生成摘要
- Team Leader 整合输出最终报告
关键亮点:
- ✅ 清晰的职责分工
- ✅ 顺序执行保证信息传递
- ✅ 多源信息确保全面性
- ✅ 结构化输出易于阅读
实战案例2:内容创作团队
现在让我们构建一个更复杂的团队:研究员 + 撰稿人 + 审校员
📋 案例背景
需求: 创作一篇高质量的专业文章
团队设计:
- 研究员:深度研究主题,收集素材
- 撰稿人:基于研究资料撰写文章
- 审校员:审校文章,优化表达
协作模式: Coordinate(顺序执行,流水线式)
💻 完整代码实现
"""
实战案例2:内容创作团队
功能:研究 → 撰写 → 审校,生成高质量文章
"""
from agno.agent import Agent
from agno.models.deepseek import DeepSeek
from agno.team import Team
from agno.tools.duckduckgo import DuckDuckGoTools
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤1:创建内容研究员
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
content_researcher = Agent(
name="Content Researcher",
role="内容研究员",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[DuckDuckGoTools()],
description="""
专业的内容研究专家,为文章创作提供坚实的素材基础。
专长:
- 深度主题研究
- 数据和案例收集
- 信息来源验证
""",
instructions=[
"全面搜索主题相关的信息",
"收集权威数据、实际案例和专家观点",
"整理成结构化的研究笔记",
"标注所有信息来源和发布时间",
"评估信息的可信度和相关性",
"为撰稿人提供充足的写作素材"
],
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤2:创建专业撰稿人
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
writer = Agent(
name="Writer",
role="专业撰稿人",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="""
资深的内容创作者,擅长将研究资料转化为引人入胜的文章。
专长:
- 清晰的文章结构设计
- 专业而易读的表达
- 数据和案例的巧妙运用
""",
instructions=[
"仔细阅读研究员提供的所有资料",
"设计清晰的文章结构:引言-正文-结论",
"使用研究资料中的数据和案例支撑观点",
"保持专业性的同时确保可读性",
"适当使用标题、列表等格式增强可读性",
"确保逻辑连贯,论证充分",
"字数控制在要求范围内"
],
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤3:创建内容审校员
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
editor = Agent(
name="Editor",
role="内容审校员",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
description="""
经验丰富的编辑,确保文章达到出版级别的质量。
专长:
- 文章逻辑和结构优化
- 语言表达精炼
- 事实核查和质量把控
""",
instructions=[
"全面审阅撰稿人的文章",
"检查文章的逻辑性和连贯性",
"优化语言表达,提升文笔质量",
"确保数据和引用的准确性",
"检查文章结构是否合理",
"提出具体的修改建议",
"生成最终的优化版本"
],
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤4:创建内容创作团队
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
content_team = Team(
name="Content Creation Team",
mode="coordinate", # 流水线模式
members=[content_researcher, writer, editor],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
"按照标准的内容创作流程执行:研究 → 撰写 → 审校",
"研究员提供全面的背景资料和素材",
"撰稿人基于资料创作文章初稿",
"审校员优化并生成最终版本",
"确保每个环节的输出质量",
"最终交付高质量的专业内容"
],
show_members_responses=True,
share_member_interactions=True,
markdown=True
)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 步骤5:执行内容创作任务
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
print("=" * 70)
print("✍️ 创作任务:区块链技术在供应链管理中的应用")
print("=" * 70)
content_team.print_response(input=
"""
撰写一篇关于区块链技术在供应链管理中应用的科普文章。
要求:
- 字数:1500字左右
- 包含实际案例
- 适合普通读者阅读
- 既要专业又要通俗易懂
"""
)
📊 运行效果展示(精简版)
======================================================================
✍️ 创作任务:区块链技术在供应链管理中的应用
======================================================================
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📚 步骤1: Content Researcher 正在研究...
# 区块链与供应链研究笔记
## 核心技术原理
- 分布式账本技术
- 不可篡改的交易记录
- 透明度和可追溯性
## 实际应用案例
### 案例1: 沃尔玛的食品溯源
**来源:** IBM Food Trust (2024)
- 追踪食品从农场到货架的完整路径
- 食品召回时间从7天缩短到2.2秒
- 覆盖25,000+产品
### 案例2: 马士基的航运追踪
**来源:** Maersk TradeLens (2024)
- 实时追踪集装箱位置
- 减少文书工作30%
- 150+组织参与
### 案例3: De Beers的钻石认证
**来源:** De Beers Tracr (2024)
- 追踪钻石从矿场到零售的全程
- 防止冲突钻石进入市场
- 确保钻石真实性
## 关键数据
- 全球供应链区块链市场: $9.6B (2030预测)
- 企业采用率: 23% (2024)
- 成本节约: 平均20-30%
[更多研究资料...]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✍️ 步骤2: Writer 正在撰写...
基于研究资料创作文章...
# 区块链重塑供应链:从"黑箱"到"透明链"
## 引言:一颗钻石的奇幻旅程
想象一下,当你购买一枚钻石戒指时,能清楚地看到这颗钻石从非洲矿山被开采,
经过切割、打磨,最终来到你手中的完整旅程——这不是科幻片,而是区块链技术
正在供应链管理中实现的真实场景。
传统供应链就像一个"黑箱":产品从生产到消费者手中,中间经历了什么,
往往无人知晓。而区块链技术的出现,正在将这个"黑箱"变成"透明链"。
## 区块链如何改变供应链?
### 1. 让每个环节都"可追溯"
区块链就像一个永远无法被篡改的日记本,记录着产品旅程中的每一个关键时刻:
- 📍 何时何地生产
- 🚚 经过哪些运输环节
- 🏭 在哪些仓库停留
- ✅ 通过了哪些质检
**真实案例: 沃尔玛的食品安全革命**
2018年,沃尔玛与IBM合作推出基于区块链的食品溯源系统。当某批次生菜
被检出污染时:
- ❌ 传统方式:需要7天才能追踪到源头
- ✅ 区块链方式:仅需2.2秒就能精准定位问题批次
这意味着什么?数百万消费者的健康风险被大幅降低,超市的损失也从
"整个品类下架"减少到"精准召回问题批次"。
### 2. 打破信息孤岛
传统供应链中,每个参与方都有自己的系统和数据库,信息无法共享:
农场 → 加工厂 → 分销商 → 零售商 → 消费者 📊 📊 📊 📊 ?
各自为政,信息断层
区块链创建了一个所有参与方共享的"公共账本":
农场 ←→ 加工厂 ←→ 分销商 ←→ 零售商 ←→ 消费者 📊 共享账本 📊
信息透明,实时同步
**真实案例: 马士基的航运革命**
全球最大的航运公司马士基发现,一个集装箱从非洲运到欧洲,涉及的
纸质文书堆起来比集装箱还高!
使用区块链的TradeLens平台后:
- 📄 文书工作减少30%
- ⏱️ 通关时间缩短40%
- 💰 运输成本降低15%
### 3. 建立不可摧毁的信任
供应链的核心问题是信任:你怎么知道买到的"有机蔬菜"真的是有机的?
"意大利进口"的红酒真的来自意大利?
区块链的"不可篡改"特性解决了这个问题:
- ✅ 每个环节的数据一经记录就无法修改
- ✅ 所有参与方都能验证信息真实性
- ✅ 造假成本极高(需要控制51%的节点)
**真实案例: De Beers的钻石认证**
钻石行业长期被"血钻石"(冲突钻石)问题困扰。De Beers推出Tracr
区块链平台:
- 💎 每颗钻石从开采开始就被赋予唯一的数字身份
- 📸 每个环节拍照记录并上链
- 🔐 消费者扫码即可验证钻石来源
结果?消费者可以确信自己购买的钻石没有资助战争或剥削劳工。
## 区块链供应链的三大核心价值
### 🎯 价值1: 提升效率,降低成本
| 传统方式 | 区块链方式 | 改善幅度 |
|---------|-----------|---------|
| 纸质文书处理 | 数字化自动处理 | -30% |
| 人工核验 | 智能合约自动验证 | -50% |
| 库存管理 | 实时库存可见 | -25% |
**平均成本节约: 20-30%**
### 🔍 价值2: 增强透明度,保障安全
- 食品安全:快速追溯污染源
- 药品防伪:杜绝假药流入市场
- 奢侈品认证:确保正品来源
### 🤝 价值3: 优化协作,共享价值
区块链让供应链从"零和博弈"变成"价值共创":
- 所有参与方共享效率提升的收益
- 信息透明降低了相互猜疑
- 智能合约自动执行协议,减少纠纷
## 挑战与未来
当然,区块链在供应链的应用也面临挑战:
⚠️ **技术挑战:**
- 不同区块链平台的兼容性
- 大规模数据处理的性能问题
⚠️ **业务挑战:**
- 说服所有参与方加入生态
- 初期投入成本较高
- 需要改变现有业务流程
但趋势是明确的:
- 📈 市场规模预计2030年达$96亿
- 🏢 越来越多的企业加入
- 🌍 从试点项目到规模化应用
## 结语:从"信任危机"到"信任机器"
区块链之所以能改变供应链,不是因为它有多么神奇的魔法,而是因为它
解决了一个根本性问题:**在互不信任的多方之间建立可靠的信任机制**。
从沃尔玛的生菜,到马士基的集装箱,再到De Beers的钻石,区块链正在
让供应链从"黑箱"变成"透明链",从"信任危机"变成"信任机器"。
下次当你购买产品时,也许可以扫一扫二维码,看看它经历的奇妙旅程——
这不仅是技术的进步,更是消费者权益的保障。
**(全文约1500字)**
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 步骤3: Editor 正在审校...
审校初稿,优化表达...
## 审校意见与优化
### ✅ 优点
1. 结构清晰,引言吸引人
2. 案例丰富且有说服力
3. 语言通俗易懂
4. 数据支撑充分
### 🔧 优化建议
1. 技术原理部分可以更简化
2. 增加一个总结性图表
3. 某些专业术语需要解释
4. 结尾可以更有启发性
### 📊 最终优化版本
[经过审校员优化后的文章,在原文基础上:]
- 简化了技术描述,更加通俗
- 添加了信息流对比图
- 解释了"智能合约"等术语
- 优化了结尾,增加了对未来的展望
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Team Leader: 内容创作完成!
交付成果:
✓ 深度研究报告(包含3个权威案例)
✓ 1500字专业科普文章
✓ 经过专业审校的最终版本
✓ 既专业又通俗易懂
质量评估:✅ 达到出版级别
🎯 案例总结
工作流程:
- Content Researcher 深度研究,收集素材
- Writer 基于资料创作文章
- Editor 审校优化,生成最终版
关键亮点:
- ✅ 三角色协作,专业分工
- ✅ 流水线式执行,质量层层把关
- ✅ 真实案例支撑,内容专业可信
- ✅ 多轮优化,达到出版级别
适用场景:
- 📰 新闻报道创作
- 📚 技术文档编写
- 📝 营销文案制作
- 📖 教育内容开发
Team的高级特性
掌握了基础用法后,让我们深入探索Team的高级特性,这些特性能让你的多Agent系统更加强大和灵活。
🎭 成员角色的精细定义
精确的角色定义是Team高效运作的基础。
完整的角色定义模板
"""
Agent角色定义最佳实践模板
"""
agent = Agent(
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 基础标识
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
id="unique_agent_id_001", # 唯一标识符
name="Agent Display Name", # 显示名称
role="Agent's Primary Role", # 主要角色
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 详细描述
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
description="""
这个Agent的详细描述,帮助Team Leader理解其能力。
专长领域:
- 专长1
- 专长2
- 专长3
适用场景:
- 场景A
- 场景B
""",
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 行为指令
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
instructions=[
"明确的行为指令1",
"明确的行为指令2",
"输出格式要求",
"质量标准"
],
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 输出规范
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
expected_output="""
描述期望的输出格式,例如:
- Markdown格式报告
- JSON数据结构
- 表格形式
""",
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 模型和工具配置
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[...], # 该角色需要的工具
markdown=True
)
实例:金融分析师的精细定义
"""
示例:精细定义的金融分析师Agent
"""
finance_analyst = Agent(
id="finance_analyst_001",
name="Senior Finance Analyst",
role="股票市场分析专家",
description="""
资深金融分析师,专注于股票市场分析和投资建议。
核心能力:
- 实时股票数据获取和分析
- 财务报表解读
- 技术面和基本面分析
- 风险评估
数据来源:
- Yahoo Finance API
- 公司财报
- 市场新闻
分析框架:
- SWOT分析
- PE/PB估值
- 技术指标(MA, RSI, MACD)
""",
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
tools=[
YFinanceTools(
stock_price=True,
analyst_recommendations=True,
stock_fundamentals=True,
company_news=True
)
],
instructions=[
"使用Yahoo Finance获取最新数据",
"分析至少3个月的历史数据",
"结合基本面和技术面分析",
"提供明确的买入/持有/卖出建议",
"使用表格展示关键财务指标",
"标注数据更新时间和免责声明"
],
expected_output="""
## 股票分析报告
### 基本信息
| 指标 | 数值 |
|------|------|
| 当前价格 | $XX.XX |
| 市盈率 | XX.XX |
| 市净率 | XX.XX |
### 技术分析
- MA(5/20/60)
- RSI指标
- 趋势判断
### 投资建议
**评级**: 买入/持有/卖出
**目标价**: $XX.XX
**风险等级**: 低/中/高
**免责声明**: 本分析仅供参考...
""",
markdown=True
)
📋 任务分配策略详解
Team Leader如何智能分配任务?让我们深入了解不同模式下的策略。
Route Mode的分配策略
"""
Route模式:智能路由策略
"""
team = Team(
name="Customer Service Team",
mode="route",
members=[
technical_support_agent, # 技术支持
billing_agent, # 账单问题
general_inquiry_agent # 一般咨询
],
instructions=[
# 路由规则
"分析用户问题的类型和性质",
"如果是技术问题(故障、bug、配置),路由到技术支持Agent",
"如果是账单问题(付款、退款、发票),路由到账单Agent",
"如果是一般咨询(产品信息、使用方法),路由到咨询Agent",
"只选择一个最合适的Agent处理",
"直接返回该Agent的响应"
]
)
路由决策过程:
用户问题:"我的账单有误,多扣了50元"
↓
Leader分析:包含"账单"、"扣费"关键词
↓
决策:路由到 billing_agent
↓
billing_agent处理并返回
Collaborate Mode的分配策略
"""
Collaborate模式:并行协作策略
"""
team = Team(
name="Market Research Team",
mode="collaborate",
members=[
social_media_analyst, # 社交媒体分析
news_analyst, # 新闻分析
forum_analyst # 论坛分析
],
# 关键配置
delegate_task_to_all_members=True, # 自动分配给所有成员
instructions=[
# 协作规则
"将研究任务同时分配给所有分析师",
"每位分析师从自己的专业角度分析",
"收集所有分析师的发现",
"综合不同来源的信息",
"识别共识和分歧点",
"生成全面的市场洞察报告"
]
)
协作执行过程:
任务:"分析产品在市场上的口碑"
↓
┌──────────┬──────────┬──────────┐
│ 社交媒体 │ 新闻 │ 论坛 │
│ 分析师 │ 分析师 │ 分析师 │
└────┬─────┴────┬─────┴────┬─────┘
│ │ │
[并行执行同一任务]
│ │ │
↓ ↓ ↓
Twitter 媒体报道 Reddit
舆情 专业评测 用户讨论
│ │ │
└──────┬───┴──────────┘
↓
Leader聚合
↓
综合报告
Coordinate Mode的分配策略
"""
Coordinate模式:顺序协调策略
"""
team = Team(
name="Content Pipeline",
mode="coordinate",
members=[
researcher, # 步骤1
writer, # 步骤2
editor # 步骤3
],
# 关键配置
share_member_interactions=True, # 成员间共享交互
instructions=[
# 流程规则
"按成员顺序依次执行任务",
"第一步:研究员收集资料",
"第二步:撰稿人基于资料创作",
"第三步:审校员优化润色",
"每一步的输出成为下一步的输入",
"确保流程的连贯性和质量的递进"
]
)
顺序执行过程:
任务:"创作一篇文章"
↓
步骤1: Researcher
↓ [输出:研究资料]
步骤2: Writer (接收研究资料)
↓ [输出:文章初稿]
步骤3: Editor (接收文章初稿)
↓ [输出:最终文章]
完成
🔄 结果聚合机制
Team Leader如何聚合成员的输出?这是Team能力的关键体现。
聚合配置选项
"""
结果聚合的完整配置
"""
team = Team(
name="Analysis Team",
members=[analyst1, analyst2, analyst3],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 显示配置
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
show_members_responses=True, # 显示各成员的响应
stream=True, # 流式输出(实时显示)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 上下文共享
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
enable_agentic_context=True, # 启用团队上下文
share_member_interactions=True, # 成员间共享交互历史
add_datetime_to_context=True, # 添加时间信息
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 聚合行为
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
respond_directly=False, # False = Leader处理结果
# True = 直接返回成员响应
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 聚合指令
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
instructions=[
"收集所有成员的输出",
"识别关键信息和共同点",
"解决成员间的冲突观点",
"生成综合性的最终结论"
]
)
自定义聚合逻辑示例
"""
示例:投资决策团队的自定义聚合
"""
investment_team = Team(
name="Investment Decision Team",
mode="collaborate",
members=[
fundamental_analyst, # 基本面分析师
technical_analyst, # 技术面分析师
risk_analyst # 风险分析师
],
model=DeepSeek(api_key="DEEPSEEK_API_KEY"),
instructions=[
# 收集阶段
"收集三位分析师的独立评估",
# 分析阶段
"基本面分析师提供:估值、财务健康度评分(1-10分)",
"技术面分析师提供:趋势、动量评分(1-10分)",
"风险分析师提供:风险等级、风险评分(1-10分,分数越低越好)",
# 综合阶段
"计算综合评分:",
" 综合分 = (基本面分×0.4 + 技术面分×0.3 + (10-风险分)×0.3)",
# 决策阶段
"根据综合评分给出建议:",
" 8-10分:强烈买入",
" 6-8分:买入",
" 4-6分:持有",
" 2-4分:卖出",
" 0-2分:强烈卖出",
# 输出阶段
"生成包含以下部分的投资建议报告:",
"1. 综合评分和投资建议",
"2. 各分析师的详细意见",
"3. 意见一致性分析",
"4. 主要风险提示",
"5. 建议的仓位配置"
],
show_members_responses=True
)
聚合输出示例:
# 投资建议报告 - AAPL(苹果公司)
## 📊 综合评分
| 维度 | 评分 | 权重 | 加权分 |
|------|------|------|--------|
| 基本面 | 8.5 | 40% | 3.4 |
| 技术面 | 7.0 | 30% | 2.1 |
| 风险(反向) | 6.0 | 30% | 1.2 |
| **综合评分** | **6.7** | - | - |
## 🎯 投资建议
**评级**: 买入 💹
**建议仓位**: 15-20%
**目标价**: $195
**止损价**: $165
## 💼 分析师详细意见
### 基本面分析(评分:8.5/10)
- P/E合理,估值吸引人
- 现金流健康
- iPhone业务稳定增长
- 服务业务高利润率
### 技术面分析(评分:7.0/10)
- 突破MA60,中期趋势向上
- RSI:58(中性偏多)
- 成交量温和放大
### 风险分析(风险评分:6.0/10)
- 主要风险:监管压力
- 次要风险:中国市场不确定性
- 整体风险:中等可控
## 📈 意见一致性
✅ 高度共识:
- 公司基本面健康
- 中期趋势向好
⚠️ 分歧点:
- 短期是否会回调
- 最佳买入时机
## ⚠️ 风险提示
1. 监管风险(App Store政策)
2. 中国市场销售波动
3. 创新周期影响
## 💰 建议配置
- 建议仓位:15-20%
- 分批买入,降低成本
- 设置止损位:$165
最佳实践与注意事项
在实际项目中使用Team时,遵循这些最佳实践能避免常见陷阱,构建更健壮的系统。
✅ 最佳实践
1. 合理划分职责
✅ 好的做法:
# 职责明确,边界清晰
data_collector = Agent(
name="Data Collector",
role="收集原始数据",
tools=[DuckDuckGoTools()],
instructions=["只负责数据收集,不做分析"]
)
data_analyzer = Agent(
name="Data Analyzer",
role="分析数据趋势",
tools=[], # 不需要工具,专注分析
instructions=["分析数据,不负责收集"]
)
❌ 避免的做法:
# 职责模糊,功能重叠
general_agent = Agent(
name="General Agent",
role="做所有事情", # ⚠️ 太宽泛
tools=[
DuckDuckGoTools(),
YFinanceTools(),
FileTools(),
# ... 工具太多
],
instructions=["收集数据、分析数据、生成报告..."] # ⚠️ 任务太杂
)
🎯 职责划分原则:
- 单一职责:每个Agent只负责一类任务
- 清晰边界:明确什么该做,什么不该做
- 工具匹配:工具数量≤3个为宜
2. 控制团队规模
推荐配置:
| 团队规模 | 适用场景 | 协作模式建议 |
|---|---|---|
| 2-3人 | 简单协作 | Route / Coordinate |
| 3-5人 | 标准团队 | 所有模式 |
| 5-7人 | 复杂项目 | Coordinate(分组) |
| >7人 | ⚠️ 不推荐 | 考虑拆分为子Team |
⚠️ 注意: 成员太多会导致:
- 协调成本增加
- 响应时间变长
- Token消耗激增
解决方案:分层Team结构
"""
超过7个成员时,使用分层结构
"""
# 子Team1:数据团队
data_team = Team(
name="Data Team",
members=[collector, cleaner, validator]
)
# 子Team2:分析团队
analysis_team = Team(
name="Analysis Team",
members=[analyst1, analyst2, visualizer]
)
# 主Team:项目团队
main_team = Team(
name="Main Project Team",
members=[data_team, analysis_team, reporter] # 可以包含Team
)
3. 明确输入输出格式
✅ 好的做法:
analyst = Agent(
name="Data Analyst",
# 明确期望的输出格式
expected_output="""
## 分析报告
### 数据概览
| 指标 | 数值 | 变化 |
|------|------|------|
### 关键发现
1. 发现1
2. 发现2
### 建议
- 建议1
- 建议2
""",
instructions=[
"严格按照expected_output格式输出",
"所有数值保留2位小数",
"关键发现不超过5条"
]
)
好处:
- Team Leader容易解析和聚合
- 输出一致性高
- 便于后续处理
4. 使用上下文共享
场景: 团队成员需要了解其他成员的工作
"""
启用上下文共享,提升协作效率
"""
team = Team(
name="Collaborative Team",
members=[agent1, agent2, agent3],
# 启用上下文共享
enable_agentic_context=True, # 团队级上下文
share_member_interactions=True, # 共享成员交互历史
add_datetime_to_context=True, # 添加时间戳
# 上下文使用指令
instructions=[
"成员可以查看其他成员的工作成果",
"避免重复工作",
"基于已有成果继续推进"
]
)
效果:
- Agent B可以看到Agent A的输出
- 避免重复搜索相同信息
- 提高团队协作效率
5. 处理异常和失败
⚠️ 常见问题: 某个成员执行失败怎么办?
"""
实现容错机制
"""
team = Team(
name="Fault Tolerant Team",
members=[primary_agent, backup_agent],
instructions=[
"首先尝试使用primary_agent",
"如果primary_agent失败或超时:",
" 1. 记录错误信息",
" 2. 切换到backup_agent",
" 3. 在最终报告中说明备用方案的使用",
"确保任务总能完成"
]
)
⚠️ 常见陷阱
1. Team响应速度慢
问题:
# Coordinate模式下,3个成员顺序执行
team = Team(
mode="coordinate",
members=[agent1, agent2, agent3] # 每个耗时10秒
)
# 总耗时:30秒 😱
解决方案:
# 使用Collaborate模式并行执行
team = Team(
mode="collaborate",
members=[agent1, agent2, agent3] # 并行执行
)
# 总耗时:10秒 ✅
2. 成员输出不一致
问题:
# 三个成员的输出格式各不相同
agent1_output = "纯文本..."
agent2_output = {"json": "data"}
agent3_output = "## Markdown"
# Leader难以聚合 😵
解决方案:
# 统一输出格式
standard_format = """
## 分析报告
### 数据
### 结论
"""
for agent in [agent1, agent2, agent3]:
agent.expected_output = standard_format
agent.instructions.append("严格遵循expected_output格式")
3. Team Leader理解不准确
问题:
# 成员描述不清晰
agent = Agent(
name="Agent",
role="处理数据", # ⚠️ 太模糊
description="..." # 没有description
)
# Leader不知道何时使用这个Agent
解决方案:
# 提供详细描述
agent = Agent(
name="Finance Agent",
role="财务数据分析专家",
description="""
专门处理财务相关任务:
- 股票价格查询
- 财报分析
- 市场趋势预测
不处理:
- 非财务数据
- 实时新闻(由News Agent处理)
""",
instructions=["明确说明能做什么和不能做什么"]
)
4. Token消耗过大
问题:
# Collaborate模式,10个成员都执行
team = Team(
mode="collaborate",
members=[agent1, agent2, ..., agent10] # 10个成员
)
# 每次调用10个模型,成本高 💰💰💰
解决方案:
# 评估是否真的需要所有成员
# 方案1:减少成员数量
team = Team(
mode="collaborate",
members=[agent1, agent2, agent3] # 只保留关键成员
)
# 方案2:改用Route模式
team = Team(
mode="route", # 只调用一个成员
members=[agent1, agent2, ..., agent10]
)
🎯 性能优化建议
1. 模型选择策略
"""
根据任务重要性选择模型
"""
# Leader使用强模型(决策关键)
team = Team(
model=DeepSeek(api_key="DEEPSEEK_API_KEY"), # 最强模型
members=[...]
)
# 简单任务的成员可以用轻量模型
simple_agent = Agent(
model=DeepSeek(api_key="DEEPSEEK_API_KEY"), # 轻量模型
role="简单数据收集"
)
# 复杂任务的成员用强模型
complex_agent = Agent(
model=DeepSeek(api_key="DEEPSEEK_API_KEY"), # 强模型
role="深度分析"
)
2. 流式输出提升体验
"""
长任务使用流式输出
"""
team = Team(
name="Long Running Team",
members=[...],
stream=True, # 🔑 启用流式输出
show_members_responses=True
)
# 用户可以实时看到进度,体验更好
3. 缓存机制
"""
开发阶段使用缓存避免重复调用
"""
import os
# 设置缓存目录
os.environ["AGNO_CACHE_DIR"] = "./agno_cache"
team = Team(
name="Cached Team",
members=[...],
# Agno会自动缓存相同输入的响应
)
4. 监控和调试
"""
启用详细日志监控Team运行
"""
import logging
logging.basicConfig(level=logging.DEBUG)
team = Team(
name="Monitored Team",
members=[...],
show_members_responses=True, # 显示成员响应
debug_mode=True # 开启调试模式
)
# 运行时会输出详细的日志信息
team.print_response(input="任务...")
总结与下一篇预告
📝 本篇总结
恭喜你!通过本教程,你已经掌握了Agno框架Team团队协作机制的核心知识:
🎓 你学到了什么
-
为什么需要Team
- 单Agent的局限性
- 多Agent协作的优势
- 专业化分工的价值
-
Team基础概念
- Team的组成结构(Leader + Members)
- Team的工作原理
- Team vs 单Agent的核心区别
-
三种协作模式
- Route Mode: 智能路由,选择最佳执行者
- Collaborate Mode: 并行协作,多角度聚合
- Coordinate Mode: 顺序协调,流水线处理
-
实战案例
- 简单研究团队(研究员 + 总结员)
- 内容创作团队(研究员 + 撰稿人 + 审校员)
-
高级特性
- 成员角色的精细定义
- 任务分配策略
- 结果聚合机制
-
最佳实践
- 职责划分原则
- 团队规模控制
- 输入输出规范
- 常见陷阱及解决方案
💡 核心要点回顾
# 记住这三个核心配置
# 1️⃣ Route Mode - 选择最佳执行者
team = Team(
mode="route",
members=[expert1, expert2, expert3],
instructions=["分析任务,路由到最合适的专家"]
)
# 2️⃣ Collaborate Mode - 多角度并行
team = Team(
mode="collaborate",
members=[analyst1, analyst2, analyst3],
instructions=["所有成员并行分析,综合观点"]
)
# 3️⃣ Coordinate Mode - 流水线顺序
team = Team(
mode="coordinate",
members=[step1, step2, step3],
share_member_interactions=True,
instructions=["按顺序执行,传递输出"]
)
🚀 下一篇预告
在掌握了Team团队协作机制后,下一篇教程我们将探索更强大的Workflow工作流机制!
📖 下一篇:Agno开发教程系列(五):多Agent协作系统(下)—— Workflow工作流机制
你将学到:
-
Workflow vs Team
- 两者的核心区别
- 各自的适用场景
- 如何选择合适的机制
-
Workflow基础
- 步骤(Step)的定义
- 流程控制和数据传递
- 条件分支和循环
-
高级流程控制
- If-Else条件判断
- While/For循环
- 并行步骤执行
- 异常处理
-
Team与Workflow结合
- 将Team作为Workflow的步骤
- 构建复杂的混合系统
- 最佳实践模式
-
企业级应用案例
- 自动化数据分析流水线
- 智能客服工单处理系统
- 内容审核与发布工作流
预览代码片段
"""
下一篇教程预览:构建智能工作流
"""
from agno.workflow import Workflow
from agno.agent import Agent
from agno.team import Team
# 定义工作流步骤
workflow = Workflow(
name="Content Creation Workflow",
steps=[
# 步骤1:研究(可以是Team)
research_team,
# 步骤2:撰写
writer_agent,
# 步骤3:条件判断
If(
condition="quality_score > 8",
then=publish_agent,
else=revision_agent
),
# 步骤4:循环优化
While(
condition="revisions < 3 and quality_score < 8",
do=improve_agent
)
]
)
# 执行工作流
result = workflow.run("创作一篇技术文章")
🎯 练习作业
为了巩固所学知识,建议你尝试以下练习:
初级练习
练习1:构建客服团队
- 创建3个客服Agent(技术支持、账单、咨询)
- 使用Route模式智能分配问题
- 测试不同类型的用户问题
中级练习
练习2:多源新闻聚合
- 创建3个新闻Agent(国内、国际、科技)
- 使用Collaborate模式并行收集
- 生成综合新闻摘要
高级练习
练习3:数据分析流水线
- 设计完整的ETL流程(采集、清洗、分析、可视化)
- 使用Coordinate模式顺序执行
- 实现错误处理和质量检查
📚 参考资源
💬 教程系列导航
- 📘 第一篇:Agno框架基础与Agent构建
- 🔧 第二篇:工具系统与外部能力集成
- 🧠 第三篇:记忆系统——让AI记住你
- 🤝 第四篇:Team团队协作机制(本篇)
- 🔄 第五篇:Workflow工作流机制(即将发布)
- 🚀 第六篇:生产环境部署与最佳实践(计划中)
期待下一篇教程,我们将一起探索Workflow工作流的强大能力! 🚀
作者说明: 本教程基于Agno框架最新版本编写,使用DeepSeek模型作为示例。代码已经过测试验证,可以直接运行。
更新日期: 2025年11月2日
版本: v1.0
Happy Coding with Agno! 🎉