|
@@ -0,0 +1,40 @@
|
|
|
|
|
+# 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 根据执行结果调整计划。它更适合复杂的多步骤任务,尤其是步骤之间存在依赖关系的场景。
|