SIGNALFEED · 论文精读日报文章库论文库

ICLR 2023 · 2023

ReAct:在语言模型中协同推理与行动

ReAct: Synergizing Reasoning and Acting in Language Models

Shunyu Yao · Jeffrey Zhao · Dian Yu · Nan Du · Izhak Shafran · Karthik Narasimhan · Yuan Cao

Princeton University · Google Research, Brain team

arXiv:2210.03629DOI 10.48550/arXiv.2210.03629首次提交 2022-10-06精读版本 2023-03-10入库 2026-07-20

论文许可 CC BY 4.0 · 代码许可 MIT。本文为中文重述与 AI 分析,不代表原作者背书。

#智能体#推理与行动#工具使用#提示学习
实验模型
PaLM-540B · PaLM-62B · PaLM-8B · GPT-3 text-davinci-002
任务基准
HotpotQA · FEVER · ALFWorld · WebShop

一句话结论

ReAct 的关键并不是“让模型多写一段思维过程”,而是把智能体求解任务的轨迹组织成可循环的 Thought → Action → Observation:语言推理负责拆解目标、选择工具、维护状态和修订计划;外部动作负责取得新证据、改变环境,并把结果送回下一轮推理。

摘要译文

大型语言模型已经在语言理解和交互式决策任务上展现出令人印象深刻的能力,但推理(例如 Chain-of-Thought prompting)和行动(例如生成行动计划)此前主要被作为两个独立课题研究。本文探索让语言模型以交错方式同时生成推理轨迹和任务专用动作,使二者形成更强的协同:推理轨迹帮助模型建立、跟踪和更新行动计划,并处理异常;行动则让模型能够接入知识库或环境等外部来源,取得额外信息。

作者将这一方法命名为 ReAct,并将它应用于多种语言任务和决策任务。实验显示,ReAct 不仅优于当时的强基线,也比缺少推理或行动组成部分的方法更容易被人理解和信任。在 HotpotQA 问答与 FEVER 事实核验中,ReAct 通过简单的 Wikipedia API 交互,缓解了 CoT 推理常见的幻觉和错误传播,并生成更接近人类求解过程、也更容易解释的轨迹。在 ALFWorld 和 WebShop 两个交互式决策基准上,仅使用一到两个上下文示例的 ReAct,成功率分别比模仿学习或强化学习方法高 34 和约 10 个百分点。

论文地图

原文章节 回答的问题 精读重点
§1 Introduction 为什么推理和行动需要统一? 纯 CoT 缺少外部落地,纯行动缺少高层规划
§2 ReAct ReAct 在形式上做了什么? 将语言空间并入动作空间;密集与稀疏两种思考节奏
§3 Knowledge-Intensive Reasoning 外部检索是否改善知识推理? HotpotQA、FEVER、CoT/Act 消融、混合回退策略
§4 Decision Making 推理是否改善长程交互? ALFWorld、WebShop、ReAct-IM 消融
§5 Related Work ReAct 与哪些路线相连? CoT、WebGPT、SayCan、Inner Monologue、STaR
§6 Conclusion + Appendix 方法的边界和复现条件是什么? 上下文长度、示例数量、PaLM 不开放、GPT-3 补充实验

1. 研究问题:为什么只推理或只行动都不够

论文把当时的两条研究路线放在一起观察:

  • 推理路线以 Chain-of-Thought(CoT)为代表。模型可以展开多步语言推理,但过程主要依赖参数中的内部知识,无法主动查证事实,也难以根据环境新信息修正后续步骤。因此,一处事实幻觉可能沿着整条推理链传播。
  • 行动路线让语言模型预测搜索、导航或控制动作。模型可以接触外部环境,却不一定能抽象地拆解目标、维护工作记忆、判断当前子目标是否完成,或者在动作失败后重订计划。

ReAct 的研究问题是:能否让推理为行动提供计划,让行动为推理提供证据,并让两者在同一条任务轨迹中互相修正?

