ReAct: Synergizing Reasoning and Acting in Language Models

作者: Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao 年份: 2023 会议: ICLR 分类: 高效推理与部署

论文笔记:ReAct

元信息

项目内容
机构Princeton University, Google Brain
日期October 2022
对比基线Standard prompting, Chain-of-Thought, Act-only
链接arXiv

一句话总结

提出 ReAct 范式,将 Chain-of-Thought 推理与外部工具交互(acting)交错执行,通过 Thought → Action → Observation 循环使语言模型在知识密集型和决策型任务上同时具备推理和行动能力。

核心贡献

推理与行动的统一框架: 提出 Thought-Action-Observation 交错执行范式,让语言模型在同一生成过程中既能推理又能与外部环境交互

优于纯推理和纯行动: 在知识密集型任务(HotpotQA, FEVER)上,ReAct 同时超越 CoT-only(易幻觉)和 Act-only(缺乏规划),证明两者的结合具有协同效应

可解释性与可控性: Thought trace 提供了模型决策过程的自然语言解释,使人类可以检查和纠正推理错误

LLM Agent 范式基石: 为后续的 Toolformer, AutoGPT, LangChain 等 LLM Agent 工作奠定了理论和方法基础

问题背景

要解决的问题

语言模型的推理(reasoning)和行动(acting)被分开研究:Chain-of-Thought 只在模型内部推理,容易产生幻觉和错误传播;tool-use 方法只执行动作而缺乏高层规划和推理能力

现有方法的局限

CoT-only(推理无行动): 模型在封闭世界中推理,无法获取外部信息来验证或补充知识,导致事实性错误(幻觉)和错误传播

Act-only(行动无推理): 模型直接生成动作序列,缺乏对任务分解、子目标设定和异常处理的推理能力

WebGPT 等工具使用方法: 需要大量人工标注的交互轨迹进行微调,成本高且泛化性差

本文的动机

人类解决复杂任务时自然地交替使用推理和行动——先思考策略,再执行操作,观察结果后调整计划。ReAct 将这一认知模式迁移到语言模型中

方法详解

Thought-Action-Observation 循环

ReAct 的每一步生成包含三种类型的 token:

  1. Thought (推理): 模型的内部推理,用于任务分解、信息综合、策略调整(不影响外部环境)
  2. Action (行动): 与外部环境的交互操作(如搜索、查找、点击)
  3. Observation (观察): 外部环境返回的结果(非模型生成,由环境提供)

交错执行示例(HotpotQA)

  Question: What is the elevation range for the area that the eastern sector of the
  Colorado orogeny extends into?

  Thought 1: I need to search Colorado orogeny, find the area that the eastern
  sector extends into, then find the elevation range of that area.
  Action 1: Search[Colorado orogeny]
  Observation 1: The Colorado orogeny was an episode of mountain building...
  The eastern sector extends into the High Plains.

  Thought 2: The eastern sector extends into the High Plains. I need to search
  High Plains and find its elevation range.
  Action 2: Search[High Plains]
  Observation 2: High Plains refers to one of the two distinct land regions...
  The High Plains rise from around 1,800 feet to 7,000 feet.

  Thought 3: High Plains rise from 1,800 to 7,000 ft, so the elevation range
  is approximately 1,800 to 7,000 ft.
  Action 3: Finish[approximately 1,800 to 7,000 ft]
  • 任务设定

  • 知识密集型推理任务

    • HotpotQA: 多跳问答,需要从多个 Wikipedia 段落中提取和组合信息
      • 动作空间: Search[entity], Lookup[string], Finish[answer]
    • FEVER: 事实验证,判断一个声明是 SUPPORTS / REFUTES / NOT ENOUGH INFO
      • 动作空间: 同 HotpotQA
  • 决策型任务

    • ALFWorld: 基于文本的家务机器人任务(如”把杯子放到桌子上”)
      • 动作空间: 特定于环境的交互动作(go to, pick up, put, open 等)
    • WebShop: 在模拟电商网站上购买满足描述的商品
      • 动作空间: search, click, buy 等网页操作
  • 与 CoT 和 Act-only 的对比设计

方法ThoughtActionObservation特点
Standard直接给答案
CoT-only内部推理,无外部验证
Act-only直接行动,无高层规划
ReAct推理指导行动,观察修正推理
  • 关键公式

  • 形式化定义

  • 标准 Agent 框架中,策略 π\pi 在每步 tt 基于上下文 ctc_t 生成动作 ata_t

