第 7 章:多智能体协作(Multi-Agent Collaboration)
核心价值:通过专业分工和协同工作突破单智能体能力边界
学习时间:10 分钟
学习日期:2025-10-27
一、核心定义
多智能体协作(Multi-Agent Collaboration):将系统组织为多个专长不同、相互协作的智能体组成的团队,通过任务分解、专业分工和协同通信,共同完成单个智能体无法处理的复杂任务。
可视化示意图:

图 1:多智能体系统示例

图 2:智能体以各种方式进行通信和交互
图 3:多智能体设计模式
关键机制:
1. 任务分解 → 高层目标拆解为子问题
2. 角色分配 → 每个智能体负责特定职责
3. 协同通信 → 标准化通信协议
4. 结果整合 → 汇总各智能体输出
三大核心要素:
- 明确的角色和职责
- 智能体间的通信通道
- 任务流程或交互协议
二、为什么需要多智能体协作?
| 单智能体的局限 | 多智能体的优势 |
|---|---|
| 能力受限于单一模型 | 各智能体发挥专长 |
| 所有工具集中在一处 | 工具按职责分组 |
| 单点故障导致系统崩溃 | 故障隔离,系统鲁棒 |
| 难以扩展 | 模块化,易扩展 |
| 无法并行处理 | 多任务并行执行 |
核心思想:分工合作,发挥协同效应,整体大于部分之和。
三、协作模式类型
1. 顺序交接(Sequential Handoffs)
智能体A → 处理 → 输出 → 智能体B → 处理 → 输出 → 智能体C
示例:研究员收集数据 → 分析师处理数据 → 编辑撰写报告
价值:管道式工作流,每步输出是下步输入。
2. 并行处理(Parallel Processing)
→ 智能体A →
任务 → 分解 → 智能体B → 合并结果
→ 智能体C →
示例:同时获取天气、新闻、股票数据,最后汇总
价值:加速处理,节省时间。
3. 辩论与共识(Debate and Consensus)
智能体A、B、C → 各自观点 → 讨论交流 → 达成共识
示例:多个专家智能体对决策方案进行评估和辩论
价值:多视角评估,决策更可靠。
4. 层级结构(Hierarchical)
管理智能体
/ | \
子管理 子管理 子管理
/ \ / \ / \
执行 执行 执行 执行 执行 执行
示例:CEO → 部门经理 → 员工
价值:分层管理,适合大规模复杂任务。
5. 专家团队(Expert Teams)
任务 → 研究专家 + 写作专家 + 编辑专家 → 协同产出
示例:市场研究员 + 文案 + 设计师 + 社媒专员
价值:专业领域深度协作。
6. 评审者模式(Critic-Reviewer)
创作智能体 → 初稿 → 评审智能体 → 反馈 → 修改 → 最终版
示例:代码生成 → 安全审查 → 质量检查 → 修正
价值:提高质量,减少幻觉和错误。
四、通信架构模型
| 模型 | 特点 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 单智能体 | 独立运行 | 简单易管理 | 能力受限 | 独立子问题 |
| 网络模型 | 点对点通信 | 去中心化,鲁棒 | 通信开销大 | 弹性要求高 |
| 监督者模型 | 中心协调者 | 清晰权责 | 单点故障,瓶颈 | 需集中控制 |
| 监督者作为工具 | 提供资源支持 | 灵活,非强制 | 协调力度弱 | 辅助型协作 |
| 层级模型 | 多层管理 | 可扩展,分布决策 | 复杂度高 | 大规模系统 |
| 自定义模型 | 按需设计 | 极致灵活 | 设计难度大 | 特殊场景 |
五、典型应用场景
1. 复杂研究与分析
- 数据库搜索智能体 + 总结智能体 + 趋势分析智能体 + 报告生成智能体
2. 软件开发
- 需求分析 → 代码生成 → 测试 → 文档编写
3. 创意内容生成
- 市场调研 + 文案撰写 + 图片设计 + 社媒排期
4. 财务分析
- 股票数据获取 + 新闻情绪分析 + 技术分析 + 投资建议
5. 客户支持
- 一线咨询 → 专业问题升级 → 技术专家/计费专家
6. 供应链优化
- 供应商智能体 + 制造商智能体 + 分销商智能体协同优化
7. 网络分析与故障修复
- 故障检测 + 原因诊断 + 修复方案 + 执行验证
六、Google ADK 协作模式实现
1. 层级结构(Hierarchical)
coordinator = LlmAgent(
name="Coordinator",
model="gemini-2.0-flash-exp",
instruction="协调子智能体工作",
sub_agents=[greeter, task_doer] # 父子关系
)
价值:父智能体动态委派任务给子智能体。
2. 循环执行(LoopAgent)
poller = LoopAgent(
name="StatusPoller",
max_iterations=10,
sub_agents=[process_step, ConditionChecker()]
)
价值:迭代执行直到满足条件。
3. 顺序执行(SequentialAgent)
pipeline = SequentialAgent(
name="MyPipeline",
sub_agents=[step1, step2] # step1输出→step2输入
)
价值:线性工作流,数据流式传递。
4. 并行执行(ParallelAgent)
data_gatherer = ParallelAgent(
name="data_gatherer",
sub_agents=[weather_fetcher, news_fetcher]
)
价值:多个任务同时执行,结果汇总。
5. 智能体作为工具(Agent as Tool)
image_tool = agent_tool.AgentTool(
agent=image_generator_agent,
description="生成图像的工具"
)
artist_agent = LlmAgent(
name="Artist",
tools=[image_tool] # 将另一个智能体当工具使用
)
价值:智能体可以像调用函数一样调用其他智能体。
七、主流框架对比
| 框架 | 协作实现 | 特色 | 适用场景 |
|---|---|---|---|
| CrewAI | <code>Crew</code> + <code>Process.sequential/hierarchical</code> | 高层抽象,易用 | 快速原型,内容生成 |
| LangGraph | 图结构节点 | 可视化流程 | 复杂工作流 |
| Google ADK | <code>SequentialAgent</code>, <code>ParallelAgent</code>, <code>LoopAgent</code> | 丰富的编排模式 | 企业级应用 |
| AutoGen | 对话式协作 | 自主对话交互 | 研究实验 |
代码示例位置:
- CrewAI:<code>codes/Chapter-07-Multi-Agent-Collaboration-CrewAI-Example.py</code>
- ADK 层级:<code>Chapter-07-Multi-Agent-Collaboration-ADK-Example-Hierarchical.py</code>
- ADK 顺序:<code>Chapter-07-Multi-Agent-Collaboration-ADK-Example-Sequential.py</code>
- ADK 并行:<code>Chapter-07-Multi-Agent-Collaboration-ADK-Example-Parallel.py</code>
- ADK 迭代:<code>Chapter-07-Multi-Agent-Collaboration-ADK-Example-Iterative.py</code>
- ADK 工具:<code>Chapter-07-Multi-Agent-Collaboration-ADK-Example-Agent-as-Tool.py</code>
八、关键概念速查
| 概念 | 定义 |
|---|---|
| 多智能体协作 | 多个智能体协同完成共同目标 |
| 任务分解 | 将复杂任务拆解为子问题 |
| 专业分工 | 每个智能体负责特定领域 |
| 通信协议 | 智能体间信息交换的标准 |
| 顺序交接 | 一个接一个依次处理 |
| 并行处理 | 多个任务同时执行 |
| 层级结构 | 管理者-执行者多层架构 |
| 评审者模式 | 创作-评审-修改闭环 |
| AgentTool | 将智能体封装为可调用工具 |
| 协同效应 | 整体大于部分之和 |
九、常见问题
Q1:什么时候用多智能体?
当任务复杂到需要多种专业技能、多个阶段、或能从并行处理中受益时。单智能体搞不定,就考虑多智能体。
Q2:多智能体会增加延迟吗?
顺序模式会增加(串行调用),但并行模式可以减少总时间。权衡取舍。
Q3:如何避免智能体间通信混乱?
1) 明确角色和职责;2) 使用标准化通信格式;3) 定义清晰的交互协议;4) 利用框架提供的编排工具。
Q4:智能体数量越多越好吗?
不是。过多智能体会增加通信开销和协调复杂度。遵循"最小有效分工"原则。
Q5:如何处理智能体故障?
1) 设计故障隔离机制;2) 关键智能体要有备份;3) 实现降级策略;4) 监控和自动重试。
Q6:层级 vs 网络,选哪个?
- 层级:任务明确,需要集中控制
- 网络:弹性优先,去中心化场景
十、参考资源
学术论文
技术文章
代码示例
- CrewAI:<code>codes/Chapter-07-Multi-Agent-Collaboration-CrewAI-Example.py</code>
- Google ADK 系列:<code>codes/Chapter-07-Multi-Agent-Collaboration-ADK-Example-*.py</code>
扩展阅读
- 原文章节:<code>13-Chapter-07-Multi-Agent-Collaboration.md</code>