Plan-and-Execute和ReAct的区别.md 1.7 KB

ReAct 与 Plan-and-Execute 的区别

一、ReAct

我的核心理解是:Agent 不会提前制定一个完整的执行计划,而是根据当前任务和上一步的执行结果,动态决定下一步应该做什么。

例如,用户要求查询天气并计算一个数学问题,Agent 可以先调用天气工具,得到结果后,再根据当前任务决定是否调用计算器工具。

它的基本流程是:思考 → 行动 → 观察 → 再思考 → 再行动 ……

ReAct 更像是 "边思考、边执行、边根据结果调整"

它的优点是灵活,适合执行路径不确定的任务。


二、Plan-and-Execute

Plan-and-Execute 的核心理解是:Agent 先对整个任务进行规划,再按照计划逐步执行,并根据执行结果调整计划。

也就是:先规划,再执行,执行过程中根据结果进行检查和调整。

它的基本流程是:规划 → 执行 → 检查 → 调整 → 再执行 ……

Plan-and-Execute 更像是 "先规划整体路线,再按照路线执行"


三、我认为两者最本质的区别

ReAct 关注"下一步做什么",Plan-and-Execute 关注"整个任务怎么完成"。

ReAct 是"边走边决定下一步",而 Plan-and-Execute 是"先规划整体路线,再按照路线执行"。


四、适用场景

  • ReAct 更适合简单、动态、实时的任务。它的特点是边思考边行动,根据当前环境和工具返回结果动态决定下一步。
  • Plan-and-Execute 则是先对整个任务进行规划,再由 Executor 按步骤执行,并通过 Replanner 根据执行结果调整计划。它更适合复杂的多步骤任务,尤其是步骤之间存在依赖关系的场景。