多Agent协作
2526 字约 8 分钟
domain/aiai/agents
2026-07-24
多 Agent 协作通过分工合作解决单个 Agent 无法处理的复杂任务。核心问题不是"能不能协作",而是什么时候值得用多 Agent、如何设计通信和角色、如何控制成本。
一句话解释
多 Agent 系统 = 角色分工 + 通信协议 + 协调机制,用 N 倍 LLM 调用换取更高的任务质量和更广的能力覆盖。
核心结论
- 多 Agent 协作通过分工合作解决单个 Agent 无法处理的复杂任务
- 常见协作模式:主从模式、对等模式、辩论模式、流水线模式、投票模式
- Agent 间通信协议和角色定义是协作成功的关键
- 多 Agent 系统需要协调机制避免冲突和冗余
- 多 Agent 协作成本更高(N 个 Agent = N 倍 LLM 调用),需要权衡收益与开销
基础概念
Multi-Agent System:由多个 Agent 组成的协作系统。
Role:每个 Agent 在协作中扮演的角色和职责。
Communication:Agent 之间的信息传递方式。
Coordination:协调多个 Agent 的行动,避免冲突。
Consensus:多个 Agent 达成一致意见的机制。
Orchestrator:协调多个 Agent 的中心控制器。
Debate:多个 Agent 通过辩论达成共识。
五种协作模式详解
1. 主从模式(Manager-Worker)
- 机制:Manager 分解任务,分配给 Worker 执行,汇总结果
- 适用场景:任务可清晰分解,子任务相对独立
- 优势:结构清晰,Manager 全局把控
- 劣势:Manager 是单点瓶颈,规划质量决定整体效果
- 框架实现:LangGraph Supervisor 模式、CrewAI Crew + Manager
2. 对等模式(Peer-to-Peer)
- 机制:所有 Agent 地位平等,通过协商完成任务
- 适用场景:需要多视角分析、创意性任务
- 优势:无单点瓶颈,充分利用各 Agent 专长
- 劣势:协调困难,可能陷入"讨论循环"不收敛
- 框架实现:AutoGen Group Chat
3. 辩论模式(Debate)
- 机制:多个 Agent 从不同角度分析问题,通过辩论达成共识
- 适用场景:需要高质量决策、减少单视角偏差
- 优势:减少 LLM 幻觉和偏见,产出更全面
- 劣势:成本高(2-3 倍调用),收敛速度不可预测
- 典型应用:投资决策、技术方案评审
4. 流水线模式(Pipeline)
- 机制:Agent 按顺序处理,每个负责一个环节
- 适用场景:流程明确、步骤固定的任务
- 优势:简单直接,每步可独立测试和优化
- 劣势:灵活性差,无法动态调整流程
- 框架实现:Google ADK SequentialAgent
5. 投票模式(Voting)
- 机制:多个 Agent 独立给出答案,通过投票选择最终结果
- 适用场景:需要高可靠性、答案有明确对错
- 优势:降低单次错误的影响,提高可靠性
- 劣势:成本 N 倍,所有 Agent 处理同一问题
- 典型应用:代码 Bug 检测、数学问题求解
通信协议设计
三种通信模式
| 通信模式 | 机制 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| 共享黑板 | 所有 Agent 读写同一共享状态 | 信息透明,简单直接 | 并发冲突,信息过载 | 小规模、紧耦合团队 |
| 消息传递 | Agent 之间直接发送结构化消息 | 解耦,可扩展 | 通信链路管理复杂 | 中大规模、松耦合系统 |
| 事件驱动 | Agent 发布事件,订阅者响应 | 松耦合,可扩展 | 调试困难,事件链追踪 | 异步、大规模系统 |
共享黑板模式示例
共享状态(Blackboard):
{
"task": "分析公司财务状况",
"findings": [
{"agent": "财务分析师", "content": "营收增长 20%"},
{"agent": "风险评估", "content": "负债率偏高"},
{"agent": "行业对比", "content": "行业平均增长 15%"}
],
"conclusion": null ← 等待 Manager Agent 填充
}消息传递的格式约定
{
"from": "research_agent",
"to": "writer_agent",
"type": "task_complete",
"content": {
"summary": "已收集到 5 篇相关论文",
"data": [...],
"next_action": "请基于以上信息撰写综述"
},
"metadata": {
"timestamp": "2026-07-22T10:30:00Z",
"cost_tokens": 3500
}
}角色分配与能力匹配
角色设计原则
- 单一职责:每个 Agent 只负责一个明确的能力域
- 能力互补:角色之间不重叠,合在一起覆盖完整任务
- 层级清晰:决策者、执行者、审核者分层明确
- 可替换性:同一角色的 Agent 可以互换(便于测试和扩展)
角色分配策略
| 策略 | 描述 | 适用场景 |
|---|---|---|
| 静态分配 | 预定义角色和职责 | 流程固定的场景 |
| 动态分配 | Manager 根据任务特征选择 Agent | 任务类型多样的场景 |
| 自选举 | Agent 根据自身能力主动认领任务 | 对等协作模式 |
| 竞价机制 | 多个 Agent 竞争任务,选最优 | 资源优化场景 |
多 Agent 系统的调试与可观测性
调试挑战
- 因果链复杂:A 的输出影响 B,B 的输出影响 C,定位错误源头困难
- 非确定性:同样的输入,每次执行路径可能不同
- 通信开销:Agent 间的消息传递增加延迟和成本
- 状态同步:多个 Agent 的状态一致性难以保证
可观测性方案
调试链路需要追踪:
Task → [Agent A: 推理过程] → [消息] → [Agent B: 推理过程] → [消息] → ... → 结果
每个节点记录:
- 输入消息(从哪个 Agent 来的、内容是什么)
- LLM 调用(Prompt、Completion、Token、延迟)
- 输出消息(发给哪个 Agent、内容是什么)
- 工具调用(调用了什么、返回什么)
- 状态变更(修改了共享状态的哪些字段)成本控制:何时用多 Agent
成本模型
单 Agent 成本 = Σ(LLM 调用费用 + 工具调用费用)
多 Agent 成本 = Σ(N 个 Agent 的 LLM 调用费用) + 通信开销 + 协调开销经验数据:多 Agent 系统的成本通常是单 Agent 的 3-5 倍(包括通信和协调开销)。
多 Agent vs 单 Agent 决策
| 条件 | 推荐选择 | 理由 |
|---|---|---|
| 单一领域、中等复杂度 | 单 Agent | 多 Agent 开销不值得 |
| Prompt 超过 2000 token | 多 Agent | 上下文过长导致 LLM 注意力分散 |
| 工具超过 10 个 | 多 Agent | 工具过多导致选择困难 |
| 子任务高度独立 | 多 Agent | 可并行执行,提高效率 |
| 需要多视角决策 | 辩论模式 | 减少单视角偏差 |
| 需要高可靠性 | 投票模式 | 多数投票降低错误率 |
| 流程固定、步骤明确 | 流水线模式 | 每步专业化 |
A2A 协议与 MCP 的互补关系
MCP(Model Context Protocol):
Agent ←→ 工具/数据源
解决"Agent 如何连接外部工具"的问题
A2A(Agent-to-Agent Protocol):
Agent ←→ Agent
解决"Agent 之间如何通信和协作"的问题
两者互补:
MCP 让 Agent 获得能力(工具接入)
A2A 让 Agent 获得协作(Agent 间通信)2026 年趋势:MCP 已被主流框架采纳为工具接入标准。A2A 协议仍在发展中,Google 等厂商正在推动标准化。
主流框架对比
| 框架 | 核心特色 | 协作模式 | 适用场景 |
|---|---|---|---|
| CrewAI | 角色化任务分配 | 主从 + 流水线 | 任务分配型多 Agent |
| AutoGen | 对话式协作 | 对等 + 辩论 | 多 Agent 对话验证 |
| LangGraph | 图编排 | 全模式支持 | 需要精细控制的复杂场景 |
| ChatDev | 模拟软件开发团队 | 流水线 | 代码生成场景 |
| MetaGPT | SOP 驱动的协作 | 流水线 + 主从 | 标准化流程场景 |
| Google ADK | 模块化组合 | 并行 + 顺序 + 循环 | 企业级场景 |
实战场景
- 软件开发:产品经理 → 架构师 → 开发者 → 测试员(流水线)
- 内容创作:研究员 → 写手 → 编辑 → 审核(流水线)
- 数据分析:数据工程师 → 分析师 → 可视化专家(流水线)
- 客服系统:意图识别 → 知识检索 → 回答生成 → 质量检查(主从 + 流水线)
- 研究协作:文献检索 → 阅读 → 分析 → 综述(流水线)
- 投资决策:多方分析师辩论 → 裁判 Agent 综合判断(辩论模式)
常见误区
- Agent 数量过多:增加复杂度但不提升效果,每个 Agent 都有协调开销
- 角色定义不清:Agent 职责重叠或遗漏,导致"三个和尚没水喝"
- 通信协议混乱:缺乏标准化的信息格式,Agent 之间"鸡同鸭讲"
- 忽视成本:多 Agent 成本是单 Agent 的数倍,不做 ROI 分析
- 缺乏协调:Agent 之间可能产生冲突和重复工作
- 过度民主:对等模式下 Agent 陷入无休止讨论,不收敛到结论
进阶方向
- 动态角色分配(运行时根据任务特征调整角色)
- 自适应协作策略(根据任务进展自动切换协作模式)
- 跨 Agent 记忆共享(多 Agent 共享经验库)
- Agent 社会行为模拟(大规模 Agent 群体行为研究)
- 人机协作 Agent 系统(Agent 团队中嵌入人类角色)
推荐资料
- AutoGen Docs - https://microsoft.github.io/autogen/
- CrewAI Docs - https://docs.crewai.com/
- ChatDev - https://github.com/OpenBMB/ChatDev
- MetaGPT - https://github.com/geekan/MetaGPT
- Multi-Agent Survey - https://arxiv.org/abs/2308.08155