教科书的 3 步 vs 真实的 N 步
ReAct 不止 Think-Act-Observe 三步,生产环境每轮还要做什么
本页解决的问题
先给结论「教科书的 3 步 vs 真实的 N 步」要解决的关键问题是什么?
ReAct 不止 Think-Act-Observe 三步,生产环境每轮还要做什么
让这个结论先证明自己值得留下。 把这一页当成决策工具,而不是需要背下来的定义。把概念连到一个真实任务、一个可观察结果,以及一个能改变你判断的失败上。
写下一个问题:试完这个方法后,你能用什么证据回答它?
结论听起来很完整,却没有检查最关键的假设。
教科书版 ReAct
⚙️ 真实生产版(单轮)
- 上下文压缩 — 对话越来越长,不裁剪就会超出窗口
- 权限校验 — 这个工具用户有没有权限调?参数合不合法?
- 并发调度 — 多个工具能同时跑吗?怎么协调?
- 错误处理 — 工具超时了怎么办?返回格式错了怎么办?
- 结果回写 — 执行结果要写回上下文、更新状态、触发通知
- 安全审计 — 记录每一步操作,以防出问题可追溯
「教科书版 ReAct」里的风险边界在哪里
「ReAct 不止 Think-Act-Observe 三步,生产环境每轮还要做什么」把安全问题从一句“请模型不要犯错”拉回到权限、数据和环境。真正需要保护的是:模型即使判断失误,系统也不能让错误变成不可逆的结果。
把模型建议和实际权限分开
在「ReAct 不止 Think-Act-Observe 三步,生产环境每轮还要做什么」涉及的流程中,要分别检查用户能要求什么、模型能建议什么、工具实际允许什么,以及谁有权批准写入或发送。网页、文档和工具返回值都可能携带不可信指令,不能因为它们看起来像说明就自动提升权限。
- 上下文压缩 — 对话越来越长,不裁剪就会超出窗口
- 权限校验 — 这个工具用户有没有权限调?参数合不合法
- 并发调度 — 多个工具能同时跑吗?怎么协调
安全设计必须包含失败和恢复
结合「ReAct 不止 Think-Act-Observe 三步,生产环境每轮还要做什么」做一次反向演练:加入错误输入、缺失凭证或迟迟不到的审批,确认系统会拒绝、暂停并留下可追踪信息,而不是继续执行到底。
从「教科书版 ReAct」走到「⚙️ 真实生产版(单轮)」
「教科书版 ReAct」先把问题落在「1 Think — 思考下一步该做什么 2 Act — 调用一个工具 3 Observe — 拿到结果,决定下一步 循环直到任务完成」上;到了「⚙️ 真实生产版(单轮)」,讨论继续推进到「逐步展开真实流程 3 教科书步骤 vs ? 真实步骤 每一轮循环中,那些看不见的步骤才是工程量最大的部分」。两段连起来,重点就不只是记住一个结论,而是看清它成立所依赖的条件。
把这条判断带到下一个场景
做安全判断时,把“模型想做什么”和“系统允许做什么”分开,逐个检查数据边界、工具权限、人工确认和失败后的恢复路径。
- 「教科书版 ReAct」:1 Think — 思考下一步该做什么 2 Act — 调用一个工具 3 Observe — 拿到结果,决定下一步 循环直到任务完成
- 「⚙️ 真实生产版(单轮)」:逐步展开真实流程 3 教科书步骤 vs ? 真实步骤 每一轮循环中,那些看不见的步骤才是工程量最大的部分
- 「最后的要点」:结果回写 — 执行结果要写回上下文、更新状态、触发通知
最后的「最后的要点」把讨论落到「结果回写 — 执行结果要写回上下文、更新状态、触发通知」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。
我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。
读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。
如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。
还没有这篇文章的讨论。