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)、ReWOOCRITIC 等在 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 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    ReAct:推理与行动的循环

    让大模型边思考边行动,理解 ReAct 范式如何提升 Agent 能力

  2. 2

    AI Agent 入门:从概念到实现

    理解 AI Agent 的核心组件:感知、规划、记忆和工具调用,以及企业落地实践