一、核心思想
| 维度 |
ReAct |
Plan-and-Execute |
| 全称 |
Reasoning + Acting |
Plan-and-Execute (也叫 Plan-then-Execute) |
| 范式 |
交替进行推理和行动, 逐步决策 |
先生成完整计划, 再逐步执行 |
| 类比 |
边走边看的导航 |
先看地图规划路线, 再出发 |
二、工作流程对比
ReAct 循环
复制代码
Thought -> Action -> Observation -> Thought -> Action -> Observation -> ... -> Final Answer
每一步都根据上一步的观察结果, 重新推理下一步该做什么。没有全局计划, 完全是增量式决策。
Plan-and-Execute 循环
复制代码
阶段1: Input -> Planner LLM -> [Step1, Step2, Step3, ...]
阶段2: Step1 -> Executor -> Result1
Step2 -> Executor -> Result2 (可根据 Result1 调整)
...
阶段3: Results -> Final Answer
先由 Planner 生成结构化计划, 再由 Executor 逐步执行。执行过程中可选择性地 replan。
三、多维度对比
3.1 推理能力
| 维度 |
ReAct |
Plan-and-Execute |
| 全局规划 |
弱。缺乏前瞻性, 易陷入局部最优 |
强。先全局思考再行动 |
| 适应性 |
强。每步都可根据新信息调整 |
中等。需要显式 replan 机制 |
| 推理深度 |
浅到中。每步推理负担小 |
计划阶段深, 执行阶段浅 |
3.2 Token 效率
| 维度 |
ReAct |
Plan-and-Execute |
| 上下文消耗 |
高。每步都携带完整历史 |
低。Executor 只需当前步骤+必要上下文 |
| 总 token 量 |
随步数线性增长(累积 context) |
计划阶段固定 + 执行阶段可控 |
| 长任务表现 |
差。容易撞 context window 上限 |
好。天然支持长链任务 |
这是 Plan-and-Execute 的最大优势之一: Executor 不需要看到所有历史, 只需要当前子任务的描述和必要输入。
3.3 错误处理
| 维度 |
ReAct |
Plan-and-Execute |
| 错误恢复 |
自然。下一步 Thought 可以反思错误 |
需要 replan 机制, 否则会盲目执行错误计划 |
| 错误传播 |
低。每步独立决策 |
高。计划错误会连锁影响后续步骤 |
| 幻觉风险 |
中。每步都有观察校正 |
计划阶段较高(没有外部验证) |
3.4 任务适用性
| 任务类型 |
更适合 |
原因 |
| 简单问答 / 单步检索 |
ReAct |
计划开销不值得 |
| 探索性任务(不确定需要几步) |
ReAct |
无法提前规划 |
| 多步确定性任务(数据管道、报告生成) |
Plan-and-Execute |
步骤可预见, 计划价值高 |
| 长链任务(>10 步) |
Plan-and-Execute |
token 效率优势明显 |
| 需要并行执行的任务 |
Plan-and-Execute |
计划可识别独立子任务并行化 |
| 交互式调试 |
ReAct |
需要高频反馈循环 |
3.5 工程实现
| 维度 |
ReAct |
Plan-and-Execute |
| 实现复杂度 |
低。单一 prompt loop |
中高。需要 Planner + Executor + (可选) Replanner |
| 可观测性 |
中。Thought 链可读但冗长 |
高。计划本身就是可审计的结构 |
| 可控性 |
低。难以干预中间决策 |
高。可以在执行前审核/修改计划 |
| 模型要求 |
需要较强的逐步推理能力 |
Planner 需强规划能力, Executor 可用较弱模型 |
四、混合架构(实践中最常见)
实际生产系统很少纯用一种, 常见的混合方式:
复制代码
+---------------------------------------------------+
| Plan-and-Execute 外层 || |
| Planner -> [Task1, Task2, Task3, ...] || |
| +-------------------------------------------+ |
| | 每个 Task 内部用 ReAct 执行 | |
| | Thought -> Action -> Observation | |
| | -> Thought -> Action -> ... | |
| +-------------------------------------------+ |
| |
| 执行完一个 Task 后 -> Replanner 评估
| -> 调整后续计划 -> 继续执行 |
+---------------------------------------------------+
典型代表: LangGraph 的 Plan-and-Execute 模板、AutoGPT 后期版本。
五、选择决策树
复制代码
任务步骤 < 3 步?
+-- 是 --> ReAct (计划开销不值得)
+-- 否 --> 任务步骤可预见?
+-- 是 --> Plan-and-Execute
+-- 否 --> ReAct 或 混合架构
需要人工审核中间计划?
+-- 是 --> Plan-and-Execute (计划天然可审计)
上下文窗口紧张?
+-- 是 --> Plan-and-Execute (token 效率高)
任务高度不确定、需要频繁试错?
+-- 是 --> ReAct
六、总结
| 结论 |
说明 |
| ReAct 优势 |
灵活、简单、适应性强, 适合探索性和短链任务 |
| P&E 优势 |
高效、可控、可审计, 适合确定性和长链任务 |
| 生产环境推荐 |
混合架构 -- 用 P&E 做顶层编排, ReAct 做子任务执行, 加 replan |