多智能体架构的 5 种经典模式
① Supervisor / Orchestrator(监督者模式)
css
┌─────────────┐
│ Supervisor │ ← 总控 Agent,分解任务、指派、聚合
└──┬──┬──┬───┘
│ │ │
┌────────▼ │ └────────┐
▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│Agent A │ │Agent B │ │Agent C │ ← Agent 之间不直接通信
└────────┘ └────────┘ └────────┘
- 控制流:集中式,所有调用经过 Supervisor
- Agent 关系:主从关系,Agent 之间互不知晓
- 适用:任务可被清晰分解成独立子任务,需要一个总控来协调
- 代表框架:AutoGen、CrewAI
- 优点:逻辑清晰、易调试、不会出现 Agent 间循环通信
- 缺点:Supervisor 成单点、不支持 Agent 间直接协作
② Collaborative / Peer-to-Peer(协作式/对等式)
css
┌────────┐ ←──→ ┌────────┐
│Agent A │ │Agent B │
└───┬────┘ └────┬───┘
│ ┌────────┐ │
└───→│Agent C │←───┘
└────────┘
- 控制流:去中心化,Agent 之间自由通信
- Agent 关系:平等关系,任何 Agent 可以呼叫任何 Agent
- 适用:需要 Agent 之间协商讨论的开放性问题(如头脑风暴、代码审查)
- 代表框架:ChatDev、MetaGPT
- 优点:灵活、Agent 可以相互纠错、适合创意型任务
- 缺点:容易死循环、通信不可预测、调试困难、token 消耗大
③ Hierarchical(层级式)
css
┌─────────────┐
│Top Supervisor│
└──┬───────┬──┘
│ │
┌────────────▼┐ ┌──▼────────────┐
│Mid Sup. A │ │Mid Sup. B │
└──┬──────┬───┘ └──┬──────┬─────┘
│ │ │ │
▼ ▼ ▼ ▼
┌────┐┌────┐ ┌────┐┌────┐
│A1 ││A2 │ │B1 ││B2 │
└────┘└────┘ └────┘└────┘
- 控制流:多层树状委托
- Agent 关系:上级管理下级,同级不通信
- 适用:超复杂任务需要层层分解(如大型软件开发中的架构师 → 模块负责人 → 开发者)
- 代表框架:AutoGen 的嵌套 Chat、LangGraph 的 subgraph
- 优点:可以处理极复杂任务、职责分明
- 缺点:系统重、延迟大、层级越多越难调试
④ Debate / Reflection(辩论式/反思式)
scss
┌────────┐ ┌────────┐ ┌────────┐
│Agent A │───→│Agent B │───→│Agent C │ ← 串行评审链
│(生成) │ │(批判) │ │(仲裁) │
└────────┘ └────────┘ └────────┘
- 控制流:串行流水线,每个 Agent 评审上一个的结果
- Agent 关系:生成者 → 批判者 → 仲裁者
- 适用:对质量要求极高的场景(如生成合规文件、法律文书、代码安全审查)
- 代表框架:LangGraph 的 reflection 模式、Multi-Agent Debate
- 优点:输出质量高、能自我纠错
- 缺点:延迟大(串行)、成本高(多次 LLM 调用)
⑤ Dynamic / Graph-based(动态图式)
css
┌────────┐
┌───→│Agent A │───┐
│ └────────┘ │
│ ▼
┌───┴─────┐ ┌────────┐ 条件边
│ 条件判断 │ │Agent B │ ← 根据状态动态决定下一步
└───┬─────┘ └────────┘
│ │
│ ┌────────┐ │
└───→│Agent C │←──┘
└────────┘
- 控制流:图结构,边带条件,动态路由
- Agent 关系:无固定关系,由图的状态机定义
- 适用:流程多变、需要根据中间结果决定下一步
- 代表框架:LangGraph(核心就是这种)
- 优点:最灵活、可处理复杂分支、天然支持人机协作
- 缺点:图设计复杂、需要定义所有状态和边