atπ(atct),ct=(o1,a1,,ot1,at1,ot)a_t \sim \pi(a_t | c_t), \quad c_t = (o_1, a_1, \ldots, o_{t-1}, a_{t-1}, o_t)
  • ReAct 扩展上下文空间,加入 thought a^t\hat{a}_t(不影响环境的内部推理):
a^tπ(a^tct),atπ(atct,a^t)\hat{a}_t \sim \pi(\hat{a}_t | c_t), \quad a_t \sim \pi(a_t | c_t, \hat{a}_t)
  • 含义: Thought 作为”增强的上下文”帮助模型做出更好的行动决策,但不直接影响外部环境状态

  • 符号说明:

    • oto_t: 第 tt 步的观察(环境反馈)
    • ata_t: 第 tt 步的行动
    • a^t\hat{a}_t: 第 tt 步的推理(thought),属于”增强的行动空间” A^\hat{\mathcal{A}}
    • ctc_t: 到第 tt 步的完整上下文
  • 实验结果

  • 知识密集型任务

方法HotpotQA (EM)FEVER (Acc)
Standard prompting28.7%57.1%
CoT prompting29.4%56.3%
Act-only25.7%58.9%
ReAct27.4%60.9%
CoT-SC (self-consistency, 21 samples)33.4%64.6%
ReAct + CoT-SC35.1%64.6%
  • 关键发现: 单独使用 ReAct 在 HotpotQA 上略低于 CoT-SC,但 ReAct + CoT-SC 组合达到最佳(35.1%)

  • ReAct 在 FEVER 上以 60.9% 显著超越 CoT (56.3%),因为事实验证任务更依赖外部知识检索

  • 决策型任务

方法ALFWorld (成功率)WebShop (成功率)
Act-only (IL)45%
Act-only (prompting)45%30.1%
ReAct71%40.0%
人类91%59.6%
  • ReAct 在 ALFWorld 上将成功率从 45% 提升到 71%,接近人类表现(91%)

  • WebShop 上从 30.1% 提升到 40.0%,虽仍不及人类但差距显著缩小

  • 错误分析

  • CoT-only 的典型错误模式

    • 幻觉(Hallucination): 编造不存在的事实来支持推理(占错误的大多数)
    • 错误传播: 一步推理错误导致后续所有步骤偏离正确方向
  • Act-only 的典型错误模式

    • 无效搜索循环: 搜索返回无关结果后,模型不知道如何调整策略,陷入重复搜索
    • 缺乏子目标分解: 面对复杂问题直接尝试搜索完整答案,而非分步检索
  • ReAct 的错误模式

    • 搜索失败: 当 Wikipedia API 未返回相关段落时,模型可能陷入困境
    • 推理-行动失配: 偶尔 Thought 中的推理是正确的,但生成的 Action 未能正确执行该推理
    • 但总体上 ReAct 的错误更”可调试”——人类可以从 Thought trace 中定位问题所在
  • 人类干预实验

  • 允许人类在 ReAct 执行过程中编辑 Thought 或 Action,仅需修改 2-3 步即可将 HotpotQA 成功率从 27.4% 提升到 >40%,说明 ReAct 的可控性和人机协作潜力

  • 局限性

  • 依赖 prompt 设计: 不同任务需要精心设计 few-shot 示例中的 Thought-Action 模板,泛化到新领域需要重新设计

  • 上下文长度限制: 多轮 Thought-Action-Observation 会快速消耗上下文窗口,复杂任务可能超出模型的上下文容量

  • 工具依赖: ReAct 的效果高度依赖外部工具的质量(如 Wikipedia 搜索 API 的召回率)

  • 单一推理链: 每步仅生成一条 Thought,缺乏 Self-Consistency 或 Tree of Thoughts 的多路径探索能力

  • 仅在 PaLM 540B 上充分验证: 小模型(如 PaLM 62B)上 ReAct 效果大幅下降

  • 相关概念

  • 速查卡片

  • ReAct: Synergizing Reasoning and Acting in Language Models

    • 核心: Thought-Action-Observation 交错执行,统一推理与行动
    • 方法: 纯 prompt 工程,few-shot 示例包含推理步骤和工具调用交替;Thought 用于规划和综合,Action 用于信息获取和环境交互
    • 结果: HotpotQA 35.1%(+CoT-SC);FEVER 60.9%;ALFWorld 71% 成功率;均显著超越 CoT-only 和 Act-only
    • 意义: 奠定了 LLM Agent 的核心范式,直接催生 LangChain/AutoGPT 等应用框架

笔记创建时间: 2026-04-03