ReAct
Synergizing Reasoning and Acting in Language Models
📄 ICLR 2023 📅 2022-10-06 🏫 Princeton + Google Brain ⭐ arXiv:2210.03629

🎯 核心结论

一句话概括

ReAct 是一种让大语言模型交替生成推理轨迹(Thought)和动作(Action)的新范式,通过推理指导行动、行动反哺推理的协同机制,在问答、事实验证和交互式决策任务上显著优于单纯的推理(CoT)或单纯的行动(Act)方法。

关键贡献

  • ReAct 范式:首次系统性地将推理和行动以交错方式结合在 LLM 中
  • 性能提升:ALFWorld 成功率提升 34%,WebShop 提升 10%
  • 可解释性:人类可读的推理轨迹,便于调试和信任
  • 少样本学习:仅需 1-6 个 in-context 示例即可泛化
  • 事实性:通过与外部 API 交互,显著减少幻觉

💡 动机:人类认知的启示

ReAct 的灵感来自人类认知科学中的"内心独白"(Inner Speech)理论:

人类如何在厨房做菜?

  • 跟踪进度:"现在所有食材都切好了,我应该烧水了"
  • 处理异常:"我没有盐,那就用酱油和胡椒代替"
  • 获取信息:"怎么和面?让我上网搜一下"
  • 执行行动:打开食谱、开冰箱、检查食材

这种"行动"与"推理"的紧密协同,使人类能快速学习新任务,即使在未知情况下也能做出鲁棒决策。

现有方法的局限

🧠

Chain-of-Thought

只推理,不行动

静态黑盒,容易幻觉

🤖

Act-Only

只行动,不推理

缺乏规划,容易迷失

🧠+🤖

ReAct

推理 + 行动

协同互补,优势互补

🔬 ReAct 方法详解

核心思想

扩展动作空间:Â = A ∪ L
其中 A 是原始动作空间,L 是语言空间(推理轨迹)

推理轨迹(Thought)不直接影响外部环境,但会更新上下文,支持未来的推理或行动。

推理轨迹的六种类型

类型 作用 示例
目标分解 将复杂任务拆分为子目标 "我需要先搜 X,再找 Y,最后找 Z"
常识注入 引入相关背景知识 "台灯通常放在书桌、架子或梳妆台上"
信息提取 从观察中提取关键信息 "X 成立于 1844 年"
进度跟踪 监控子目标完成情况 "现在所有食材都切好了"
异常处理 调整计划应对意外 "Front Row 没找到,让我搜 Front Row Software"
搜索重构 reformulate 查询策略 "也许我可以搜/查 X 代替"

ReAct 的四大特点

A) 直观易设计

人类标注者只需在行动旁写下内心想法,无需特殊格式或示例选择

B) 通用灵活

灵活的思维空间和思维-行动格式,适用于 QA、事实验证、文本游戏、网页导航等多样任务

C) 高性能鲁棒

仅从 1-6 个 in-context 示例学习,就能持续超越纯推理或纯行动基线

D) 人类对齐可控

可解释的序列决策过程,人类可检查推理和事实正确性,甚至实时编辑思维纠正行为

🧪 实验设置

四大基准测试

任务 数据集 类型 环境/API
多跳问答 HotpotQA 知识密集型推理 Wikipedia API
事实验证 FEVER 知识密集型推理 Wikipedia API
文本游戏 ALFWorld 交互式决策 模拟家庭环境
网页导航 WebShop 交互式决策 在线购物网站

Wikipedia API 设计(HotpotQA & FEVER)

三种动作: search[entity] → 返回实体 Wiki 页面前5句 lookup[string] → 返回页面中包含 string 的下一句(模拟 Ctrl+F) finish[answer] → 以 answer 结束任务

设计意图:模拟人类与 Wikipedia 的交互方式,迫使模型通过显式语言推理来检索信息

基线方法

方法 说明
Standard 标准提示,无思维、无行动、无观察
CoT (Chain-of-Thought) 仅推理,移除行动和观察
CoT-SC CoT + Self-Consistency,采样 21 条轨迹取多数答案
Act 仅行动,移除思维(类似 WebGPT)
ReAct 思维 + 行动 + 观察 交错

📊 实验结果

知识密集型推理任务(PaLM-540B)

方法 HotpotQA (EM) FEVER (Acc)
Standard 28.7 57.1
CoT 29.4 56.3
CoT-SC 33.4 60.4
Act 25.7 58.9
ReAct 27.4 60.9
CoT-SC → ReAct 34.2 64.6
ReAct → CoT-SC 35.1 62.0