论文图 1 用两个案例刻画了差异。在 HotpotQA 中,CoT 因内部事实错误给出错误答案;Act-only 虽然拿到了搜索结果,却无法把多跳证据合成为最终答案;ReAct 则用连续的思考、搜索和观察完成检索链。在 ALFWorld 中,Act-only 会反复尝试从一个并不存在目标物品的位置取物;ReAct 利用常识规划搜索顺序,并在找到物品后切换到下一个子目标。

2. 方法:把语言思考加入动作空间

2.1 形式化定义

在时间步 t,智能体从环境接收观察 ot𝒪,并根据上下文采取动作 at𝒜

ct=(o1,a1,,ot1,at1,ot),at~π(atct)

ReAct 将动作空间扩充为:

𝒜^=𝒜

其中 是语言空间。当 a^t 时,它是一段 Thought 或 reasoning trace:它不改变外部环境,也不会产生新的环境观察,而是把从当前上下文中整理出的信息追加回上下文,供后续思考或行动使用:

ct+1=(ct,a^t)

因此,ReAct 不是额外训练出的独立规划器,也不是固定的搜索算法;论文主体采用冻结的 PaLM-540B,通过少量人工编写的完整任务轨迹进行 in-context learning。每个示例同时包含 Thought、Action 和环境返回的 Observation。

2.2 Thought 在轨迹中的六种作用

论文并未规定 Thought 必须采用某种模板,而是让自由语言承担多种任务:

  1. 分解目标并建立行动计划;
  2. 注入与当前任务有关的常识;
  3. 从冗长观察中提取关键事实;
  4. 跟踪进度并切换子目标;
  5. 处理异常并修改计划;
  6. 重写搜索请求或综合最终答案。

这个自由度同时构成 ReAct 的能力来源与学习难点:语言空间近乎无限,小模型仅靠少量上下文示例不容易学会何时思考、思考什么,以及下一步该映射到哪个环境动作。

2.3 两种思考节奏

ReAct 并不要求每个动作前都输出 Thought:

  • 在 HotpotQA、FEVER 这类以知识推理为主的任务中,论文采用密集交替的 Thought → Action → Observation
  • 在 ALFWorld、WebShop 这类可能包含几十步动作的决策任务中,Thought 只在拆解目标、完成子目标、改变计划或需要常识判断的位置稀疏出现;模型自行决定何时思考、何时连续行动。

这一区分很重要。论文验证的不是“思考越多越好”,而是思考应当出现在能够改变行动策略的位置

3. 实验设计

任务 类型 环境或动作空间 主要指标 ReAct 示例量
HotpotQA 多跳问答 Wikipedia API:searchlookupfinish Exact Match 6 条人工轨迹
FEVER 事实核验 同上;输出 SUPPORTS、REFUTES 或 NOT ENOUGH INFO Accuracy 3 条人工轨迹
ALFWorld 文本化具身环境 在模拟家庭中导航、查找与操作物品 Success Rate 每类任务标注 3 条,提示中使用 2 条
WebShop 网页购物导航 搜索商品、选择商品和选项、购买 Score、Success Rate 1 条轨迹

3.1 Wikipedia 环境并不强

知识任务使用的工具有意保持简单:

  • search[entity]:命中页面时返回前五句,否则给出五个近似实体;
  • lookup[string]:返回页面中下一句包含该字符串的内容,近似浏览器中的查找;
  • finish[answer]:提交答案并结束任务。

作者明确指出,这套接口只能按精确页面名取到文章的一小部分,能力弱于当时先进的稀疏或神经检索器。这样设计的目的,是迫使模型用显式语言推理决定“下一步查什么”,而不是把收益归因于强检索系统。

3.2 对照组与组合策略

知识任务从同一批 ReAct 轨迹删除不同组成部分,构成三种控制变量清晰的基线:

  • Standard:删除 Thought、Action 和 Observation;
  • CoT:保留推理,删除动作与观察;
  • Act:保留动作与观察,删除 Thought。

