先给出一句话总览:
- ReAct:边思考边行动(Think + Act 交替循环)
- Plan-and-Execute:先整体规划,再批量执行(先规划,后行动)
- Reflection:基于历史结果复盘修正(事后反思迭代优化)
一、核心定义与工作流程
1. ReAct(Reasoning + Acting)
核心思想 :推理和行动紧密穿插,一步一想、一步一动 。 流程循环: Thought(思考下一步该做什么) → Action(调用工具/行动) → Observation(得到结果) 不断循环直到得出答案。
✅ 特点:
- 没有全局完整规划,局部贪心决策,只思考当前这一步;
- 思考轻量化,即时根据工具返回结果调整下一步;
- 结构最简单,最容易落地; ❌ 短板:studio
- 复杂多步骤长任务容易迷路、陷入局部最优;
- 看不到长远目标,容易走弯路。
典型场景:简单问答、单轮多工具调用、实时搜索问答。
2. Plan-and-Execute(规划 - 执行,代表方案:PlanSolve、AutoGPT 早期思路)
核心思想 :先一次性生成完整任务执行方案(Plan),再按步骤依次执行。 流程:
- 接收任务 → LLM 输出完整分步计划
Plan = [步骤1,步骤2,步骤3...] - 严格按计划逐个执行 Action,收集观测 Observation
- 全部执行完成后汇总结果
✅ 特点:
- 拥有全局视角,提前理清完整路径;
- 长任务逻辑性更强,减少无目的试探; ❌ 短板:
- 计划僵化:执行中遇到意外、错误信息时,不会主动修改原始计划;
- 如果一开始规划错了,后续全部执行失效;
- 规划阶段消耗更多 token。
进阶变种:Plan-and-Solve + 动态重规划(允许执行中途重新更新计划),弥补僵化缺陷。
3. Reflection(反思范式,Self-Reflection)
核心思想 :行动完成之后,对整个执行轨迹复盘、纠错、反思不足 ,支持多轮迭代优化。 基础流程: 任务 → 执行(可以是ReAct/Plan执行一轮) → Reflection反思模块分析失败/缺陷 → 修正策略/重新执行
反思内容常见三类:
- 结果是否正确?
- 之前思考哪里出错?工具调用是否多余 / 缺失?
- 下一轮如何调整思路、修改计划?
✅ 特点:
- 自带迭代闭环,支持多次试错;
- 可以叠加在 ReAct / Plan-and-Execute 之上(不是互斥); ❌ 短板:
- 需要多轮 LLM 调用,成本高;
- 反思质量高度依赖大模型自身纠错能力。
典型代表:Self-Refine、Reflexion Agent
二、直观横向对比表
表格
| 维度 | ReAct | Plan-and-Execute | Reflection |
|---|---|---|---|
| 时序逻辑 | 思考与行动交替进行(边想边做) | 先全局规划,后统一执行(先想好再做) | 执行结束后复盘反思,迭代重做 |
| 规划范围 | 局部单步规划,只决策下一步 | 全局完整规划,预先输出全流程 | 不原生自带规划,作用于事后修正 |
| 动态调整能力 | 强,每一步可根据观测即时改变路线 | 弱,原始方案固定(无重规划版本) | 通过新一轮执行实现调整 |
| 适用任务 | 短流程、不确定性适中、实时交互任务 | 长链路、目标清晰、步骤可预判任务 | 容易出错、需要多次试错的复杂难题 |
| 容错能力 | 中等,容易在长任务跑偏 | 偏低,初始规划出错则全盘失败 | 最高,支持多次迭代纠错 |
| 三者关系 | 基础单循环范式 | 独立前置规划范式 | 上层增强机制(可叠加前两者) |
三、关键容易混淆的重点
- Reflection 不是和前两者平级的执行循环! ReAct、Plan-and-Execute 是任务执行的基础运行范式 ; Reflection 是增强层:你可以搭建「ReAct + Reflection」或者「Plan-and-Execute + Reflection」架构。
举例子:
- ReAct+Reflection:一轮边想边行动跑完后,反思哪里错了,重新启动一轮 ReAct;
- Plan-and-Execute+Reflection:执行完整套计划发现答案错误,反思并重新生成新计划再次执行。
- ReAct vs Plan-and-Execute 最本质分界线:
有没有在行动之前,一次性产出完整分步方案 ReAct 永远不会提前写出全部步骤,走一步看一步; 原生 Plan-and-Execute 一开始就列出全部执行步骤清单。
四、通俗比喻帮助理解
- ReAct:出门找餐厅,走到路口才临时决定左转还是右转,看到新线索随时改变方向;
- Plan-and-Execute:出门前打开地图,一次性规划好整条路线,之后严格按路线走,路封了也不知道变通;
- Reflection:走完一趟发现没找到餐厅,复盘:刚才哪里走错、信息漏查,重新规划路线再出发。
五、工程选型参考
- 简单工具调用、实时查询、短任务 → 优先 ReAct(最简单、token 消耗低)
- 长链路标准化流程任务(数据分析、结构化多步骤任务)→ Plan-and-Execute(增加动态重规划)
- 高难度推理、容易出错、允许多次尝试的复杂 Agent → ReAct/Plan + Reflection 反思层