多智能体协作:从编排到协商
单 Agent 处理复杂任务会遇到天花板:知识单一、上下文有限、一个环节错全盘错。多智能体(Multi-Agent)把任务拆给多个专职 Agent 协作。但"多个 Agent 一起干活"不是把代码拆几个文件那么简单——协作模式决定成败。
一、什么时候需要多智能体
先泼冷水:单 Agent 能干的,别上多智能体(成本×N、延迟×N、失控面×N)。
真正需要的场景:
| 场景 | 为什么单 Agent 不行 |
|---|---|
| 研究任务(检索+分析+写作) | 一个 Agent 上下文装不下全部阶段 |
| 复杂业务流程(面试官+记录员+评分) | 职责要隔离,角色会互相污染 |
| 长任务(项目规划+执行+验收) | 中途上下文漂移,阶段要独立上下文 |
| 需要"不同视角"(方案评审) | 一个 Agent 只有一个视角 |
二、三种协作模式
模式 1:编排(Orchestration)——最常见
特点:中心化控制、职责清晰、可追踪。
适用:任务可以明确拆分为阶段的场景(研究报告、面试流程)。
关键设计:主 Agent 只做"调度和汇总",不做具体业务(否则退化成单 Agent)。
模式 2:协商(Negotiation)——观点碰撞
特点:多个视角独立分析同一问题,协调者综合裁决。
适用:方案评审、代码审查、风险评估(需要多视角)。
关键设计:每个 Agent 有独立的 system prompt(立场)、独立上下文,不能互相看对话(否则观点趋同,失去协商意义)。
模式 3:黑板(Blackboard)——共享状态
特点:无中心、松耦合、支持并发。
适用:流水线型任务(ETL、多阶段处理),或者不确定顺序的任务(谁准备好谁干)。
关键设计:黑板要有"状态协议"(每个条目:待处理/处理中/完成),否则 Agent 重复处理。
三、选型决策树
四、工程化要点
1. 上下文隔离
每个子 Agent 只给它需要的上下文,别全量传:
|
|
2. 结构化交接
Agent 之间的产物用结构化数据(JSON/表格),不用自然语言:
|
|
自然语言交接 = 信息损耗 + 不可校验。
3. 收敛控制
多 Agent 循环会发散(互相扯皮、无限迭代):
4. 可观测性
五、踩坑记录
- Agent 互相复读:协商时 B 只是复述 A 的观点(因为看到了 A 的输出)→ 强制独立推理(先各自出结论,再互看)
- 上下文膨胀:每个 Agent 都带全量历史 → 用独立上下文 + 只传结构化交接物
- 协调者被架空:协调者只是"传话的",没有裁决能力 → 协调者要有自己的判断标准(评审规则、质量标准)
- 成本失控:5 个 Agent × 10 轮 = 50 次 LLM 调用 → 设总预算,超了就降级(少 Agent 多轮次 → 多 Agent 少轮次)
总结
多智能体协作的核心认知:
- 先问"要不要":单 Agent 能干的别上多 Agent
- 三种模式:编排(拆阶段)、协商(多视角)、黑板(并发流水线)
- 工程化三件套:上下文隔离 + 结构化交接 + 收敛控制
- 可观测是底线:没有 trace 的多 Agent 是黑盒,出事没法查
多智能体的价值不是"多个模型",是"多个职责 + 清晰的协作协议"。 协议设计比 Agent 本身更重要。