react_loop零基础约 60 分钟
3
ReAct:把 Agent Loop 写成可检查的步骤
参考:来源 A · Google
学完你能做到
- 手写出 ReAct 循环的六个字段
- 理解"工具选择"发生在哪一步
- 知道为什么要记录工具调用、观察结果和停止原因
上一节说编排层是个循环,但循环里具体填什么? 给了一个非常具体的答案:每一轮填六个字段。
下面这个演示可以一步步点,建议课堂上投屏点一遍,比讲十分钟有用。
用户问:「上周本地气温最高是哪天?那天下雨了吗?」
- Question问题
上周本地气温最高是哪天?那天下雨了吗?
用户的原始问题,随提示词一起交给模型。这一步不是模型生成的。
1 / 7
这个演示里藏着三个考点
- 工具选择在 Action 这一步。 调哪个工具是运行时才决定的,不是提前写死的。
- Observation 是你的代码填的,不是模型生成的。 学生最容易搞混这一点——前四个字段是模型写的,Observation 是真实执行结果。
- 中间四步可以循环。 第一次没查够,就再来一轮。这是 agent 能处理复杂问题的原因。
为什么要保留可检查的中间状态
先建立直觉
像快递物流记录。你不需要看到员工脑中每个念头,但需要知道包裹到过哪个站、谁处理过、为什么退回。出问题时才能定位是哪一环。
案例推演:用 ReAct 找出“数字对了、单位错了”的答案
Agent 查询财报后回答“收入增长 18%”,但原文是 18 个百分点。把思考、动作、观察混在一段文字里,很难发现误读发生在哪里。
本节追问:显式的 Thought—Action—Observation 如何让错误可定位? 先不要急着看结论。沿着下面四步,逐项区分输入、决策、证据和失败信号。
| 阶段 | 本步要做的决定 | 什么算证据 | 最常见的失败 |
|---|---|---|---|
| Reason | 写出需要核对的指标、时期和单位 | 决策指向一个可验证问题 | 先形成结论再找证据 |
| Act | 调用财报读取工具定位表格与脚注 | 动作参数包含文档和页码范围 | 搜索摘要后直接作答 |
| Observe | 保存原始值、单位与上下文句 | 观察来自工具而非模型补写 | 把自己的推断写成工具结果 |
| Reflect | 比较问题、证据与结论并决定结束或再查 | 单位和比较基准均通过检查 | 数字相同就忽略语义边界 |
阅读方式:先遮住后两列自己回答,再用“证据”和“失败”两列检查理解。
常见误解
要求模型公开一大段“思维链”
实际上
可观察症状:文字更长,却仍未绑定真实动作与观察。
更可靠的修复:记录可审计的决策摘要、工具调用和原始观察,不依赖私密思维过程。
案例工作坊 · 建议真正动手完成
25 分钟- 把财报问题写成两轮 ReAct,每轮只允许一个动作。
- 标出 Observation 中绝不能由模型自行改写的字段。
- 为单位不一致设计一个终止前检查。
查看参考答案
ReAct 的工程价值是把决策、外部动作和真实观察分开,使循环可检查;重点不是暴露冗长内部思维,而是让证据和状态转换可见。
迁移检查:换一个场景还会不会
以下哪句最适合作为 Observation?
检查一下
ReAct 循环里,哪一个字段的内容不是模型生成的?
为什么 Action 的选项里应该包含"什么都不调"?