1. 为什么需要 ReAct?
在 ReAct 出现之前,让 AI 完成任务主要有两种极端路线:
- 只有推理 (Reasoning Only): 比如“思维链(CoT)”。AI 在脑子里想很久,然后给出一个答案。缺点: 容易产生幻觉,不知道外部世界的实时变化。
- 只有行动 (Acting Only): AI 直接调用 API 或执行动作。缺点: 缺乏长远规划,容易盲目乱撞。
ReAct 的出现,就是为了把这两者结合起来:
ReAct = Reasoning(推理)+ Acting(行动)
2. ReAct 的工作流程:Thought-Action-Observation
ReAct 引导模型以一种“自言自语”的方式循环执行三个步骤:
- Thought (思考): 模型先写下对当前情况的分析。 “我现在需要找到铁矿,根据已知信息,铁矿通常在地下深处。”
- Action (行动): 根据思考,模型决定执行一个具体的指令。 “调用
mine_block(down)动作。” - Observation (观察): 模型接收环境的反馈。 “观察结果:挖掘成功,获得圆石,但还没看到铁矿。”
这个循环会不断重复,直到任务完成。
3. 优缺点分析
优点
- 可解释性强: 你能清晰地看到 AI 每一步为什么要这么做。
- 鲁棒性高: 如果行动失败了(Observation 报错),AI 可以通过 Thought 重新调整策略。
- 减少幻觉: 强制模型查看观察结果,而不是凭空想象。
缺点(这也是为什么 Voyager 能超越它的原因)
- 短视: ReAct 的 Context(上下文)窗口有限。随着步数增加,它会忘记很久以前的思考。
- 缺乏技能积累: 每次遇到新任务,它都要从头推理,没法像 Voyager 那样把成功的经验存成代码库。