ReAct
ReAct边想边做边观察
ReAct 是一种将「推理轨迹」与「工具调用行动」交替生成的大模型 Agent 范式:模型在每一步先输出自然语言思考过程(Thought),再执行外部工具调用(Action),再将工具返回结果(Observation)纳入上下文,循环往复直至得出答案。该范式由普林斯顿大学与 Google Research(Brain Team)于 2022 年联合提出,已成为现代 AI Agent 构建的核心基础范式之一。
概述
ReAct 是一种将「推理轨迹」与「工具调用行动」交替生成的大模型 Agent 范式:模型在每一步先输出自然语言思考过程(Thought),再执行外部工具调用(Action),再将工具返回结果(Observation)纳入上下文,循环往复直至得出答案。该范式由普林斯顿大学与 Google Research(Brain Team)于 2022 年联合提出,已成为现代 AI Agent 构建的核心基础范式之一。
核心循环:思考 → 行动 → 观测
ReAct 把每一步 Agent 行为分解为三类输出,循环执行直至任务完成。
- Thought(思考):模型用自然语言写出当前推断、计划或子目标,相当于「内心独白」,此步骤不调用任何外部系统。
- Action(行动):调用外部工具(如搜索引擎、计算器、数据库 API),以格式化语法输出供宿主程序解析并执行。
- Observation(观测):工具返回的结果被追加到上下文,供下一轮 Thought 参考,模型始终「看到」完整的推理历史。
- Finish(终止):当模型输出
Finish[最终答案]动作时循环结束,实际工程中通常还设置最大迭代轮次防止死循环。 - 相较于纯链式推理(Chain-of-Thought),ReAct 引入真实外部信息,有效压制幻觉与错误传播。
提出背景与发展脉络
ReAct 的诞生填补了「只推理不行动」与「只行动不推理」两类方法之间的空白,此后演化迅速。
- 2022 年 5 月:Chain-of-Thought 论文(Wei 等,Google)展示了逐步推理的价值,但缺乏外部工具接入。
- 2022 年 10 月:Shunyu Yao、Jeffrey Zhao 等人在 arXiv 发布 ReAct 预印本(arXiv:2210.03629),将推理轨迹与工具调用统一到单一生成序列。
- 2023 年:论文正式发表于 ICLR 2023;LangChain 将 ReAct Agent 作为核心模块发布,工程界快速普及。
- 2023 年中:OpenAI 推出 Function Calling,为 Action 步骤提供结构化 JSON 接口,是 ReAct 范式的工程化落地。
- 2023 年末:Reflexion(MIT)、ReWOO、CRITIC 等在 ReAct 基础上增加反思与并行工具调用能力。
- 2024–2025 年:MCP(Model Context Protocol) 等跨厂商协议出现,将 ReAct 的 Action 接口标准化,推动工具生态互通。
技术机制
ReAct 的实现依赖少样本提示(few-shot prompting)将 TAO 循环格式植入上下文,无需修改模型权重。
- 格式统一:Thought、Action、Observation 以固定前缀写入 prompt,模型通过少样本示例学会分角色输出。
- 工具调用解析:Action 行按预定义语法(如
Search[query]或Calculator[expr])生成,外部系统检测后执行并将结果以 Observation 形式拼回。 - 零/少样本即可运行:原论文使用 PaLM-540B 无需微调即可在多个基准上取得良好效果,降低了部署门槛。
- 上下文累积:每一轮 TAO 均追加到同一对话上下文,长任务会快速消耗 context window,需配合摘要或截断策略。
- 终止与保护:模型输出 Finish 时停止;工程部署中需额外设置最大步数(如 10–15 轮)防止无限循环。
实验基准与性能表现
原论文在四个基准上系统评估,覆盖多跳问答、事实核查与交互式决策任务。
- HotpotQA(多跳问答):结合维基百科搜索 API,ReAct 比纯 CoT 基线幻觉更少、解释性更强。
- FEVER(事实核查):主动检索证据,减少模型凭记忆猜测带来的错误。
- ALFWorld(室内环境决策):相较于模仿学习与强化学习基线,绝对成功率提升约 34%。
- WebShop(电商购物决策):绝对成功率较基线提升约 10%。
- 总体结论:推理与行动的协同效果优于单独使用任意一种,且人类可读的轨迹便于调试与干预。
主要变体与演化
ReAct 已成为 Agent 体系的「底层协议」,多种变体在其基础上扩展了能力边界。
- Reflexion(2023,MIT):在 ReAct 之上增加自我反思层,Agent 对失败轨迹生成语言反馈并更新记忆,下次尝试时规避同类错误。
- ReWOO(2023):预先生成完整的工具调用计划,减少串行等待,大幅提升推理效率。
- Plan-and-Execute:先用规划器分解子任务,再逐步以 ReAct 风格执行,适合长程、步骤明确的任务。
- Tree of Thoughts + ReAct:将 ReAct 与树搜索结合,探索多条推理-行动路径并择优,适合需要回溯的复杂推理。
- OpenAI Function Calling / Tool Use API:大模型厂商在 API 层原生支持结构化工具调用,本质上是 ReAct Action 步骤的标准化工程实现。
局限性
ReAct 作为基础范式仍存在若干内在约束,是后续研究的改进方向。
- 上下文长度瓶颈:多轮 TAO 的历史快速消耗上下文窗口,长任务容易超限,需要摘要或外部记忆辅助。
- 工具调用串行:每次只能调用一个工具并等待结果,无法并行执行多个查询(ReWOO 针对此点改进)。
- 错误难以自我纠正:一旦推理走偏,缺乏内置回退机制,后继 Reflexion 等框架针对此问题引入反思步骤。
- 依赖工具质量:Observation 的准确性完全取决于外部工具返回内容,工具失效或返回噪声直接影响结果。
- 提示工程敏感:少样本示例的格式与质量对性能影响显著,迁移至新任务需重新设计示例。
工程实践要点
在实际系统中落地 ReAct 时,有若干工程细节值得关注。
- 工具注册与描述:每个工具需提供清晰的名称、参数格式与用途说明,以便模型在 Thought 中正确选择并构造有效的 Action。
- 错误处理:当工具返回错误或空结果时,需将异常信息作为 Observation 返回,让模型自主决定重试或换策略。
- 最大迭代限制:应设置 TAO 循环最大轮次(如 10–15 轮),防止模型陷入无限循环造成资源浪费。
- 流式输出:支持流式显示 Thought 内容,可极大提升用户等待体验,透明展现「思考过程」。
- 可观测性:完整记录每轮 TAO 日志,是调试 Agent 行为、评估工具调用成功率与优化成本的关键基础。
常见误解
日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。
- 「边想边做边观察」
- 「Agent 赛道必提」
- 「跟 ReAct 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级概念高频查看详解 →
什么是 ReAct 模式?它如何解决 Agent 的推理与行动问题?
ReAct 交替生成推理(Thought)和行动(Action),观察结果(Observation)后继续,把链式推理与工具使用融为一体。
- 中级场景查看详解 →
Agent 如何在很多工具中正确选择该调用哪个?
清晰工具描述 + 少而正交的工具集 + 路由分诊 + ReAct 推理选择 + 失败回退。
- 中级概念查看详解 →
什么是 Agentic RAG?它相比传统 RAG 强在哪里?
Agentic RAG 让 LLM 自主决定何时、检索什么、是否再查,支持多步与多源,胜在复杂查询与可纠错。
- 中级场景查看详解 →
Agent 调用工具失败时应如何设计重试与回退?
区分错误类型:瞬时错误带退避重试,参数错误回灌让模型修复,持久失败走回退并把错误反馈给模型决策。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
