Agent 架构ReAct推理范式速答 · 约 5 分钟更新 2026-09-16

ReAct 是什么?它是怎么跑起来的?

一句话结论

ReAct 让模型交替输出「思考(Reason)」和「行动(Act)」:想一步该干什么、调一次工具、看一眼结果再想下一步,把推理过程和行动轨迹串成一个循环。

先这样答

ReAct 这个名字来自 Reasoning + Acting,出自 2022 年的同名论文,现在是 Agent 最基础的运行范式。它的做法是在提示词里要求模型按固定格式输出:先写一段 Thought(当前知道什么、下一步为什么这么走),再写一个 Action(调用哪个工具、参数是什么),系统执行工具后把 Observation(结果)拼回上下文,模型接着写下一个 Thought。这样想一步、动一步、看一眼,循环到得出最终答案。

它比单纯的思维链(CoT)好在哪:CoT 只在自己脑子里推,推错了没人拦;ReAct 每一步都能拿到外部世界的真实反馈,走岔了能被 Observation 拉回来。它比单纯调工具好在哪:Thought 把中间推理显式写出来,既提升了决策质量,也让整条轨迹可审计——出问题时你能看到它当时「在想什么」。

工程上要补一句:现在的模型很多已经把这种模式内化了,Function Calling 场景下模型原生输出工具调用,Thought 不一定显式存在,但「行动-观察-再行动」这个循环结构没变。真正落地时要注意的是上下文管理:循环多轮之后轨迹越来越长,要做裁剪或摘要,否则上下文先爆炸。

面试官会怎么追问

  • ReAct 有什么明显缺点? 对模型的格式遵从能力有要求,早期模型经常格式跑偏;循环轮数不可控,任务复杂时轮数和成本都涨;一步 Observation 噪音大时容易被带偏。
  • 怎么防止它绕着同一个错误打转? 加循环检测(连续几步动作和参数雷同就干预)、设置最大轮数、在关键节点插入反思提示让它评估当前路线。
  • ReAct 和 Plan-and-Execute 怎么分工? 边走边看、路径短的用 ReAct;目标明确、步骤多的先整体规划再分步执行,规划的骨架更稳。

回答的坑

  • 把 ReAct 讲成「一个框架的名字」。它是提示词层面的运行范式,LangChain 里那个 ReAct Agent 只是它的工程实现之一。
  • 不提 Observation 的作用。没有「结果喂回」这个环节,就不叫 ReAct,只是一次普通的工具调用。
—— 本题完 ——