多 Agent 与进阶范式
单 Agent 解决不了的复杂任务,常用多 Agent 协作或更结构化的工作流。本文梳理进阶规划范式、多 Agent 架构与主流框架,是 Agent 方向的深水区考点。
进阶规划范式
Agent 基础 讲了 ReAct,这里看几种更结构化的范式:
Plan-and-Execute(规划-执行)
先由「规划器」一次性制定完整计划,再由「执行器」逐步执行,必要时回到规划器调整。
- 优点:全局视野好、token 效率高(不必每步都让大模型重新决策)。
- 缺点:依赖初始计划质量,环境变化时不够灵活。
- 对比 ReAct:ReAct 边想边做、灵活但可能短视;Plan-and-Execute 谋定后动、全局但僵硬。实际常结合。
Reflexion / Self-Refine(反思)
让 Agent 执行后反思自己的结果,生成改进意见再重试,通过「执行→评估→反思→重试」循环自我提升。适合有明确反馈信号(如代码能否跑通、测试是否通过)的任务。
LATS(语言智能体树搜索)
把 ReAct 与蒙特卡洛树搜索(MCTS)结合,探索多条行动路径并用价值评估剪枝,质量高但成本高,适合高价值复杂决策。
多 Agent 系统
把一个复杂任务拆给多个分工不同、各有角色和工具的 Agent 协作完成。
为什么需要多 Agent?
- 关注点分离:每个 Agent 专注一个子领域,prompt/工具更聚焦,比一个「全能 Agent」更可靠。
- 能力组合:不同 Agent 用不同模型、不同工具集。
- 可维护性:模块化,便于单独优化、测试、替换。
常见协作架构
| 架构 | 说明 |
|---|---|
| Supervisor(主管/路由) | 一个中心 Agent 负责把任务分派给下属 Agent 并汇总结果 |
| Pipeline(流水线) | Agent 串联,前一个输出是后一个输入(如 调研→写作→审校) |
| Group Chat(群聊/辩论) | 多 Agent 在共享对话中讨论、辩论,逼近更好答案 |
| Hierarchical(分层) | 主管下还有主管,处理超复杂任务 |
主流框架
- AutoGen(微软):以「可对话 Agent」为核心,擅长群聊式多 Agent 协作与代码执行。
- CrewAI:以「角色(Role)+ 任务(Task)+ 流程(Process)」组织,上手快,适合角色扮演式分工(如「研究员+作家+审稿人」)。
- LangGraph:用**图(State/Node/Edge)**显式编排有状态、可循环、带条件分支的工作流,可控性强,是构建可靠 Agent 工作流的主流选择。
- MetaGPT:模拟软件公司角色(产品/架构/工程师),用 SOP 把流程标准化。
工程难点
- 误差累积:多步/多 Agent 链路上,每步的小错会逐级放大。对策:加校验节点、人类介入(human-in-the-loop)、限制自由度。
- 成本与延迟:多 Agent 调用次数多、token 消耗大。对策:用小模型做简单子任务、缓存、限制轮数。
- 协调与一致性:Agent 间信息不同步、互相矛盾。对策:共享状态/黑板、明确通信协议。
- 死循环 / 跑偏:设置最大步数、超时、终止条件,监控每步决策。
高频追问
Q:什么时候用单 Agent,什么时候用多 Agent? 任务边界清晰、工具不多 → 单 Agent 更简单可控;任务跨多个领域、需要不同专长/工具,或单 Agent 的 prompt 已臃肿到不可靠 → 拆成多 Agent。不要为了多 Agent 而多 Agent,它会带来协调成本和误差累积。
Q:如何防止 Agent 陷入无限循环? 设置最大迭代步数与超时;明确的终止/完成条件;检测重复的「思考-行动」模式并强制跳出;用图/状态机(如 LangGraph)约束可达路径。
Q:LangGraph 相比 ReAct 循环的优势? ReAct 是「黑盒自由循环」,难调试和控制;LangGraph 把流程显式建成图,节点、状态、条件分支、循环都可见可控,支持持久化、断点续跑和人工介入,工程可靠性更高。
Q:多 Agent 之间怎么传递信息? 常见方式:共享状态/黑板(shared state)、消息传递(message passing)、把上一个 Agent 的结构化输出作为下一个的输入。关键是约定清晰的接口格式,避免自然语言传递造成的歧义和信息丢失。
Q:Agent 调用工具出错了怎么办? 工具返回结构化错误信息让模型理解失败原因;加入重试与回退策略;关键写操作前做校验或人工确认;对工具输入做 Schema 约束,减少调用格式错误。