06解释ReAct推理行动框架的工作原理与循环流程
问题: 解释ReAct推理行动框架的工作原理与循环流程
👇 点击展开/折叠 面试背诵模板(建议先背这个)
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:斯米连不是首都。最终答案应基于事实陈述。
- 最终答案:特斯拉出生于斯米连,该地不是首都。
三大核心组件:
- 推理链生成模块:采用思维链技术,将复杂任务拆解为可执行的子步骤
- 行动链执行模块:当推理需要外部信息时,自动触发工具调用
- 状态管理机制:维持跨轮次交互的上下文一致性,支持中断恢复和多轮修正
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LGQ的博客!