工具型 agent 正在越来越深地接入真实基础设施:改调度器配置、写数据管道、操作对象存储、调整访问控制。这带来一类此前讨论不多的问题:agent 读取状态、生成行动、提交执行,这三步之间隔着时间,外部状态可能已经变了。怎么办?直觉答案是「检测到状态变过就拦截重来」。9 月 25 日批次的一篇 arXiv 论文(2609.29522,《Stale Does Not Mean Unsafe: Guard Precision for Tool-Using LLM Agents under Infrastructure State Races》)用一组干净的实验证明:这个直觉是错的,而且错得代价高昂。
一、问题定义:不是所有过期都危险
论文的第一步是把概念掰开。读到过期状态后提交,结果分三种:破坏安全谓词的竞态(invalidating race,必须拦)、保持谓词的竞态(predicate-preserving race,可以放行)、无关竞态(irrelevant race,根本不影响)。比如 agent 基于旧读取提交了一个写操作,期间外部把某个无关配置项改了——读是过期的,但提交完全安全。
核心问题变成:运行时守卫能不能精确区分这三类?拦多了,大量安全任务被白白放弃(论文称为可用性损失);拦少了,不安全提交漏网。这是安全系统里经典的精度与召回权衡,只是在 agent 场景第一次被系统量化。
二、实验设计:确定性模拟器与反事实重放
方法设计是这篇论文的隐藏亮点。确定性模拟器分离「可见状态」(agent 能看到的)与「权威状态」(真实生效的),在四个领域、16 个基础设施任务上注入五类非原子失效机制。最巧妙的是评测协议:冻结 agent 生成的行动提案,然后在每种守卫控制器下做反事实重放——同一批提案,换个守卫再跑一遍,全程不需要 LLM 当判官,结果完全可复现。
agent 侧用了三个本地托管量化模型:Qwen3-4B、Phi-4-mini、Gemma4-8B,共 3456 条轨迹,一张 GPU 跑完。这个成本水平意味着任何团队都可以复现整套评测。
评测对象覆盖三种提交时守卫粒度(全局纪元、读集版本、语义提交谓词)、多级验证组合,以及模型侧的门控信号。
三、核心结果:92 到 95 的误杀率
主结果可以用一句话概括:三种守卫都能消除不安全提交,但可用性天差地别。
守卫类型 拦截不安全提交 误杀良性竞态 安全完成损失
全局纪元 / 读集版本 全部 92-95% 至多 43%
语义提交谓词 全部 0% 0%
基于新鲜度的守卫(只要状态变过就拦)误杀了 92 到 95 的良性竞态,最坏情况下放弃 43 的安全任务完成——也就是说,为了拦住那不到 10 的真危险,把近一半的正常工作扔掉了。而完整语义谓词守卫一条都没误杀。
精度还依赖契约的完备性:删除安全契约中的单一条款,恰好会让对应故障族的不安全提交漏过去(至多 7.9)。契约是精度的来源,也是精度的边界。
四、模型侧信号全线失效
论文另一半 equally 重要的结论是:别指望模型自己当守卫。三重证据:
一,口头自信度校准极差,期望校准误差(ECE)约 0.37——模型说「我 90 确定」的时候,实际准确率离 90 很远。二,行动一致性门控(问模型「状态变化是否影响你的行动」)的过滤效果与随机门相当。三,加谨慎提示词(cautionary prompt)后,直接不安全率几乎没有变化——提示词工程在真实竞态面前不起作用。
还有更微妙的一层:被新鲜度守卫拦截后,agent 会重新读取状态再提交——但刷新后的读取仍然可能不完整(新竞态窗口又打开了),于是再次不安全提交。拦截-重试循环并不能收敛到安全。
最后是理论上限:当遥测降级时,一次隐藏的并发突变在观察上是完全干净的——任何基于观测的选择性策略都存在无法覆盖的盲区。这给所有「智能守卫」方案划了一条诚实的天花板。
五、工程启示:契约先行,别信自觉
落地到自建 agent 平台,这篇论文给出三条可执行结论。
第一,写安全契约。语义谓词守卫是唯一零误杀的方案,前提是每个敏感写操作都有显式的、声明式的安全谓词(比如「目标队列剩余容量大于等于本任务需求」)。这本质上是把 agent 的权限系统从「能不能调这个工具」细化到「提交时世界必须满足什么条件」。契约每缺一条,对应故障族就不设防。
第二,新鲜度启发式尽快退役。「检测到变化就重试」的实现在 demo 里没问题,量化数据显示它的机会成本高到不可接受。如果暂时写不出完整谓词,至少按对象粒度做读集校验,别用全局版本号一刀切。
第三,安全边界放在环境层。论文与上周末发酵的 agent 边界事件(UNCTAD 扫描、训练暂停调查)指向同一个结论:模型侧的判断、自信度、提示词都不是安全机制,是概率建议。真正的守卫必须是确定性的、外置的、可审计的——这一点上,系统社区几十年的并发控制积累(谓词、版本、纪元)原封不动地适用,只是客户端从进程换成了模型。
一句话总结:过期的读取不等于不安全的提交,安全的提交也不需要最新的读取——需要的是一个在提交时刻仍然成立的契约。Agent 时代的并发控制,从写第一条谓词开始。