Agent 循环坏在生产库里1×0:005:550:08开场0:23事件播报1:23技术拆解3:01工程意义4:08落地建议5:22收尾0:08主播如果你的 Agent 在测试环境里每次都能跑通,上线后却重复扣款、丢掉审批、或者从过期记忆里继续做决定,先别急着骂模型。今天这期讲一个更朴素的问题:Agent 循环到底把状态放在哪里。0:23主播七月一日,Cockroach Labs 发了一篇长文,标题是「Why Agent Loops Fail in Production」。它的判断很直接:生产里的 Agent loop 出问题,很多时候不是推理能力不够,而是每一轮观察、行动、评估之间,数据库没有守住一致状态。0:41主播这篇文章把 Agent loop 定义成一个反复执行的工作流:观察状态,决定下一步,调用工具,评估结果,然后继续循环,直到任务完成。麻烦在于,一旦它开始改客户记录、触发业务流程、等待人工审批,就已经从「问答」变成了会写生产系统的软件。1:00主播同一周的公开材料也在指向这个方向。Google Developers Blog 介绍 ADK for Go 二点零时,把图工作流、人类审批、可恢复执行和统一节点运行时放在核心位置。n8n 的七月一日文章也把验证、错误恢复、上下文管理、治理和成本控制列成生产级 Agent 的设计模式。1:23主播把这些材料放在一起看,重点不是「哪家框架更好」。重点是 Agent 终于暴露成一类长事务系统。一个模型可以在当前这一步做出正确判断,但如果它读到的是半写入状态,或者重试时又把已经落库的动作做了一遍,正确推理也会产出错误业务结果。1:44主播Cockroach Labs 列了七类故障,我挑四个最容易落地的讲。第一类是没有事务边界。比如 Agent 先把任务标成完成,再写结果记录,中间失败了。下一轮重试看到任务状态已经变了,就可能跳过结果,或者把写入重复执行一次。2:02主播第二类是坏读数往下游扩散。Agent loop 常把上一轮输出当成下一轮事实,验证 loop 又会把评分写回历史。如果其中一次读取发生在别的流程还没写完的时候,错误不是立刻炸掉,而是变成看似正常的输入,越跑越难回滚。2:20主播第三类是审批状态丢失。很多团队把「等待人类确认」理解成界面问题,其实它是恢复问题。进程重启以后,系统还知不知道卡在哪一步、等谁审批、审批前的上下文是什么?如果这些只在应用内存里,Agent 不是卡住,就是带着不完整信息继续跑。2:39主播第四类是审计缺口。普通日志能帮工程师 debug,但它不等于可追责记录。生产 Agent 需要知道哪一个 Agent、用什么权限、基于哪一版数据、改了哪一行。Cockroach Labs 的建议是把审计做成数据库层面的追加记录,再配合权限控制,让 Agent 自己不能改掉这些记录。3:01主播这会改变团队评估 Agent 平台的方式。过去我们问的是模型会不会调用工具、会不会反思、能不能多 Agent 协作。现在还要问:每一次工具调用有没有幂等键?写入和评分是不是同一个事务?暂停点能不能恢复?Agent 的数据库角色能碰到哪些表,能不能碰备份?3:22主播LangChain 六月的「The Art of Loop Engineering」把 loop 分成四层:基础 Agent loop、验证 loop、事件触发 loop、再到根据 trace 改进系统的 hill climbing loop。Cockroach Labs 这篇文章补上的,是这些 loop 共同依赖的地基:历史、状态、权限和审计不能只是框架里的对象,它们要能经得住并发、重试和崩溃。3:48主播成本也会被牵连进来。Splunk 同一天写 Agent Tokenomics,说一个十五词请求可能在多步循环里烧掉几万 token,因为每一步都重新带上指令、历史、工具 schema 和返回结果。状态管理差,不只会让结果错,还会让循环多跑、上下文变胖、账单变难看。4:08主播如果你们正在把 Agent 接到生产系统,我建议先做一次「状态走查」,不用先换框架。把一次完整任务拆成观察、计划、工具调用、写入、验证、人工审批、完成这几段,然后逐段标出哪些数据会被读,哪些会被写,哪一步失败后会重试。4:27主播第二步,给高风险写入加事务和幂等。凡是「状态更新」和「解释它的结果记录」必须一起成功的地方,都不要分开写。凡是工具调用可能被重试的地方,都要有幂等键或唯一约束,不要靠提示词提醒模型「别重复」。4:45主播第三步,把人工审批当成可恢复状态。审批请求、当前步骤、输入快照、决策结果,都应该落到持久表里。进程重启以后,系统能查出还有哪些流程在等人,等的是哪个决定,而不是让运维去翻日志猜。5:04主播第四步,缩小 Agent 的爆炸半径。让 Agent 用专门的数据库角色,只拿完成任务所需的最小权限。尤其别让它同时拥有生产写权限和备份删除权限。模型再聪明,也不该拿着一把能把恢复路径一起删掉的钥匙。5:22主播今天可以带走的判断是:Agent loop 越像生产软件,可靠性就越不像提示词问题。提示词决定它想怎么做,数据库决定它做错、做重、做到一半停掉以后,系统还能不能回到可解释的状态。明天你看一条新的 Agent 框架公告,可以先问一个很土的问题:它的状态,真的落稳了吗?