ReAct
ReAct 是"Reasoning + Acting"的缩写,由姚顺雨(Shunyu Yao)等人于 2022 年提出(论文《ReAct: Synergizing Reasoning and Acting in Language Models》,中文译名《在语言模型中协同推理与行动》)。核心思想是让语言模型在行动之前先输出显式的推理轨迹,再执行行动,观察结果,然后再推理、再行动,形成 Thought → Action → Observation 的交织循环。
与"直接输出行动命令"不同,ReAct 要求模型说明为何选择这个工具、结果意味着什么、下一步如何调整。这种显式推理带来两个实际好处:模型能根据真实观察结果自我校正,而不是盲目执行预设步骤;同时人类和调试工具可以跟踪推理过程,判断在哪一步产生了误判。
三元素循环
ReAct 循环的最小单元:
| 元素 | 含义 | 示例 |
|---|---|---|
| Thought(思考) | 模型对当前状态的推理 | “需要找到 Python 3.10 的发布日期,应该搜索官方文档” |
| Action(行动) | 调用工具或执行操作 | search("Python 3.10 release date") |
| Observation(观察) | 工具返回的实际结果 | "Python 3.10 was released on October 4, 2021" |
这三元素重复迭代,直到模型判断任务完成并输出最终答案。
与 Agent Loop 的关系
ReAct 是 Agent Loop(智能体循环) 的模型端实现模式。Agent Loop 描述 harness 层面的控制流(“模型推理 → 工具执行 → 结果追加回上下文”);ReAct 描述模型本身的输出结构——每次工具调用前必须输出推理轨迹,而不是直接给出函数调用。
两者的分工:
| 层次 | 负责方 | 关注点 |
|---|---|---|
| ReAct | 模型自身 | 推理轨迹的格式与内容 |
| Agent Loop | Harness | 工具执行、结果追加、循环控制 |
现代模型(Claude、GPT-4 等)的工具调用已内化了 ReAct 的思想,但推理步骤不一定以纯文本形式暴露——它可能是模型内部的 extended thinking 而非显式 Thought 输出。
与 Chain-of-Thought 的区别
- Chain-of-Thought(CoT):只有推理,没有外部行动——模型在上下文中"想",但不从真实环境获取新信息
- ReAct:推理与真实世界行动交织——每一步的 Observation 来自真实工具调用,推理基于实际反馈而非模型自己的预测
CoT 只能依赖训练时知识,ReAct 能处理需要实时外部信息的任务。
为何重要
ReAct 的关键贡献是把"先想清楚再执行"引入 Agent 循环,而不是让模型直接输出行动序列。这使 Agent 能够:
- 动态重规划:根据中间观察结果调整计划,而非执行预设步骤
- 优雅处理意外:工具返回意外输出时,Thought 步骤允许模型重新评估策略
- 可审计推理:推理轨迹对人类可见,便于调试和建立信任
在 AlfWorld 基准测试(多步交互式文字任务)中,ReAct 相较当时基础线提升约 34%,是验证该范式有效性的关键早期数据点。
ReAct 直接影响了后续大多数 Agent 框架(LangChain、AutoGPT、LangGraph)的设计——几乎所有现代 Agent 框架都把"思考-行动-观察"三元组作为基本执行单元。
在循环演进中的位置
ReAct 是第二代(Gen 2,2022–2023)Agent Loop(智能体循环) 架构的基础模式,也是后续所有增强方案的出发点。同代的代表性模式还有:
- Reflexion(反思):在 ReAct 外层加入自评估循环,每次失败后生成语言反思存入情节记忆,再次尝试时读入;更适合试错密集型任务
- Plan-and-Execute(规划与执行):先完整规划后并行执行各子步骤,无需每步等待上步结果;适合步骤相对独立的并行型任务
第三代(2024)引入 OODA 循环、内外双循环(Inner/Outer Dual Loop)和多 Agent 编排;第四代(2025–2026)则出现了 /goal、/loop 等原生目标追踪命令和 Ralph Loop 等带外部状态的 shell 循环模式,详见 Agent Loop(智能体循环) 的"四代循环演进"章节。
相关概念
- Agent Loop(智能体循环) — ReAct 是 Agent Loop 的模型端实现模式;该词条含"四代循环演进"章节
- AI Agent(智能体) — ReAct 是 Agent 感知-规划-行动循环的典型实现范式
- Harness Engineering(驾驭工程) — 在 harness 层实现 ReAct 的 Action-Observation 闭环
- Context Engineering(上下文工程) — Thought/Action/Observation 三元组的累积是上下文增长的主要来源
- Loop Engineering(循环工程) — ReAct 是 Coding Loop 等应用场景的底层推理模式
- Reflexion(反思) — 在 ReAct 外加自评估层的第二代增强模式
- Plan-and-Execute(规划与执行) — 同代的并行化执行模式