ReAct:推理与行动交织,如何搭起 LLM 智能体
ReAct 让模型把推理过程和搜索、API 调用等行动交替进行,削减思维链幻觉,仅凭一两个示例就在 ALFWorld 上以 34% 绝对成功率超越强化学习智能体。
快速答案
ReAct 让语言模型在「写一段推理」和「采取一个行动」之间交替——行动可以是一次搜索、一次 API 调用、环境中的一步——这样每一步思考在进入下一步之前,都被真实的观察结果锚定。在 ALFWorld 具身任务上,它以 34% 的绝对成功率超过模仿学习与强化学习基线;在 WebShop 上高出 10% 绝对值,而全程只用了一两个上下文示例。在 HotpotQA 和 Fever 上,它调用一个简单的维基百科 API,削减了纯思维链推理常犯的幻觉与错误传播。
ReAct 要解决的问题
LLM 的两种能力一直被分开研究。思维链提示让模型把推理说出来,但这是一段封闭的独白:它从不和外部世界核对,于是中间一个事实错了,就会滚雪球般推出一个自信的错误答案。行动生成方法让模型在环境里行动,但缺了显式推理,模型会丢掉高层计划,遇到意外也无法恢复。ReAct 的赌注是:这两种失败恰好互为解药。
思考与行动如何交织
它的机制简单到近乎朴素,这也是它能流传开的原因之一。模型的输出空间在原本的行动之外,加进了自由形式的「思考」。一条轨迹长这样:思考 → 行动 → 观察 → 思考 → 行动 → …,其中观察就是环境或工具返回的内容。思考干的是行动干不了的活:拆解目标、记录还有什么未知、改写一次失败的搜索、决定何时停下。行动干的是思考干不了的活:从维基百科取来一个真实事实、点击一件商品、在房间里移动。关键在于,这一切都不需要训练——ReAct 是一种提示策略,只靠一两个手写示例演示,所以一个够强的基座模型(论文用的是 PaLM-540B,后来是 GPT 一类模型)在精神上是零样本完成的。
说句实话:ReAct 不是新架构,也不是新训练目标,它是一种格式。它的贡献在于证明,只要模型够强,这种格式本身就能补上一个真实的可靠性缺口——而且把推理锚定在观察上,比把推理写得更长更重要。
关键结果
- ALFWorld: ReAct 以 34% 绝对成功率超过用模仿学习和强化学习训练的智能体,只用一两个示例,对手却是在上千条轨迹上训练出来的。
- WebShop: 在这个在线购物基准上,比此前的模仿学习与强化学习方法高出 10% 绝对值。
- HotpotQA / Fever: 只行动(一个维基百科 API)或只推理,各自都不够;把两者交织起来,才消掉了纯思维链的幻觉与错误传播。
- 可解释性: 思考-行动-观察的轨迹是人类可读的,你能清楚看到模型为什么得出这个答案——人甚至能在轨迹中途改写一段思考,把它拉回正轨。
为什么现在重要
如今的 LLM 智能体,大多默默地从 ReAct 衍生而来。「推理、调工具、观察、再推理」这个循环,几乎是每一个用工具的智能体框架的脊梁——LangChain 的 agents、function-calling 循环、检索增强智能体,都是在重新实现这个思路。它把问题从「模型会不会思考」重构成「模型会不会一边思考一边核对」,而答案——锚定胜过单纯加长推理——正是工具调用和检索成为让 LLM 可靠的默认手段、而非一味堆长思维链的原因。今天你做智能体,无论代码里出不出现这个词,都是在 ReAct 之上盖楼。
局限与存疑
ReAct 的提升完全押在基座模型的质量和工具的可靠性上——给它一个返回不了有用结果的弱搜索,推理就没东西可锚定,照样卡壳或胡编。一两个示例的设定优雅却脆弱:表现对示例怎么写很敏感,论文里最漂亮的数字来自作者手工调过的少样本设置。轨迹也可能打转——模型会反复重搜却不收敛——而 ReAct 本身除了提示里的引导,并没有给出任何有原则的停止或回退保证。最后,这些基准(ALFWorld、WebShop、HotpotQA、Fever)都是窄的、单工具、以文本为主的世界;同一个循环在多工具、长跨度、真实生产代价下还成不成立,恰恰是此后智能体领域一直在搏斗的问题。
常见问题
ReAct 和思维链到底有什么不同?
思维链是在封闭循环里推理,接触不到外部世界。ReAct 把每一步推理和一个行动交织起来——搜索、API 调用或环境中的一步——让下一步思考建立在真实观察之上。正是这种锚定,削减了纯思维链常犯的幻觉与错误传播。
ReAct 比强化学习智能体强多少?
在 ALFWorld 上,它以 34% 绝对成功率超过模仿学习和强化学习训练的智能体;在 WebShop 上高出 10% 绝对值——而且只用一两个上下文示例,而非上千条训练轨迹。
ReAct 是一个训练出来的模型,还是一种提示方法?
它是提示方法。ReAct 在行动空间里加进自由形式的推理「思考」,用一两个示例演示这个模式,不需要任何微调,所以任何足够强的基座模型都能跑。
为什么说 ReAct 是 LLM 智能体的基础?
ReAct 引入的推理-行动-观察循环,是几乎每一个现代用工具智能体和 function-calling 框架背后的结构。它确立了一点:让推理锚定在工具观察上,而不是一味加长推理,才是让 LLM 在多步任务上可靠的关键。
一句话:让模型先想、再核对、再想——把推理锚定在真实观察上,胜过在真空里把推理拉长。阅读 arXiv 原文。