问题: 解释ReAct推理行动框架的工作原理与循环流程

👇 点击展开/折叠 面试背诵模板(建议先背这个) ReAct(Reasoning + Acting)由Google Research和普林斯顿大学于2022年提出,核心思想是让LLM通过交替进行推理(Reasoning)和行动(Acting)来解决复杂任务。其工作流程基于“思考—行动—观察”(Thought-Action-Observation, TAO)的迭代循环:模型先生成内部推理(Thought)分析任务并制定计划,然后调用外部工具执行行动(Action)获取信息,最后接收行动结果作为观察(Observation)并据此调整后续推理。这个“推理→行动→观察→再推理”的闭环持续进行,直到模型获得足够信息并输出最终答案。
---

ReAct 的核心思想

ReAct 框架的名称源于“Reasoning”(推理)和“Acting”(行动)的结合,其核心灵感来源于人类的决策过程。在 ReAct 出现之前,LLM 解决复杂任务主要有两种独立方法:思维链(CoT)依赖模型内部知识进行推理,容易产生事实幻觉;而仅行动规划(Act-Only)虽然能与外部环境交互,但缺乏明确的推理和规划能力。ReAct 协同结合了这两种方法的优点,让模型的推理过程“锚定”(ground)在外部世界的事实上,并根据收到的反馈动态调整策略。

核心工作原理:TAO 迭代循环

ReAct 在一个包含三个关键组件的迭代循环中运行,模型会顺序生成由思考、行动和观察步骤组成的轨迹。

步骤 名称 说明
1 思考(Thought) 模型生成内部推理过程,分析任务、拆解为子目标、制定或调整行动计划。此步骤是内部的规划,不改变外部环境
2 行动(Action) 基于推理结果,模型调用一个外部工具来执行具体操作,例如进行搜索、查询数据库或调用 API
3 观察(Observation) 模型接收行动执行后返回的结果(如搜索结果、API 响应),作为下一步推理的依据

完整工作流程

ReAct 的工作流程可分为“初始化-循环迭代-终止输出”三个阶段:

① 初始化阶段:模型接收用户提出的复杂问题或任务指令,启动推理过程。

② 循环迭代阶段:模型进入 TAO 循环,持续进行以下步骤:

  • 思考(Thought):分析当前状态,确定下一步需要什么信息或采取什么行动。
  • 行动(Action):调用外部工具(如搜索引擎、计算器、数据库)。
  • 观察(Observation):接收工具返回的结果。
  • 再推理:根据观察结果,模型重新进入思考阶段,判断任务是否完成或是否需要进一步行动。

这个“推理→行动→观察→再推理”的闭环持续进行,直到模型获得足够信息并输出最终答案。

③ 终止输出阶段:当模型认为已经收集到足够信息解决问题时,退出循环并生成最终答案返回给用户。

关键组件与示例

完整示例(以“交流电发明者的出生地是否首都?”为例):

  • 思考 1:我需要查明交流电的发明者,然后找到他的出生地,并核实该城市是否为首都。
  • 行动 1:Search[交流电发明者]
  • 观察 1:交流电由尼古拉·特斯拉开发。
  • 思考 2:现在我需要找出特斯拉的出生地。
  • 行动 2:Search[尼古拉·特斯拉出生地]
  • 观察 2:特斯拉出生于斯米连(现属克罗地亚)。
  • 思考 3:斯米连不是首都。最终答案应基于事实陈述。
  • 最终答案:特斯拉出生于斯米连,该地不是首都。

三大核心组件:

  • 推理链生成模块:采用思维链技术,将复杂任务拆解为可执行的子步骤
  • 行动链执行模块:当推理需要外部信息时,自动触发工具调用
  • 状态管理机制:维持跨轮次交互的上下文一致性,支持中断恢复和多轮修正