💡 关键发现:ReAct + CoT-SC 组合最佳

  • ReAct → CoT-SC:当 ReAct 在给定步数内失败,回退到 CoT-SC
  • CoT-SC → ReAct:当 CoT-SC 多数答案出现次数 < n/2,回退到 ReAct
  • 组合方法用 3-5 个样本 即可达到 CoT-SC 用 21 个样本的性能

成功与失败模式分析(HotpotQA 人工标注)

类型 ReAct CoT
正确推理和事实 94% 86%
幻觉推理或事实 6% 14%
推理错误 47% 16%
搜索结果错误 23%
幻觉(失败模式) 0% 56%

⚠️ ReAct 的弱点

  • 推理错误率更高(47% vs 16%):交错结构限制了推理灵活性
  • 重复循环:模型有时重复生成之前的思维和行动,无法跳出
  • 搜索依赖:23% 错误来自非信息性搜索,导致推理偏离

交互式决策任务

方法 ALFWorld (成功率) WebShop (成功率)
Act (最佳) 45% 30.1%
ReAct (平均) 57% 40.0%
ReAct (最佳) 71%
BUTLER (模仿学习) 37%
IL + RL 28.7%
Human Expert 59.6%

惊人发现:少样本 > 大量训练

ReAct 仅用 1-2 个 in-context 示例,就超越了在 10³~10⁵ 个任务实例上训练的模仿学习和强化学习方法:

  • ALFWorld:绝对成功率提升 34%(71% vs 37%)
  • WebShop:绝对成功率提升 10%(40% vs 30%)

🎓 微调实验

使用 3,000 条 ReAct 生成的正确轨迹,微调较小模型(PaLM-8B/62B):

惊人结果

  • PaLM-8B 微调 ReAct > 所有 PaLM-62B 提示方法
  • PaLM-62B 微调 ReAct > 所有 PaLM-540B 提示方法

原因:微调 Standard/CoT 本质上是教模型记忆(可能幻觉的)知识事实;而微调 ReAct/Act 是教模型如何(推理并)行动以从 Wikipedia 获取信息——一种更通用的知识推理技能。

🆚 与 Inner Monologue 的对比

Inner Monologue (Huang et al., 2022b) 是最接近的相关工作,但存在关键差异:

维度 Inner Monologue ReAct
"内心独白"内容 环境状态观察 + 目标完成度 灵活多样的推理类型
推理密度 密集(每步都有) 稀疏(仅在关键位置)
推理类型 外部反馈的简单反应 目标分解、常识推理、进度跟踪等
ALFWorld 成功率 53% 71%

💡 ReAct-IM 消融实验

将 ReAct 的思维替换为 IM 风格的密集外部反馈(ReAct-IM),成功率从 71% 降至 53%。原因是:

  • 缺乏高层目标分解能力
  • 缺乏常识推理判断物品位置

🔍 关键洞察与影响

1. 推理与行动的协同是质变

不是简单的"1+1=2",而是相互增强的飞轮

  • Reason to Act:推理帮助创建、维护和调整行动计划
  • Act to Reason:行动从外部环境获取信息,反哺推理

2. 少样本学习的威力

ReAct 证明了 LLM 的in-context learning 能力远超传统认知。1-2 个示例就能让模型掌握复杂的推理-行动交替策略,这暗示 LLM 已经内化了大量关于"如何解决问题"的先验知识。

3. 可解释性的价值

ReAct 的推理轨迹不仅是性能提升的工具,更是信任和安全的基础

  • 人类可区分内部知识和外部信息
  • 可检查推理过程的事实正确性
  • 可实时编辑思维纠正行为

4. 对后续研究的影响

ReAct 启发了大量后续工作:

  • AutoGPTLangChain Agent 等工具直接采用 ReAct 模式
  • ToolformerGorilla 等工具调用模型延续其思路
  • React Pattern 已成为 LLM Agent 设计的标准范式之一

⚠️ 局限与未来方向

当前局限

未来方向

📝 总结

ReAct 是什么?

ReAct 是第一个系统性地将推理(Reasoning)和行动(Acting)以交错方式结合在大语言模型中的通用范式。它不仅是技术方法,更是一种认知框架——模仿人类"内心独白"与"外在行动"的协同机制。

最核心的贡献:

  • 范式创新:Thought → Action → Observation 的循环结构
  • 性能突破:少样本学习超越大量训练的模仿/强化学习方法
  • 可解释性:人类可读的推理轨迹,便于调试和信任
  • 通用性:适用于 QA、事实验证、文本游戏、网页导航等多样任务

"The tight synergy between 'acting' and 'reasoning' allows humans to learn new tasks quickly and perform robust decision making." —— 这正是 ReAct 想要赋予 LLM 的能力。