ReAct(推理+行动框架)

让LLM交替进行推理(Reasoning)和行动(Acting)的Agent执行框架。核心循环:Thought→Action→Observation→Thought...,直到任务完成。Yao et al. 2022年提出,ICLR 2023发表。

ReAct(推理+行动框架)

一句话理解

不是先想完再做,而是"想一步→做一步→看结果→再想下一步"——推理和行动交替进行的循环。

核心思想

传统的 Chain-of-Thought 让模型"闭卷思考"——纯靠推理得出答案,无法获取外部信息。ReAct 的突破在于让模型在推理过程中可以采取行动(调用工具、查询数据),再根据行动结果继续推理。

循环拆解

text
Thought: 用户想知道杭州明天的天气,我需要调用天气 API
Action:  call get_weather({ city: "杭州" })
Observation: 晴,25°C,微风
Thought: 天气适合轻便穿搭,我来推荐
Action:  final_answer("杭州明天晴天25°C,建议穿...")

每一轮循环包含三个阶段:

  • Thought(推理)— 分析当前状态,决定下一步行动
  • Action(行动)— 调用工具或输出最终答案
  • Observation(观察)— 获取工具返回的结果

终止条件

工程实现中,ReAct 循环必须有明确的退出机制:

  • 正常终止:模型判断任务完成,输出 final answer
  • 超时终止:达到最大循环次数(通常 5-10 轮),防止无限循环
  • 错误终止:连续 N 次工具调用失败,触发 fallback

本质上就是循环的退出条件加上看门狗超时保护——确保系统不会陷入无限循环。

ReAct vs Chain-of-Thought

Chain-of-ThoughtReAct
方式纯推理推理 + 行动
外部信息不能获取可以调用工具
类比闭卷考试开卷考试
适用场景数学推理、逻辑题需要外部信息的多步任务

引用本术语的文章