多智能体协作(Multi-Agent Collaboration)| Agentic Design Patterns | 智能体设计模式

内容纲要

第 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>

滚动至顶部