此外,CoT-SC 在温度 0.7 下采样 21 条 CoT 轨迹并用多数答案。作者还设计了两个混合回退策略:

  • ReAct → CoT-SC:ReAct 在 HotpotQA 7 步或 FEVER 5 步内没有返回答案时,退回 CoT-SC;
  • CoT-SC → ReAct:当 CoT-SC 的多数答案没有获得超过一半样本支持时,视为内部知识信心不足,转用 ReAct 检索外部证据。

这两个策略并非新的端到端模型,而是按失败信号在“内部推理”和“外部检索”之间切换。

4. 结果:知识推理

4.1 PaLM-540B 提示结果

以下数字来自原论文表 1:

方法 HotpotQA EM FEVER Accuracy
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
监督式领域 SOTA 67.5 89.5

结果包含三层信息:

  1. ReAct 在两个任务上都优于 Act,说明外部访问能力本身不够,语言推理确实帮助了检索和答案综合。
  2. ReAct 在 FEVER 上优于 CoT(60.9 对 56.3),但在 HotpotQA 上略低于 CoT(27.4 对 29.4);外部落地并不保证所有推理任务都提升。
  3. 两种混合策略取得最佳提示结果,却仍远低于监督式领域系统。这篇论文证明的是一种通用少样本交互范式的价值,不是宣布它击败所有专用问答系统。

论文图 2 还显示,两种混合方法仅用 3–5 个 CoT-SC 样本,就能达到纯 CoT-SC 使用 21 个样本时的水平。作者据此认为,内部知识与外部知识的适当组合可以提高采样效率。

4.2 失败模式比总分更重要

作者从 ReAct 和 CoT 各随机抽取 50 个正确与 50 个错误 HotpotQA 轨迹,共 200 个样本进行人工归因。原论文表 2 给出:

状态 类型 ReAct CoT
成功样本 正确推理且事实正确 94% 86%
成功样本 推理或事实存在幻觉但碰巧答对 6% 14%
失败样本 推理错误或无法退出重复步骤 47% 16%
失败样本 搜索为空或没有有用信息 23%
失败样本 推理或事实幻觉 0% 56%
失败样本 预测合理但与标签精确形式不符 29% 28%

这张表揭示了一个关键交换:

  • ReAct 的外部证据显著降低了幻觉,使成功轨迹更可信;
  • 结构化的 Thought/Action/Observation 循环也降低了自由推理的灵活性,容易重复旧动作、陷入循环;
  • 搜索质量成为新的单点瓶颈,23% 的 ReAct 失败与无信息搜索有关,且错误观察会继续拖偏后续推理。

换言之,ReAct 没有消除失败,而是把一部分“无法验证的内部幻觉”转化成了更可诊断的“检索失败、计划失败和循环失败”。

4.3 微调实验

作者用 ReAct 生成的 3,000 条正确轨迹微调 PaLM-8B 和 PaLM-62B。图 3 的主要结论是:小模型仅靠少量上下文示例时,ReAct 因同时学习推理与行动而表现最差;经过微调后,它却成为四种格式中最好的。PaLM-8B 微调 ReAct 超过所有 PaLM-62B 提示方法,PaLM-62B 微调 ReAct 则超过所有 PaLM-540B 提示方法。

附录 B.1 补充了训练步数:PaLM-8B/62B 的 ReAct 与 Act 都训练 4,000 步;Standard 与 CoT 在 8B 上训练 2,000 步、在 62B 上训练 1,000 步。作者观察到 ReAct/Act 通常继续受益于更多训练,而 Standard/CoT 很快退化。

这里的证据仍是初步的:训练轨迹由模型生成并以答案正确进行筛选,不等同于大规模高质量人工轨迹;图中也没有覆盖更广泛的任务或模型家族。

5. 结果:交互式决策

5.1 ALFWorld

ALFWorld 包含六类文本化家庭任务。一个实例可能有 50 多个位置,专家也可能需要 50 多步才能完成。提示中的稀疏 Thought 用于分解目标、跟踪子目标、决定下一个子目标,以及用常识判断物品可能位于哪里。

原论文表 3 的成功率如下:

