智能体入门课
react_loop零基础60 分钟

3

ReAct:把 Agent Loop 写成可检查的步骤

参考:来源 A · Google

学完你能做到

  • 手写出 ReAct 循环的六个字段
  • 理解"工具选择"发生在哪一步
  • 知道为什么要记录工具调用、观察结果和停止原因

上一节说编排层是个循环,但循环里具体填什么? 给了一个非常具体的答案:每一轮填六个字段。

下面这个演示可以一步步点,建议课堂上投屏点一遍,比讲十分钟有用。

用户问:「上周本地气温最高是哪天?那天下雨了吗?」

  1. Question问题

    上周本地气温最高是哪天?那天下雨了吗?

    用户的原始问题,随提示词一起交给模型。这一步不是模型生成的。

1 / 7

这个演示里藏着三个考点

  1. 工具选择在 Action 这一步。 调哪个工具是运行时才决定的,不是提前写死的。
  2. Observation 是你的代码填的,不是模型生成的。 学生最容易搞混这一点——前四个字段是模型写的,Observation 是真实执行结果。
  3. 中间四步可以循环。 第一次没查够,就再来一轮。这是 agent 能处理复杂问题的原因。

为什么要保留可检查的中间状态

先建立直觉

像快递物流记录。你不需要看到员工脑中每个念头,但需要知道包裹到过哪个站、谁处理过、为什么退回。出问题时才能定位是哪一环。

案例推演:用 ReAct 找出“数字对了、单位错了”的答案

Agent 查询财报后回答“收入增长 18%”,但原文是 18 个百分点。把思考、动作、观察混在一段文字里,很难发现误读发生在哪里。

本节追问:显式的 Thought—Action—Observation 如何让错误可定位? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。

每一步都要回答:看到了什么?为何这样决定?怎样证明? 1 Reason 写出需要核对的指标、时期和单位 观察 → 决策 → 留证据 2 Act 调用财报读取工具定位表格与脚注 观察 → 决策 → 留证据 3 Observe 保存原始值、单位与上下文句 观察 → 决策 → 留证据 4 Reflect 比较问题、证据与结论并决定结束或再查 观察 → 决策 → 留证据 完整案例链:不是记住名词,而是能够用证据作出下一步决定
四步案例推演。手机上可左右滑动查看;每个箭头都代表一次需要证据支撑的状态转换。
阶段本步要做的决定什么算证据最常见的失败
Reason写出需要核对的指标、时期和单位决策指向一个可验证问题先形成结论再找证据
Act调用财报读取工具定位表格与脚注动作参数包含文档和页码范围搜索摘要后直接作答
Observe保存原始值、单位与上下文句观察来自工具而非模型补写把自己的推断写成工具结果
Reflect比较问题、证据与结论并决定结束或再查单位和比较基准均通过检查数字相同就忽略语义边界

阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。

常见误解

要求模型公开一大段“思维链”

实际上

可观察症状:文字更长,却仍未绑定真实动作与观察。

更可靠的修复:记录可审计的决策摘要、工具调用和原始观察,不依赖私密思维过程。

案例工作坊 · 建议真正动手完成

25 分钟
  1. 把财报问题写成两轮 ReAct,每轮只允许一个动作。
  2. 标出 Observation 中绝不能由模型自行改写的字段。
  3. 为单位不一致设计一个终止前检查。
查看参考答案

ReAct 的工程价值是把决策、外部动作和真实观察分开,使循环可检查;重点不是暴露冗长内部思维,而是让证据和状态转换可见。

迁移检查:换一个场景还会不会

以下哪句最适合作为 Observation?

检查一下

ReAct 循环里,哪一个字段的内容不是模型生成的?

为什么 Action 的选项里应该包含"什么都不调"?