40.React算法分哪几步谈谈你对React的理解
文章目录
问题: ReAct算法分哪几步?谈谈你对ReAct的理解
👇 点击展开/折叠 面试背诵模板(建议先背这个)
一、ReAct的核心理念
ReAct由Google Research和普林斯顿大学于2022年提出,核心思想是让LLM通过“推理”和“行动”的交替进行来解决复杂任务。在此之前,思维链(CoT)依赖模型内部知识推理但易产生幻觉,仅行动规划(Act-Only)能与外部交互但缺乏推理能力。ReAct协同结合两者优势,让推理过程“锚定”在外部世界的事实上。
二、完整的循环步骤
① 思考(Thought):模型生成内部推理过程,分析当前任务状态,确定下一步需要什么信息或采取什么行动。这是内部的规划,不改变外部环境。
② 行动(Action):基于思考结果,模型调用一个外部工具执行具体操作(如搜索、查询数据库、调用API)。行动需要明确的工具名称和参数。
③ 观察(Observation):模型接收行动执行后返回的结果(如搜索结果、API响应),作为下一步推理的事实依据。
④ 重复循环:模型根据观察结果重新进入思考,判断任务是否完成;若未完成,继续执行下一步行动,直到收集足够信息。
⑤ 输出最终答案:当模型认为任务目标达成时,退出循环并生成最终答案返回用户。
三、一个完整的ReAct轨迹示例
1 | 问题:交流电发明者的出生地是否首都? |
四、ReAct vs CoT vs 纯行动
| 方法 | 推理 | 行动 | 适用场景 |
|---|---|---|---|
| 纯CoT | ✅ 强推理 | ❌ 无外部交互 | 内部知识即可解决的推理任务 |
| 纯行动(Act-Only) | ❌ 无显式推理 | ✅ 可调用工具 | 简单的工具调用场景 |
| ReAct | ✅ 推理+行动交替 | ✅ 动态调用工具 | 需要多步信息检索和决策的复杂任务 |
五、核心优势与关键设计
- 接地性(Grounded):推理过程基于外部观察,减少幻觉。
- 可解释性:每一步思考和行动都可审计。
- 动态适应性:根据观察结果实时调整策略。
- 工具扩展性:可接入任意外部工具(搜索、数据库、API)。
六、常见陷阱与优化
- 过度循环:需设置最大迭代次数(如5-10轮),防止死循环。
- 工具描述不清晰:需在提示词中明确工具名称、参数格式和调用条件。
- 观察结果过长:需对观察结果做摘要压缩,避免超出上下文窗口。
- 与提示词链协同:ReAct中每步思考可使用思维链(CoT)进行深度推理,形成“CoT推理 + 行动”的增强组合。
七、总结要点
ReAct的本质是让LLM像人类一样“边想边做”——面对复杂任务时,不是一次猜答案,而是通过“计划→执行→反馈→调整”的闭环逐步逼近正确答案,使模型从“知识回忆器”转变为“问题解决者”。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!