方法 Pick Clean Heat Cool Look Pick 2 全部
Act(6 个提示中最佳) 88 42 74 67 72 41 45
ReAct(6 个提示平均) 65 39 83 76 55 24 57
ReAct(6 个提示中最佳) 92 58 96 86 78 41 71
ReAct-IM(平均) 55 59 60 55 23 24 48
ReAct-IM(最佳) 62 68 87 57 39 33 53
BUTLERg(最佳) 33 26 70 76 17 12 22
BUTLER(最佳) 46 39 74 100 22 24 37

最佳 ReAct 的总体成功率为 71%,高于最佳 Act 的 45% 和 BUTLER 的 37%。摘要所称“绝对提高 34%”指的是 71% 相对 BUTLER 37% 的 34 个百分点,不是相对 Act 的提升。六组受控提示中,ReAct 相对 Act 的性能增益为 33%–90%,平均 62%;即使 ReAct 六组中的最低结果 48%,也高于 Act 和 BUTLER 的最佳结果。

为了区分“内部推理”和“环境反馈”,作者还构造 ReAct-IM:用密集的环境状态复述替代自由、稀疏的高层 Thought。最佳 ReAct-IM 只有 53%,低于 ReAct 的 71%。人工检查显示,ReAct-IM 较难判断子目标何时完成、下一个子目标是什么,也缺少判断物品位置所需的常识。这说明简单地把环境状态不断写回上下文,并不等价于目标分解和计划推理。

5.2 WebShop

WebShop 包含 118 万个真实商品和 1.2 万条人工指令;论文在 500 条测试指令上评估。Score 衡量选中商品覆盖了多少目标属性,Success Rate 要求商品满足全部条件。

方法 Score Success Rate
Act 62.3 30.1
ReAct 66.6 40.0
模仿学习(IL) 59.9 29.1
模仿学习 + 强化学习(IL+RL) 62.4 28.7
人类专家 82.1 59.6

ReAct 相对 Act 的成功率提高 9.9 个百分点,论文概括为约 10 个百分点。它更容易通过推理把自然语言约束映射到嘈杂的商品描述和选项,但仍明显落后于人类专家;作者观察到,人类会进行更多商品探索和搜索请求重写。

5.3 人在回路中的修正

附录 A.3 和图 5 展示了一次 ALFWorld 失败:模型错误地认为第二个钥匙串仍在已经检查过的抽屉中。人类删除一个幻觉句子,再给下一段 Thought 加入新的搜索位置提示,之后模型改变整条后续轨迹并完成任务。

这个案例证明 ReAct 轨迹可以被人检查和干预,但它只是单个定性示例。论文没有系统测量纠错成功率、人工成本或不同编辑者的一致性,因此“更可控”在这里应视为有潜力的交互机制,而不是已经充分验证的产品结论。

6. 补充实验与复现条件

附录 A.1 用 GPT-3 text-davinci-002 和 greedy decoding 检验跨模型迁移。在论文表 5 的设置中:

模型 HotpotQA EM(500 个验证样本) ALFWorld SR(134 个未见实例)
PaLM-540B 29.4 70.9
GPT-3 text-davinci-002 30.8 78.4

这说明 ReAct 并非只在 PaLM 上有效,但范围仍只有两个模型家族和两个任务。主实验依赖未公开的 PaLM,限制了严格复现;作者通过公开全部提示词、补充 GPT-3 实验和发布代码降低这一问题。公开代码仓库提供 HotpotQA、FEVER、ALFWorld、WebShop 的 notebook,但仓库 README 中部分复现实验的样本和结果与论文主表并不完全相同,比较时应以各自注明的设置为准。

7. 论文结论与证据边界

本节只回答“论文主张了什么,以及实验能够支持到哪里”,不讨论这些结果对今天的系统设计意味着什么。

