多 Agent 架构(Multi-Agent Architecture)
核心目标
单个 Agent 有上下文窗口限制、角色混乱、并发瓶颈三大天花板。
多 Agent 架构的本质:把一个复杂任务拆分给多个"专职 Agent",
每个 Agent 只干自己擅长的事,最终由某种协调机制整合结果。
一、为什么需要多 Agent?
问题:让一个 Agent 又搜索、又写代码、又做数学、又写报告 ------
上下文爆炸、prompt 臃肿、角色边界模糊、错误难定位。
解法:分工。类比公司组织结构:
- 研究员 负责查资料
- 程序员 负责写代码
- 审核员 负责检查结果
- 经理 负责任务分配与汇总
核心收益:
- 每个 Agent 的 system prompt 短而精准 → 更好的表现
- 可并行执行互相独立的子任务 → 更快
- 失败隔离:一个 Agent 出错不影响其他 Agent
- 可组合复用:研究员 Agent 可以被多个工作流复用
二、四种核心架构模式
1. Pipeline(流水线)
A → B → C → D
上一个 Agent 的输出是下一个 Agent 的输入,串行执行。
适合:步骤有严格依赖顺序的任务(搜索→摘要→翻译→发布)
示意:
research_agent → summary_agent → translate_agent
2. Supervisor(监督者)
Supervisor
/ | \
Agent_A Agent_B Agent_C
Supervisor 是一个"路由 Agent",决定调用哪个子 Agent,
并汇总所有结果返回给用户。
适合:用户请求类型多样,需要分类分发的场景(客服系统)
3. Parallel(并行)
Coordinator 同时启动多个 Agent,等待所有结果后合并。
┌─ Agent_A ─┐
├─ Agent_B ─┤ → Aggregator → 最终结果
└─ Agent_C ─┘
适合:子任务互相独立,速度优先(同时分析三个竞品)
4. Hierarchical(层级)
上级 Agent 可以把任务委托给下级 Agent,下级还能再往下委托。
适合:非常复杂的任务,需要递归分解(大型软件项目)
三、Agent 之间如何通信?(关键概念)
多 Agent 系统里"通信"本质上就是消息传递:
方式一:共享状态(Shared State)
- 所有 Agent 读写同一个 state dict
- 优点:简单直接;缺点:需要协调访问顺序
方式二:消息传递(Message Passing)
- Agent 之间发送结构化消息(通常是 HumanMessage/AIMessage)
- LangGraph 用的就是这种方式(下节课重点)
方式三:Handoff(移交)
- 一个 Agent 完成后,把控制权"交给"另一个 Agent
- 第 65 课专讲这个模式