精读笔记:ReAct — 让语言模型同时推理与行动
论文全称:ReAct: Synergizing Reasoning and Acting in Language Models
arXiv 编号:2210.03629
发表于:ICLR 2023(International Conference on Learning Representations)
作者单位:普林斯顿大学(Princeton University)+ 谷歌研究院(Google Research)
核心作者:Shunyu Yao, Jeffrey Zhao, Dian Yu, Nan Du, Izhak Shafran, Karthik Narasimhan, Yuan Cao
发布时间:2022 年 10 月(arXiv 首发)
阅读地图(先看这里)
这篇论文是 AI Agent(智能体)范式的奠基之作,后续无数框架(LangChain、AutoGPT、BabyAGI 等)都直接建立在它提出的思想上。读懂它,你就抓住了现代 AI 助手"会思考、会用工具"的核心逻辑。
本文解决什么问题?
想象你给一个 AI 助手提问:"去年诺贝尔物理学奖得主的母校是哪里?"
- 纯推理(CoT)模式:AI 只靠大脑里记的知识推理,但可能记错,或者知识截止日期过了——容易编造答案(幻觉)。
- 纯行动(Act)模式:AI 只会无脑搜索、调工具,但不知道搜完要干什么,或者搜到一半迷失了方向——缺乏规划和灵活性。
- ReAct 模式:AI 先 想一想 该搜什么 → 去搜索 → 看到结果后再 想一想 → 再搜 → … → 得出答案。边思考边行动,像侦探破案一样。
核心公式(一句话记住)
Thought(思考)→ Action(行动)→ Observation(观察)→ Thought → Action → ...
术语速查表
| 术语 | 英文 | 一句话解释 |
|---|---|---|
| 推理 | Reasoning | 模型在"脑子里"分析问题、制定计划的过程 |
| 行动 | Acting | 模型调用外部工具(搜索、查数据库等)的过程 |
| 思考轨迹 | Thought / Reasoning Trace | 模型写出的一段自然语言分析,不对外产生效果 |
| 行动 | Action | 实际调用外部工具的指令,如 Search[苹果公司] |
| 观察 | Observation | 外部工具返回的结果,如维基百科摘要 |
| 思维链 | CoT (Chain-of-Thought) | 让模型逐步推理的提示方法,只有内部推理,无外部工具 |
| 智能体 | Agent | 能感知环境、制定决策、执行行动的 AI 系统 |
| 工具调用 | Tool Use | AI 调用外部 API、搜索引擎、代码解释器等的能力 |
| 少样本提示 | Few-shot Prompting | 给模型几个示例,让它照样子完成新任务 |
本文结构
- Abstract — 一段话总结全文
- Introduction — 问题背景和核心贡献
- ReAct 方法 — Thought/Action/Observation 机制详解
- 具体轨迹示例 — 一道真实题目的完整解题过程
- 实验结果 — HotpotQA、FEVER、ALFWorld、WebShop
- 结论与影响 — ReAct 为何重要
1. Abstract 摘要
原文:
While large language models (LLMs) have demonstrated impressive performance across tasks in language understanding and interactive decision making, their abilities for reasoning (e.g. chain-of-thought prompting) and acting (e.g. action plan generation) have primarily been studied as separate topics. We explore the use of LLMs to generate both reasoning traces and task-specific actions in an interleaved fashion, allowing for greater synergy between the two: reasoning traces help the model induce, track, and update action plans as well as handle exceptions, while actions allow it to interface with and gather additional information from external sources (e.g. Wikipedia) to support reasoning.翻译:
尽管大型语言模型(LLM)在语言理解和交互式决策任务中展现了令人印象深刻的性能,但其推理能力(如思维链提示)和行动能力(如行动计划生成)此前主要被作为独立课题分开研究。我们探索使用 LLM 以交替方式同时生成推理轨迹和特定任务的行动,从而实现两者之间更大的协同效应:推理轨迹帮助模型推导、追踪和更新行动计划,并处理异常情况;而行动则允许模型与外部信息源(如维基百科)进行交互并收集额外信息,以支持推理。讲解:
这段摘要是整篇论文的"电梯演讲"——30 秒内把核心思想说清楚。关键洞察:过去大家研究 AI 推理(让 AI 想清楚)和 AI 行动(让 AI 用工具)是两条分开的路,各走各的。这篇论文说:为什么不把两者合在一起?
具体来说:
- 推理帮助行动:想清楚了再行动,不会乱调工具
- 行动帮助推理:查到真实信息,推理不再凭空想象类比:一个好厨师不仅会"想菜谱",也会"尝味道"。光想不尝,菜可能做坏;光尝不想,下一步不知道加什么料。ReAct 就是让 AI 既"想"又"尝"。
原文:
We apply our approach, named ReAct, to a diverse set of language and decision making tasks and demonstrate its effectiveness over state-of-the-art baselines, as well as improved human interpretability and trustworthiness. On knowledge-intensive reasoning tasks (HotpotQA and Fever), ReAct overcomes the issue of hallucination and error propagation prevalent in chain-of-thought reasoning by interacting with a simple Wikipedia API, and generates human-like task-solving trajectories that are more interpretable than baselines with only reasoning or acting. Furthermore, on two interactive decision making benchmarks (ALFWorld and WebShop), ReAct outperforms imitation and reinforcement learning methods by an absolute success rate of 34% and 10% respectively, while being prompted with only one or two in-context examples.翻译:
我们将这一方法命名为 ReAct,并将其应用于多种语言理解和决策任务,证明了其相对于最新基准方法的有效性,以及对人类可解释性和可信度的提升。在知识密集型推理任务(HotpotQA 和 FEVER)上,ReAct 通过与简单的维基百科 API 交互,克服了思维链推理中普遍存在的幻觉和错误传播问题,并生成比仅推理或仅行动的基准方法更具可解释性的、类似人类解题的任务轨迹。此外,在两个交互式决策基准(ALFWorld 和 WebShop)上,ReAct 仅用一两个上下文示例进行提示,就分别以 34% 和 10% 的绝对成功率提升超越了模仿学习和强化学习方法。讲解:
这段说的是"我们在哪些任务上测试了,效果怎么样"。出现了四个测试场景,先记住名字:
测试场景 类型 任务描述 HotpotQA 知识问答 多跳推理问答,需要综合多条信息才能回答 FEVER 事实核查 判断一个陈述是真是假,需查证据 ALFWorld 家庭环境导航 在虚拟家庭场景中完成任务(拿东西、找位置) WebShop 网购模拟 在模拟电商网站上按需求找到并购买商品 最亮眼的数字:在 ALFWorld 上,ReAct 比传统的强化学习方法高出 34% 的成功率,而且只给了一两个示例。这说明 ReAct 极其高效——不需要大量训练数据,给几个例子就会了。
2. Introduction 引言
原文:
A unique feature of human intelligence is the ability to seamlessly combine task-oriented actions with verbal reasoning (or inner speech, Alderson-Day & Fernyhough, 2015), which has been theorized to support human cognitive abilities like working memory, planning, and effective navigation of uncertain situations (Vygotsky, 1987; Luria, 1965; Fernyhough, 2010).翻译:
人类智能的一个独特特征是能够将面向任务的行动与语言推理(或内心独白)无缝结合,这被认为支撑了人类的认知能力,如工作记忆、规划以及在不确定情况下的有效应对。讲解:
论文一开头就从人类认知科学切入,这是一个很有力的论证角度。什么是"内心独白"? 你做任何复杂任务时,脑子里都会有一个声音在"说话":
- 做饭时:"先把水烧开,再切菜……不对,葱放多了,少放点……"
- 考试时:"这道题考的应该是微积分,用分部积分法……"这种"边做边想"的能力让人类能处理复杂、不确定的情况。论文说:AI 也应该有这种能力。
原文:
Consider the example of cooking up a dish: while the recipe suggests a sequence of actions to take, we may reason over the current state ("I need the oil to be hot enough before adding the onions"), identify exceptions and plan how to handle them ("Oh, I'm out of butter; let me substitute with olive oil"), or identify when to seek external information ("the package says 4 cups but how much is that in milliliters? Let me Google it"). Such tight synergy between acting and reasoning allows humans to learn new tasks quickly and perform robustly even in novel or unfamiliar situations.翻译:
以烹饪为例:虽然菜谱给出了一系列操作步骤,但我们可能会对当前状态进行推理("我需要油足够热了再放洋葱"),识别异常并计划如何处理("哦,没黄油了,用橄榄油代替"),或者判断何时需要查阅外部信息("包装上写的 4 杯,但那是多少毫升?让我谷歌一下")。这种行动与推理之间的紧密协同使人类能够快速学习新任务,即使在新颖或陌生的情况下也能稳健地完成任务。讲解:
这个烹饪类比非常生动,帮助我们理解为什么"边想边做"比"只想不做"或"只做不想"更强大:
- 推理当前状态:"油够热了吗?" → 根据现实情况调整计划
- 处理异常:"没黄油了" → 灵活应变,不崩溃
- 知道何时求助外部:"不知道换算,去查" → 主动获取信息
对应到 AI:
1. 推理当前搜索结果是否足够
2. 发现搜索结果没用,换个关键词
3. 主动决定调用哪个工具这就是 ReAct 的设计哲学来源。
原文:
Despite the progress of large language models (LLMs) in recent years, their abilities for reasoning and acting have primarily been studied as separate topics. On one hand, there has been extensive work on improving LLM reasoning, including chain-of-thought (CoT) prompting which shows how LLMs can be prompted to generate verbal reasoning traces or rationales to support problem solving. On the other hand, recent work has studied the use of LLMs as agents that can take actions and interact with the external world to complete tasks. In this paradigm, LLMs are used to generate action plans for problem solving, and can interact with environments such as web browsers, simulators, or even other LLMs.翻译:
尽管近年来大型语言模型取得了显著进展,但其推理和行动能力主要被分开研究。一方面,有大量工作致力于提升 LLM 的推理能力,包括思维链(CoT)提示——展示了如何提示 LLM 生成语言推理轨迹或推理过程来支持问题求解。另一方面,近期研究探索了将 LLM 用作智能体(agent),能够采取行动并与外部世界交互来完成任务。在这种范式中,LLM 被用于生成问题求解的行动计划,并可与网页浏览器、模拟器甚至其他 LLM 等环境交互。讲解:
这段是论文的"问题陈述"——指出领域中存在的空缺。两条平行的研究路线:
```
路线A:推理(CoT思维链)
只在模型内部推理
优点:推理能力强
缺点:信息来自训练数据,可能过时或错误路线B:行动(Action/Agent)
只调用外部工具
优点:信息新鲜准确
缺点:不知道怎么规划,容易乱搜一通两条路谁都没跑到终点
```ReAct 说:为什么要二选一?合起来用!
原文:
However, reasoning-only approaches like CoT can be vulnerable to fact hallucination and error propagation: since the model's knowledge is fixed at training time, it cannot access up-to-date information or verify claims against external sources. Action-only approaches, on the other hand, may fail to correctly decompose goals into smaller subgoals, or lose track of the current state of the environment, due to the absence of high-level reasoning to guide the actions.翻译:
然而,仅推理的方法(如 CoT)容易出现事实幻觉和错误传播:由于模型的知识在训练时就固定了,它无法访问最新信息,也无法用外部来源验证陈述。另一方面,仅行动的方法可能无法正确将目标分解为更小的子目标,或者由于缺乏高层推理来指导行动而迷失对环境当前状态的追踪。讲解:
这是论文最关键的"罪状列举",把两种方法的缺陷分析得很透彻:纯 CoT 的问题——幻觉(Hallucination):
- 想象一个博学但与世隔绝的智者,只靠记忆回答问题
- 2022 年发生的事,他的记忆里没有,但他不会说"我不知道"
- 他会"编造"一个听起来合理的答案——这就是幻觉
- 示例:问"2023年诺贝尔物理学奖是谁?"→ CoT 可能自信地给出一个训练数据里的错误答案纯 Action 的问题——迷失(Lost Track):
- 想象一个勤快但没脑子的助手,你说"帮我买圣诞礼物"
- 他立刻去搜"礼物"→ 看到 10 万个结果→ 不知道该选哪个→ 乱点一通
- 没有"先想想对方喜欢什么"的推理步骤,行动就是盲目的ReAct 的解决方案:
- 推理 → 决定行动方向(解决"迷失"问题)
- 行动 → 拿到真实信息(解决"幻觉"问题)
- 观察 → 根据真实结果更新推理(闭环!)
原文:
In this work, we present ReAct, a general paradigm to combine reasoning and acting with language models for solving diverse language reasoning and decision making tasks. ReAct prompts LLMs to generate both verbal reasoning traces and actions pertaining to a task in an interleaved manner. This allows the model to perform dynamic reasoning to create, maintain, and adjust high-level plans for acting (reason to act), while also interacting with the external environments (e.g. Wikipedia) to incorporate additional information into reasoning (act to reason).翻译:
在本工作中,我们提出 ReAct——一种将推理与行动结合在语言模型中的通用范式,用于解决多种语言推理和决策任务。ReAct 提示 LLM 以交替方式同时生成与任务相关的语言推理轨迹和行动。这使模型能够进行动态推理,以创建、维护和调整行动的高层计划(推理以行动),同时与外部环境(如维基百科)交互,将额外信息融入推理(行动以推理)。讲解:
这段正式介绍 ReAct 的核心设计,有两个方向的协同:
推理以行动(Reason to Act):先想清楚,再决定做什么
- "我需要知道 X 才能回答,所以我要搜索 X"行动以推理(Act to Reason):看到结果,更新推理
- "搜索结果说 Y,结合之前的信息,我现在知道 Z 了""动态推理" 是关键词:不是一次性想好所有步骤(那是静态的 CoT),而是每次行动后根据新信息重新思考。就像下棋,每走一步都要重新评估棋局,而不是开局就把所有步骤想好。
3. ReAct 方法(核心)
原文:
Consider a general setup of an agent interacting with an environment for task solving. At time step t, an agent receives an observation o_t ∈ O from the environment and takes an action a_t ∈ A following some policy π(a_t | c_t), where c_t = (o_1, a_1, ..., o_{t-1}, a_{t-1}, o_t) is the context. Learning a policy is challenging when the mapping c_t → a_t is highly non-trivial (e.g. when c_t is long) or reward is sparse. ReAct augments the agent's action space to  = A ∪ L, where L is the space of language. An action â_t ∈ L in the language space, which we will refer to as a thought or a reasoning trace, does not affect the external environment, hence receives no observation feedback. Instead, a thought aims to compose useful information by reasoning over the current context, and update the context to support future reasoning or acting.翻译:
考虑一个通用的设置:智能体与环境交互以完成任务。在时间步 t,智能体从环境接收观察 o_t,并遵循某一策略 π(a_t | c_t) 采取行动 a_t,其中 c_t = (o_1, a_1, ..., o_{t-1}, a_{t-1}, o_t) 是上下文。当 c_t → a_t 的映射高度非平凡时(如 c_t 很长时),或奖励稀疏时,学习策略是具有挑战性的。ReAct 将智能体的行动空间扩充为 Â = A ∪ L,其中 L 是语言空间。语言空间中的行动 â_t ∈ L——我们称之为思考(thought)或推理轨迹(reasoning trace)——不影响外部环境,因此不会收到观察反馈。相反,思考旨在通过对当前上下文的推理来整合有用信息,并更新上下文以支持未来的推理或行动。讲解:
这段有点学术味,让我用白话翻译:原来的 Agent 是这样的:
- 只有两种东西:行动(做点什么改变世界)和观察(看到世界的反应)
- 行动空间 A = {搜索、点击、购买、回答...}ReAct 做了什么?
- 把行动空间扩大了:A ∪ L
- L 是"语言空间"——就是允许模型写一段内心独白(Thought)
- 这个 Thought 不会改变外部环境,不会触发工具调用
- 但它会更新模型的内部状态,让后续的行动更明智类比:
想象你玩密室逃脱游戏:
- 行动空间原来只有:移动、拿物品、开锁...
- ReAct 加了一个新动作:"自言自语"——把你的推理说出来
- 这个"自言自语"不影响密室,但帮你整理思路,决定下一步怎么做为什么"思考"要显式写出来?
这正是 ReAct 精妙的地方:把隐式的内部推理变成显式的文本,这样:
1. 可以作为后续步骤的"工作记忆"(记住之前想到了什么)
2. 人类可以看懂 AI 在想什么(可解释性)
3. 可以在任意步骤介入纠正(可控性)
原文:
ReAct is based on the idea of few-shot prompting: we present the model with a small number of manually created demonstrations (called a prompt) showing examples of the desired behavior—specifically, examples of task solving via interleaved thoughts, actions, and observations. Since ReAct requires no training, the prompt design is critical to its success.翻译:
ReAct 基于少样本提示的思想:我们向模型展示少量人工创建的示例(称为提示),展示期望行为的例子——具体来说,是通过交替的思考、行动和观察来解决任务的示例。由于 ReAct 不需要训练,提示设计对其成功至关重要。讲解:
这里揭示了 ReAct 的一个重要实用特点:不需要重新训练模型!怎么实现的? 通过"少样本提示"(Few-shot Prompting):
- 给模型看几个"示范题",展示 Thought→Action→Observation 的解题过程
- 模型照着这个格式,自动对新问题也这样做这意味着什么?
- 任何现有的 LLM(GPT-3、PaLM 等)都能立刻用上 ReAct
- 不需要收集大量标注数据
- 不需要昂贵的 GPU 训练
- 只需要精心设计几个示例(Prompt Engineering)当然,代价是:提示的质量很关键——"提示设计对其成功至关重要"。
3.1 知识密集型推理任务的方法设计
原文:
For knowledge-intensive reasoning tasks, we use two datasets: HotpotQA (Yang et al., 2018), a multi-hop question answering benchmark that requires reasoning over two or more Wikipedia passages, and Fever (Thorne et al., 2018), a fact verification benchmark. For both tasks, the action space consists of three actions: search[entity], which searches the exact entity on Wikipedia and returns the first 5 sentences if it exists, or suggests top-5 similar entities if not; lookup[string], which returns the next sentence in the current passage containing the string, simulating Ctrl+F functionality on a browser; finish[answer], which finishes the current task with an answer.翻译:
对于知识密集型推理任务,我们使用两个数据集:HotpotQA——一个多跳问答基准,需要对两篇或更多维基百科文章进行推理;以及 FEVER——一个事实核查基准。对于这两个任务,行动空间由三种行动组成:search[实体]——在维基百科上搜索该实体,若存在则返回前 5 句话,若不存在则推荐最相似的 5 个实体;lookup[字符串]——返回当前文章中下一个包含该字符串的句子,模拟浏览器中 Ctrl+F 的功能;finish[答案]——用一个答案结束当前任务。讲解:
这段定义了"工具箱"——ReAct 在问答任务中能用哪些工具:
工具 用法示例 类比 search[苹果公司]在维基百科搜索"苹果公司",返回摘要 谷歌搜索 lookup[成立时间]在当前页面查找"成立时间"相关句子 Ctrl+F finish[1976年]认为找到答案了,提交答案 提交表单 注意:工具集非常简单,只有 3 个!但已经足够解决很多问题。这说明 ReAct 的威力不在于工具的复杂度,而在于推理+行动的交替循环策略。
4. 具体轨迹示例:逐步解析
这是论文中展示的一个真实 HotpotQA 例题的完整 ReAct 解题过程,非常有助于理解 Thought→Action→Observation 循环。
问题:"Colorado orogeny(科罗拉多造山运动)的东部区域延伸到的地区,其海拔范围是多少?"
这是一个多跳问题(Multi-hop Question):需要先找到"东部区域延伸到哪里",再查"那个地方的海拔范围"——两步信息合并才能回答。
第 1 步:
Thought 1:我需要搜索 Colorado orogeny,找到其东部区域延伸到的地方,然后找到该地区的海拔范围。
讲解:模型先制定计划——这正是纯 Action 模式缺少的东西。它明确了需要两步:先找"延伸到哪里",再找"海拔"。这个 Thought 就像侦探说"我先查嫌疑人的行程,再查案发地点监控"。
第 2 步:
Action 1:
search[Colorado orogeny]Observation 1:The Colorado orogeny was an episode of mountain building (an orogeny) in Colorado and surrounding areas.(科罗拉多造山运动是发生在科罗拉多州及周边地区的一次造山运动。)
讲解:工具返回了维基百科摘要,但没有提到东部区域。这里纯 CoT 模式会怎样?它可能直接编一个"东部区域延伸到某地",因为它只靠记忆。而 ReAct 拿到的是真实数据。
第 3 步:
Thought 2:结果没有提到东部区域。所以我需要查找(lookup)"eastern sector"(东部区域)。
讲解:关键时刻!模型发现搜索结果不够用,自主调整策略——从"搜索整篇文章"改为"在文章中定位特定词语"。这是动态规划能力,纯 Action 模式(不会思考)很可能在这里失败,要么重复同样的搜索,要么乱搜一通。
第 4 步:
Action 2:
lookup[eastern sector]Observation 2:The eastern sector extends into the High Plains and is called the Central Plains orogeny.(东部区域延伸到了高平原地区(High Plains),称为中央平原造山运动。)
讲解:找到了关键信息:东部区域延伸到了 High Plains(高平原)。第一跳完成!现在需要第二跳:查 High Plains 的海拔。
第 5 步:
Thought 3:科罗拉多造山运动的东部区域延伸到了高平原。所以我需要搜索高平原并找到其海拔范围。
讲解:模型及时更新了内部状态——"我现在知道东部区域 = 高平原,下一步目标 = 高平原的海拔"。这就像侦探说"目击者说嫌疑人去了咖啡馆,现在我去咖啡馆查监控"。
第 6 步:
Action 3:
search[High Plains]Observation 3:High Plains refers to one of two distinct land regions.("高平原"可以指两个不同的地理区域之一。)
讲解:又遇到了问题——"高平原"有歧义,搜索结果不够精确(哪个高平原?)。这是现实中搜索的常见困难。
第 7 步:
Thought 4:我需要改搜 "High Plains (United States)"(美国高平原)。
Action 4:
search[High Plains (United States)]Observation 4:The High Plains are a subregion of the Great Plains. From east to west, the High Plains rise in elevation from around 1,800 to 7,000 ft (550 to 2,130 m).(高平原是大平原的一个子区域。从东到西,高平原的海拔从约 1,800 英尺升高到 7,000 英尺(550 至 2,130 米)。)
讲解:成功!通过加上限定词"(United States)",消除了歧义,得到了准确信息。注意模型自主想到了这个解决方案——这是推理驱动行动的体现。
第 8 步(最终):
Thought 5:高平原的海拔从约 1,800 英尺升高到 7,000 英尺,所以答案是 1,800 到 7,000 英尺。
Action 5:
finish[1,800 to 7,000 ft]讲解:任务完成!整个过程:
- 共 5 轮 Thought + 5 个 Action + 5 个 Observation
- 经历了 2 次"搜索结果不满意,自主调整"
- 最终得出正确答案,每一步都有据可查,可以被验证
整体过程总结(侦探类比):
案件:Colorado orogeny 东部延伸地区的海拔?
侦探(AI)思路:
1. [制定计划] "先查造山运动的东部区域"
2. [查档案] 搜索 Colorado orogeny → 没有东部信息
3. [换策略] "搜不到,用 Ctrl+F 找关键词"
4. [查到线索] eastern sector = High Plains(第一跳)
5. [更新目标] "现在去查 High Plains 的海拔"
6. [查档案] 搜索 High Plains → 歧义,不精确
7. [消除歧义] "加上 (United States) 限定"
8. [找到证据] 海拔 1800-7000 英尺(第二跳)
9. [结案] 提交答案 ✓
5. 实验结果
5.1 知识密集型推理:HotpotQA 和 FEVER
原文(关键段落):
Table 1 shows HotpotQA and FEVER results with different prompting methods using PaLM-540B as the base model. We can see that ReAct performs competitively with CoT on both tasks, despite using only 3–6 demonstration examples. More importantly, ReAct (without CoT) achieves an EM of 27.4 on HotpotQA vs. Act's 25.7, and 60.9 on FEVER vs. Act's 58.9.翻译:
表 1 展示了以 PaLM-540B 为基础模型,不同提示方法在 HotpotQA 和 FEVER 上的结果。我们可以看到,尽管只使用了 3-6 个示例,ReAct 在两个任务上的表现与 CoT 相当。更重要的是,ReAct(不含 CoT)在 HotpotQA 上达到了 27.4 的精确匹配率(Act 为 25.7),在 FEVER 上达到了 60.9 的准确率(Act 为 58.9)。讲解:
下面是核心实验数字(使用 PaLM-540B 模型):
方法 HotpotQA(精确匹配率) FEVER(准确率) 标准提示 Standard 28.7 57.1 思维链 CoT 29.4 56.3 仅行动 Act 25.7 58.9 ReAct 27.4 60.9 CoT-SC → ReAct(组合) 34.2 64.6 乍看数字不够惊艳——ReAct 在 HotpotQA 上甚至比 CoT 低一点点。这是为什么?
重要分析:论文发现 ReAct 的失败模式和 CoT 不同:
- CoT 的主要错误:幻觉(凭空编造,人工评估发现 CoT 假阳性率 14%,ReAct 仅 6%)
- ReAct 的主要错误:推理错误(因为要在搜索工具的约束下思考,灵活性受限)结论:两者互补!这就是为什么"CoT-SC → ReAct"组合效果最好(34.2 / 64.6)——先用 CoT 多数投票,失败了再用 ReAct 搜索纠正。
原文:
We also conduct a small-scale human study to examine the interpretability and trustworthiness of the generated trajectories. We found that for 94% of ReAct's successful trajectories, the reasoning traces were deemed coherent and trustworthy. In contrast, CoT's reasoning traces suffer from hallucination in 56% of the error cases. This suggests that ReAct's interleaving of reasoning and acting helps ground the reasoning in real observations, reducing hallucination.翻译:
我们还进行了小规模人工研究,以检验生成轨迹的可解释性和可信度。我们发现,在 ReAct 94% 的成功轨迹中,推理轨迹被认为是连贯且可信的。相比之下,CoT 的推理轨迹在 56% 的错误案例中存在幻觉问题。这表明 ReAct 推理与行动的交替有助于将推理锚定在真实观察上,从而减少幻觉。讲解:
这是一个非常重要的质性发现:人工评估结果:
- ReAct 成功案例中,94% 的推理过程是"说得通的、可信的"
- CoT 的错误中,56% 是因为幻觉(编造了不存在的事实)为什么 ReAct 幻觉少?
因为每一步思考之后都要做一次"现实检验"——调用搜索工具,看看真实情况如何。这就像:
- CoT:全靠记忆做证词,可能记错
- ReAct:每说一句话都去查原始文件,错了立刻发现这个特性在实际应用中非常重要:一个 AI 助手如果会自己去查资料、不瞎编,可信度会大大提升。
5.2 交互式决策任务:ALFWorld
原文:
ALFWorld is a suite of text-based games where an agent needs to accomplish household tasks like "examine a paper under the desklamp" by navigating and interacting with a simulated household environment. The action space includes navigation (go to X), object manipulation (take X from Y, put X in/on Y), and tool use (use X with Y).翻译:
ALFWorld 是一套基于文本的游戏,智能体需要在模拟家庭环境中通过导航和交互来完成家务任务,如"在台灯下查看一张纸"。行动空间包括导航(去往 X)、物体操作(从 Y 取 X,把 X 放在/放到 Y)和工具使用(用 X 操作 Y)。讲解:
ALFWorld 是一个模拟家庭场景的文字游戏,类似于"文字版密室逃脱":
- 环境:厨房、卧室、浴室等
- 任务示例:"把一个热的苹果放进冰箱"
- 挑战:需要先找到苹果→加热苹果→找到冰箱→放进去——多步规划
这个任务测试的是长程规划能力,而不是知识检索。
原文:
Table 3 shows ReAct vs. Act results on ALFWorld across 6 random seeds and test splits. ReAct achieves an average success rate of 57% over all 6 seeds, significantly outperforming Act (45%). For the best trial, ReAct achieves 71% success rate vs. Act's 45%, and substantially outperforms BUTLER (37%), an imitation-learning agent trained on expert demonstrations.翻译:
表 3 展示了 ReAct 与 Act 在 ALFWorld 上 6 个随机种子和测试分割上的结果。ReAct 在所有 6 个种子上的平均成功率为 57%,显著优于 Act(45%)。在最佳试验中,ReAct 达到 71% 的成功率,而 Act 仅为 45%,且大幅超越了在专家演示上训练的模仿学习智能体 BUTLER(37%)。讲解:
ALFWorld 的结果更能体现 ReAct 的优势:
方法 平均成功率 最佳成功率 BUTLER(模仿学习,有大量训练数据) 37% — Act(仅行动,无思考) 45% 45% ReAct(推理+行动) 57% 71% 最关键的对比:ReAct 只用了 1-2 个示例(Few-shot),却大幅超越了 BUTLER 这个用大量专家演示训练的模型。
为什么 ReAct 在家务任务上效果这么好?
- 家务任务需要长程规划:"先找到热水壶 → 再烧水 → 再泡茶"
- 没有 Thought,Act 模式很容易在多步之后"忘记"自己的目标
- ReAct 的每一步 Thought 都在更新"当前状态"和"下一步计划",不会迷失
5.3 交互式决策任务:WebShop
原文:
WebShop is an online shopping environment with real-world product data, where an agent needs to find a product matching given requirements (e.g., "I need a long-sleeve shirt that is machine washable and costs less than $30"). The agent interacts with a product search engine and product pages. Table 4 shows that ReAct (66.6 score, 40.0% success) outperforms Act (62.3 score, 30.1% success) and the best IL+RL baseline (62.4 score, 28.7% success).翻译:
WebShop 是一个使用真实商品数据的在线购物环境,智能体需要找到符合给定需求的商品(例如:"我需要一件机洗、价格低于 30 美元的长袖衬衫")。智能体与商品搜索引擎和商品页面交互。表 4 显示 ReAct(得分 66.6,成功率 40.0%)优于 Act(得分 62.3,成功率 30.1%)以及最好的模仿学习+强化学习基准(得分 62.4,成功率 28.7%)。讲解:
WebShop 模拟的是"帮用户网购"的任务,更贴近实际应用:
方法 得分 成功率 IL+RL(模仿学习+强化学习,有大量训练) 62.4 28.7% Act(仅行动) 62.3 30.1% ReAct 66.6 40.0% ReAct 的成功率比 IL+RL 高了约 11 个百分点,而且 IL+RL 需要大量训练数据,ReAct 只用几个示例。
在 WebShop 上,ReAct 的 Thought 通常用来:
- "用户要找机洗的长袖衬衫,价格 30 美元以下,我先搜索 'machine washable long sleeve shirt'"
- "这个商品描述没有提到机洗,我需要查看规格页"
- "价格是 35 美元,超出预算,继续搜索"这些推理过程让 AI 更精准地执行购物任务,而不是随机乱点。
5.4 错误分析
原文:
We categorize ReAct errors into three types: (1) reasoning errors, where the model fails to correctly reason about the retrieved information; (2) search errors, where the model searches the wrong entity; (3) hallucination errors, where the model generates incorrect information not supported by observations. Compared to CoT, ReAct has significantly fewer hallucination errors (6% vs 14% false positive rate in human evaluation), but more reasoning errors, possibly because the need to generate actions constrains the reasoning flexibility.翻译:
我们将 ReAct 的错误分为三类:(1)推理错误——模型无法正确推理检索到的信息;(2)搜索错误——模型搜索了错误的实体;(3)幻觉错误——模型生成了观察结果不支持的错误信息。与 CoT 相比,ReAct 的幻觉错误显著更少(人工评估假阳性率 6% vs 14%),但推理错误更多,可能因为需要生成行动限制了推理的灵活性。讲解:
这段是诚实的自我批评——论文作者也指出了 ReAct 的局限性:ReAct 的错误类型:
1. 推理错误:找到了对的信息,但没推理正确(占比较高)
- 原因:每次 Thought 之后必须跟一个 Action,约束了推理的自由度
- CoT 可以在脑子里"绕圈圈",ReAct 必须每想一步就行动一步
搜索错误:搜索关键词没搜到对的页面
- 这是工具的局限,不是推理的问题幻觉错误:编造信息(但比 CoT 少很多!)
- ReAct 的最大优势就在这里一句话总结:ReAct 减少了幻觉,但有时推理不够灵活。未来改进方向:让 Thought 更自由,不要强制每次都立刻行动。
6. 结论与后续影响
6.1 论文结论
原文:
We have presented ReAct, a simple yet effective method for synergizing reasoning and acting in language models. We demonstrate that ReAct performs well across diverse tasks while generating interpretable task-solving trajectories. The key insight is that acting and reasoning can be mutually reinforcing: actions ground reasoning in external reality, while reasoning guides more purposeful actions. We hope this work inspires future research on more general and capable language agents.翻译:
我们提出了 ReAct——一种简单而有效的方法,用于协同语言模型中的推理与行动。我们证明了 ReAct 在多种任务中表现出色,同时生成可解释的任务求解轨迹。核心洞察是:行动与推理可以相互增强——行动将推理锚定在外部现实中,而推理则引导更有目的性的行动。我们希望这项工作能启发未来对更通用、更强大的语言智能体的研究。讲解:
结论段落不只是总结,更是一个宣言:"行动与推理相互增强" 这个核心洞察,用一个具体比喻:
- 只推理:闭门造车,自以为聪明,实则脱离现实
- 只行动:莽撞行事,效率低下,没有方向感
- 推理+行动:理论联系实际,知行合一
这其实也是人类解决问题的基本方式:想一想,试一试,看看结果,再想一想……
6.2 ReAct 的四大优势(论文总结)
原文:
ReAct offers four key advantages: (1) Interpretability: humans can distinguish internal knowledge from external information in the reasoning traces; (2) Factuality: grounding in external observations reduces hallucination; (3) Generalization: strong few-shot performance across diverse tasks without extensive training; (4) Controllability: humans can edit intermediate thoughts to steer agent behavior.翻译:
ReAct 提供四大核心优势:(1)可解释性:人类可以在推理轨迹中区分内部知识和外部信息;(2)事实准确性:锚定于外部观察,减少幻觉;(3)泛化能力:无需大量训练,在各种任务上均有强大的少样本表现;(4)可控性:人类可以编辑中间思考步骤来引导智能体行为。讲解:
这四点是 ReAct 被工业界大量采用的原因,逐一解释实际价值:1. 可解释性(Interpretability)
- 传统 AI:黑盒,只知道输入输出,不知道"为什么"
- ReAct:每一步都有 Thought,人类可以读懂 AI 的推理过程
- 实际价值:出了问题可以 Debug,知道哪一步想错了2. 事实准确性(Factuality)
- 每个 Action 都对应一个真实的 Observation
- 答案有出处,可追溯,可验证
- 实际价值:医疗、法律、金融等高风险领域,这一点至关重要3. 泛化能力(Generalization)
- 3-6 个示例就能适配新任务
- 不需要重新训练模型
- 实际价值:快速构建新应用,成本极低4. 可控性(Controllability)
- 可以在中间步骤插入人类的指正
- "AI,你这个 Thought 想错了,应该搜索 X 而不是 Y"
- 实际价值:Human-in-the-loop(人机协作)系统的基础
6.3 ReAct 在 AI 发展史上的地位
这是一个零基础读者需要了解的"历史背景"部分:
ReAct 出现前(2022年以前)的 AI 助手状况:
- ChatGPT 类模型:知识截止某年,问不了新事情,爱编造
- 工具调用类系统:只会搜索,没有推理能力,给一堆结果让用户自己看
- 两类系统是分开的,没有统一框架
ReAct 出现后的影响(2022年底至今):
| 框架/产品 | 与 ReAct 的关系 |
|---|---|
| LangChain | 直接实现了 ReAct Agent,是最流行的 AI 应用开发框架 |
| AutoGPT | 基于 ReAct 思想的自主 Agent |
| BabyAGI | ReAct 风格的任务规划 Agent |
| OpenAI Function Calling | ReAct Thought/Action 的 API 实现版本 |
| Claude Tool Use | Anthropic 对 ReAct 思想的实现 |
| ChatGPT 插件系统 | 本质上是 ReAct:推理→调用插件→观察→继续推理 |
| Microsoft Copilot | 内嵌 ReAct 架构,可以搜索、调用 Office 工具 |
一句话:现代所有"会用工具的 AI 助手",背后的设计思想都可以追溯到 ReAct。
6.4 ReAct 的局限性与后续发展
论文本身也诚实地指出了局限:
局限 1:推理灵活性受限
- 必须严格交替 Thought→Action→Observation,有时想法还没想完就要行动
- 后续工作 Tree of Thoughts(思维树,2023) 解决了这个问题:允许更自由地探索多条推理路径
局限 2:依赖提示设计
- Few-shot 示例的质量对结果影响很大
- 后续工作通过微调(Fine-tuning)让模型内化 ReAct 风格
局限 3:工具集有限
- ReAct 论文只用了 3 个简单工具
- 后续工作如 Toolformer(2023)、ToolBench 极大扩展了工具集
局限 4:长程任务的错误累积
- 多步任务中,早期的错误会通过 Observation 传播,越来越偏
- 后续工作 Reflexion(2023) 增加了"反思"机制,让 Agent 能察觉并纠正错误
ReAct (2022)
↓
Tree of Thoughts (2023) — 更自由的推理
Reflexion (2023) — 增加自我反思纠错
Toolformer (2023) — 更智能的工具选择
AgentBench (2023) — 系统性 Agent 评测
GPT-4 Function Calling — 工业级实现
LangChain / AutoGPT — 工程化框架
↓
现代 AI 助手(ChatGPT、Claude、Gemini 等)
总结:为什么这篇论文值得精读?
-
思想简洁而深刻:Thought→Action→Observation 循环,任何人都能理解,却解决了大量实际问题
-
影响深远:2022 年发布,至今仍是 Agent 设计的标准范式,后续论文引用数以千计
-
工程价值高:不需要训练新模型,直接用 Prompt 实现,降低了 AI 应用的门槛
-
核心洞察永不过时:"推理与行动应该相互增强"——不管模型多强,这个原则都适用
-
可解释性先驱:在 AI 可信度备受关注的今天,ReAct 的"思考可见、行动可追溯"恰好契合了时代需求
快速复习卡片
ReAct = Reasoning + Acting
核心循环:
Thought(想)→ Action(做)→ Observation(看)
→ Thought(想)→ Action(做)→ Observation(看)→ ...
解决的问题:
- 纯 CoT:幻觉多,不接地气
- 纯 Act:没规划,容易迷失
- ReAct:两者结合,互相增强
四大优势:
可解释 + 准确 + 泛化 + 可控
关键数字(PaLM-540B):
HotpotQA: ReAct 27.4 > Act 25.7(减少幻觉)
FEVER: ReAct 60.9 > Act 58.9
ALFWorld: ReAct 71% > Act 45%(最佳试验)
WebShop: ReAct 40.0% > Act 30.1%
历史地位:
现代 AI Agent 的基石论文,LangChain 等框架的直接来源
本文基于 arXiv:2210.03629 原文撰写,所有数字均来自论文实验结果。
精读完成时间:2026-05-27