作者主张 论文提供的证据 证据边界
推理可以改善行动 ReAct 在四个任务上均优于相应 Act-only;ALFWorld 还有同轨迹删 Thought 的受控比较 证据较强,但主要来自少样本提示和 2022 年模型
行动可以让推理更有事实依据 FEVER 提升;HotpotQA 人工错误分析中,CoT 失败有 56% 属于幻觉,ReAct 为 0% 支持“更落地”,但 ReAct 在 HotpotQA 总 EM 仍略低于 CoT
ReAct 更可解释、更可信 Thought/Action/Observation 可人工区分;200 条轨迹人工归因;单个人工修正案例 可诊断性得到展示,不能由此推导思维文本总是忠实解释内部计算
少样本 ReAct 胜过大量训练的决策基线 ALFWorld 对 BUTLER、WebShop 对 IL/IL+RL 的结果 数字成立,但模型、训练数据、动作空间和提示选择不同,不能只按样本量作等价比较
ReAct 可通过微调扩展 3,000 条正确生成轨迹上的 PaLM-8B/62B 初步结果 有希望,但任务和训练来源单一,尚不是完整的规模化结论

论文自己承认的主要限制包括:复杂任务和大动作空间需要更多示例,可能超过 in-context learning 的输入长度;自由语言与动作的联合空间难学;依赖高质量人工轨迹;主实验模型不可公开复现。论文没有系统评估延迟、token/工具调用成本、恶意观察、提示注入、权限边界或真实危险动作。

伦理声明特别提醒:一旦语言模型能够访问网页或物理环境,可能检索私人/不当信息,或执行有害动作。论文实验通过将工具限制在 Wikipedia、WebShop 基准环境,并禁止真实购买或编辑操作来控制风险。这意味着 ReAct 描述的是一个交互范式,安全性仍取决于动作空间、权限和环境设计。

8. AI 解读:这篇论文真正留下了什么

以下是 AI 基于论文证据作出的延伸分析,不是作者原文结论。

8.1 ReAct 的遗产是闭环,而不是固定提示词格式

最耐久的思想是把代理任务建模成“根据当前状态选择下一步认知或外部动作”的闭环。实际系统可以把 Thought 替换为计划、状态摘要、工具选择依据或受约束的中间表示,不必照搬论文中可见的自由语言思维轨迹。

8.2 外部工具把错误从“不可见幻觉”变成“可观测故障”

检索不能自动保证正确,但它改变了失败的形态:系统可以记录查询是否为空、观察是否包含证据、计划是否重复、工具是否返回异常。这些信号比单纯看到一个错误最终答案更适合做监控、回退和评估。

8.3 稀疏推理比无差别地增加推理更值得借鉴

ALFWorld 的设计提示了一条工程原则:连续、低风险、状态明确的动作不一定需要每步重新规划;在目标切换、证据不足、动作失败和计划异常时触发显式推理,更可能兼顾成本与稳定性。

8.4 内部知识与外部证据不应二选一

论文最好的知识任务结果来自 ReAct 与 CoT-SC 的条件回退,而不是单独一种方法。这预示了后来的代理系统常见设计:先用内部知识快速求解,在低信心、需要时效事实或遇到执行失败时调用外部工具,并为工具失败保留另一条路径。

8.5 工具质量会成为新的模型能力上限

ReAct 有 23% 的 HotpotQA 错误与无信息搜索相关。模型越依赖外部工具,查询改写、结果排序、错误返回、超时与权限设计越会直接进入整体质量函数。一个优秀的代理系统不能只评估模型,也必须评估工具接口和观察质量。

9. 相关工作坐标

  • Chain-of-Thought:提供语言推理能力;ReAct 补入动作和环境观察,使推理可以被外部证据修正。
  • Self-Consistency:通过多样本多数投票提升 CoT;论文证明它可以与 ReAct 条件回退结合。
  • WebGPT:已经让语言模型操作浏览器,但依赖大规模示范和人类反馈,没有显式建模交错的推理过程。
  • SayCan:用语言模型提出机器人动作,再由可供性模型重排;重点是把语言先验落到可执行动作。
  • Inner Monologue:将环境反馈写入代理上下文;ReAct 强调自由、稀疏的内部目标分解不等于密集状态复述。
  • STaR:用模型自己生成的正确推理进行迭代微调;ReAct 的 3,000 条正确轨迹微调实验采用了相近的自举思路。