ReAct

别名:Reason + Act / Reasoning and Acting

把推理和工具行动交替进行:思考下一步、调用工具、观察结果,再继续或回答。

更新于 2026/11/08
Agent推理工具

一句话定义

ReAct 是 Reason + Act 的交替循环:模型先写出下一步思考(Thought),调用工具(Action),读取观察(Observation),再决定继续还是给出最终回答。

为什么需要它

纯 CoT 只在模型内部推理,容易凭空编造;纯工具调用又缺少规划。ReAct 把“想”和“做”结合,用外部观察纠正推理,适合搜索、数据库、代码执行等任务。

怎么工作

  1. 根据目标生成下一步 Thought。
  2. 选择并调用工具,传入结构化参数。
  3. 把 Observation 写回上下文。
  4. 判断证据是否足够;不够则回到 1。
  5. 足够时输出 Final Answer。

实现上通常用系统提示约束 Thought/Action/Observation 格式,遇到 Final Answer 停止。工具选择靠 function schema/描述,参数校验和错误码要回填。评测看任务成功率、步数、工具调用准确率和成本;生产环境要日志、轨迹和权限。ReAct 与 RAG 结合时,检索本身也是一种 action。

ReAct:思考 → 行动 → 观察

关键取舍

  • 外部观察能减少幻觉,但工具错误会污染后续推理。
  • 每步都调用模型/工具,延迟和成本高于单次生成。
  • 需要最大步数、超时和失败重试,避免死循环。
  • 工具描述和返回格式比模型大小更影响成功率。

常见误区

  • ReAct 等于 CoT:ReAct 有外部动作和观察。
  • ReAct 一定比 CoT 好:没有合适工具时反而更慢。
  • 工具返回一定可信:错误/过期数据会被模型当真。
  • 步数越多越可靠:更多步骤也意味着更多错误累积。

用在哪里

  • 搜索问答、数据分析、代码修复、运维排查。
  • 需要外部证据和动态决策的 Agent。
  • 工具边界清晰、失败可回滚的场景。

相关概念