核心概念

ReAct(推理-行动范式)

也叫: Reason+Act · ReAct prompting

ReAct 是一种提示技巧,让语言模型在采取行动前先明确写出『思考』,行动之后再读『观察』结果,如此交替进行,而不是直接从问题跳到动作。

思考行动观察
ReAct 让显式推理与真实行动及其结果交替进行。

ReAct 是『Reason + Act(推理 + 行动)』的缩写,是一种在公开研究中提出的提示模式:不是简单地让模型直接挑一个动作去做,而是先让它写一小段『思考』,说明自己打算做什么、为什么这么做,然后再采取一个『行动』,读取返回的『观察』结果,再写下一段思考,如此循环。这个显式的『思考』环节是它的核心特征:它给了模型一个地方,去判断上一步动作到底有没有生效、计划要不要调整、接下来该试什么——而且这段推理是用文字写出来的,智能体自己和调试的人都能看懂。

在 ReAct 之前,比较常见的做法要么是让模型纯靠文字推理(链式思考),完全不采取真实动作;要么是让它直接采取动作,但完全不展示推理过程。ReAct 把两者结合了起来:推理过程和真实的工具调用及其真实结果穿插进行,这样模型的计划就能建立在『实际发生了什么』上,而不是『它以为会发生什么』上。

因为中间的『思考』文字是可见的,ReAct 风格的记录对调试也很有用:智能体走偏了的时候,思考步骤通常能看出它的推理是在哪一步和实际情况脱节的,这比只看动作日志要好判断得多。

怎么运作

图中的循环——思考、行动、观察——不断重复:模型先写一段思考,说明下一步该做什么,再采取对应的行动(通常是调用工具),读取返回的观察结果,再基于这个结果写下一段思考。这其实是给更大的 agent-loop(智能体循环)里『规划』这一环节设计的一种具体结构——很多智能体循环的实现在这一步都用了类似 ReAct 的方式,但这只是众多技巧之一,不是唯一做法。

举个例子

思考:得先搞清楚构建为什么失败,才能着手修复。
行动:read_file("ci_log.txt")
观察:报错:依赖 'foo' 版本不匹配。
思考:日志指向依赖版本问题,应该去看看锁定文件。
行动:read_file("package-lock.json")
观察:foo 被锁定在比代码要求更旧的版本。
思考:应该更新版本锁定,然后重新跑测试。
行动:edit_file("package.json", ...)

和相关概念的区别

ReAct 经常被拿来和普通的 chain-of-thought(链式思考)比较:链式思考是让模型纯用文字推理一个问题,不采取任何真实动作;ReAct 则是把这种推理和真实的工具调用及其真实结果穿插进行,这样每一步推理都能建立在实际发生的事情上,而不是一种假设。

常见误解

常被以为: ReAct 是某个产品或框架的名字。
实际上: 它是公开研究中提出的一种提示技巧(名字是『Reason + Act』的缩写),不是具体某个产品——很多不同的智能体框架都实现了类似 ReAct 的方式。
常被以为: ReAct 是组织智能体内部推理的唯一方式。
实际上: 它只是智能体循环里『规划』这一步的一种知名做法;也有别的方法不写出显式的『思考』环节,或者用不同的方式组织推理。

常见问题

AI 智能体里说的 ReAct 是什么意思?
是一种提示技巧:模型先写出明确的『思考』说明下一步打算做什么,再执行『行动』,读取返回的『观察』结果,如此循环,让推理建立在真实结果上。
ReAct 和链式思考(Chain-of-Thought)有什么区别?
链式思考是让模型纯用文字推理,不采取真实动作;ReAct 是把推理和真实的工具调用、真实结果穿插结合起来。
ReAct 算智能体循环的一部分,还是一个独立的东西?
它是智能体循环里『规划』这一步的一种具体组织方式,不是独立的机制,详见 agent-loop

最近核实: 2026-08-28

相关术语