一、基础控制流模式(Core Agent Patterns)
1. ReAct 模式(Reason + Act)
最经典、也是当前产品里最常见的默认形态:模型在每一轮决定「再想一想」还是「调用某个工具」,把工具返回写进上下文后继续,直到给出最终答复或达到停止条件。
机制(论文与实现中的对应关系):
- Thought:推理下一步(有些实现把思考合并在 assistant 消息里,不单独展示)。
- Action:结构化工具调用(function / tool_calls)。
- Observation:工具结果作为新上下文(常建模为 tool 消息)。
- 循环:直到模型不再请求工具或触发上限/策略。
特点:
- 动态推理 + 工具调用,泛化好、接入快。
- 链路过长时易出现错误累积;需靠 工具契约、重试、护栏与评测兜底。
适用:问答、检索、API 调用、SQL/代码助手等「边想边查」的任务。
实践提示: LangChain 文档将 create_agent 作为面向生产的 Agent 入口;旧版 LangGraph 预置 create_react_agent 在 v1 迁移中已被替代方向标注,新建项目宜跟官方迁移指南选型。
2. Plan-and-Execute(规划-执行)
把「要做什么」与「怎么做每一步」拆开:Planner 产出可检查的计划(步骤列表、子目标或 TODO),Executor 按序或按需执行,减少模型在每一步重复从零规划的开销。
结构:
- Planner:生成任务计划(task list / 里程碑)。
- Executor:逐步执行,可将每步结果写回状态供重规划。
特点:更稳定、易插人审、易做进度展示;代价是至少多一轮规划调用与更复杂的状态设计。
适用:多步骤编码、数据分析流水线、需向用户展示「任务清单」的长程任务。
实践提示: 官方文档里与「结构化计划」相关的模式常和 状态里的任务列表、图节点分工一起出现;需要并行分支、重试与检查点时优先用图编排而非单循环硬写。
3. Reflection / Self-Refine(自反思)
在首轮答案之后增加 Critic(评审/打分/列缺陷)与 Refine(改写),可固定轮次或由停止条件触发。
流程:
- 初次输出(draft)。
- Critic:对照规格、测试、事实或风格约束给反馈。
- Refine:根据反馈修订;可循环。
特点:质量上限更高;成本上升;评审标准设计不好会出现「为改而改」。
4. Multi-Agent(多 Agent 协作)
多个专用 Agent(或同一模型不同系统提示)分担角色,通过消息、共享状态或调度器协同。编排上常用 层级(主从)、图(条件边、并行)、或 市场/拍卖式 任务分配(研究向较多)。
典型角色:Planner、Executor、Critic、Tool Agent(专精单一工具域)。
特点:边界清晰、易扩展;调试与观测成本显著上升,需要统一 trace(如 LangSmith)与清晰的消息协议。
实践提示: LangGraph 适合把多节点协作落成可检查、可持久化的图;不要过早多 Agent——多数场景单 Agent + 好工具 + 好评测更划算。
二、如何选型(简表)
| 模式 | 优先解决 | 主要代价 |
|---|---|---|
| ReAct | 灵活工具调用、快速上线 | 长链错误累积 |
| Plan-Execute | 长任务、可展示进度、可重规划 | 状态与编排复杂度 |
| Reflection | 质量敏感输出 | 延迟与 token |
| Multi-Agent | 角色强分工、子域专精 | 系统与观测复杂度 |