问题: ReAct算法分哪几步?谈谈你对ReAct的理解

👇 点击展开/折叠 面试背诵模板(建议先背这个) ReAct(Reasoning + Acting)是一种将推理与行动交织的智能体框架,核心流程为“思考→行动→观察”的迭代循环。具体步骤:①思考(Thought):模型分析当前状态,拆解任务并制定下一步计划;②行动(Action):调用外部工具(如搜索引擎、计算器、API)执行具体操作;③观察(Observation):接收工具返回的结果,作为下一步推理的依据。循环持续进行,直到模型获得足够信息输出最终答案。ReAct通过将推理过程“锚定”在外部环境反馈上,有效缓解了纯推理(CoT)的幻觉问题和纯行动的无序性问题,使模型能动态调整策略,适合需要多步信息获取和决策的复杂任务。
---

一、ReAct的核心理念

ReAct由Google Research和普林斯顿大学于2022年提出,核心思想是让LLM通过“推理”和“行动”的交替进行来解决复杂任务。在此之前,思维链(CoT)依赖模型内部知识推理但易产生幻觉,仅行动规划(Act-Only)能与外部交互但缺乏推理能力。ReAct协同结合两者优势,让推理过程“锚定”在外部世界的事实上。

二、完整的循环步骤

① 思考(Thought):模型生成内部推理过程,分析当前任务状态,确定下一步需要什么信息或采取什么行动。这是内部的规划,不改变外部环境。

② 行动(Action):基于思考结果,模型调用一个外部工具执行具体操作(如搜索、查询数据库、调用API)。行动需要明确的工具名称和参数。

③ 观察(Observation):模型接收行动执行后返回的结果(如搜索结果、API响应),作为下一步推理的事实依据。

④ 重复循环:模型根据观察结果重新进入思考,判断任务是否完成;若未完成,继续执行下一步行动,直到收集足够信息。

⑤ 输出最终答案:当模型认为任务目标达成时,退出循环并生成最终答案返回用户。

三、一个完整的ReAct轨迹示例

1
2
3
4
5
6
7
8
9
10
11
12
问题:交流电发明者的出生地是否首都?

思考1:我需要先查明交流电的发明者。
行动1:Search[交流电发明者]
观察1:交流电由尼古拉·特斯拉开发。

思考2:现在我需要找出特斯拉的出生地。
行动2:Search[尼古拉·特斯拉出生地]
观察2:特斯拉出生于斯米连(现属克罗地亚)。

思考3:斯米连不是首都。最终答案应基于事实陈述。
最终答案:特斯拉出生于斯米连,该地不是首都。

四、ReAct vs CoT vs 纯行动

方法 推理 行动 适用场景
纯CoT ✅ 强推理 ❌ 无外部交互 内部知识即可解决的推理任务
纯行动(Act-Only) ❌ 无显式推理 ✅ 可调用工具 简单的工具调用场景
ReAct ✅ 推理+行动交替 ✅ 动态调用工具 需要多步信息检索和决策的复杂任务

五、核心优势与关键设计

  • 接地性(Grounded):推理过程基于外部观察,减少幻觉。
  • 可解释性:每一步思考和行动都可审计。
  • 动态适应性:根据观察结果实时调整策略。
  • 工具扩展性:可接入任意外部工具(搜索、数据库、API)。

六、常见陷阱与优化

  • 过度循环:需设置最大迭代次数(如5-10轮),防止死循环。
  • 工具描述不清晰:需在提示词中明确工具名称、参数格式和调用条件。
  • 观察结果过长:需对观察结果做摘要压缩,避免超出上下文窗口。
  • 与提示词链协同:ReAct中每步思考可使用思维链(CoT)进行深度推理,形成“CoT推理 + 行动”的增强组合。

七、总结要点

ReAct的本质是让LLM像人类一样“边想边做”——面对复杂任务时,不是一次猜答案,而是通过“计划→执行→反馈→调整”的闭环逐步逼近正确答案,使模型从“知识回忆器”转变为“问题解决者”。