外观
有状态动作前控制的组合与重新判定
摘要
Agent 执行动作前可能同时检查权限、资源和证据。One Gate Is Not Enough 说明,多个门禁不能简单并排调用:一个门禁的修复会改写动作、证据或资源,另一个门禁此前的“允许”结论随之失效。安全编排器必须在每次修复后重新执行所有受影响门禁,并处理修复顺序不交换、否决优先级和终止条件。
作者用两个合成零售工作流、30 个预注册 seed 和确定性 checker 验证该机制。有限状态格包含 125 个点,共检查 17,151 个条件;另测试 243 个非交换网格点和 200 个网格外样本。CH1–CH5 在两个工作流的全部 seed 中通过,CH6 只在 W1 成立、在 W2 不成立。该研究是可复现的机制演示,不是现实 Agent 平台的缺陷率测量。
核心创新与差异
原研究贡献:论文把动作前控制拆成授权(authority)、资源(resource)和证据(evidence)三类有状态动作前控制(SARC),并给出状态转换语义。它重点分析证据替换(evidence substitution)、资源改道(resource downroute)、治理缓冲区污染(governance buffer contamination)、硬否决(hard veto)与加权聚合(weighted aggregation),证明修复后沿用旧判定会产生组合错误。
本站分析:已有 PhantomPolicy 和 AUTHGRAPH 关注单个执行门禁能否获得正确状态或来源。本文新增的是控制之间的依赖:即使每个门禁单独正确,修复顺序和缓存判定仍可能让组合结果错误。主要修复责任在运行时策略编排器。
威胁模型与失效链
输入可以来自用户、第三方内容或上游 Agent。攻击者不必绕过某个具体门禁,只要让请求触发多个会改写状态的修复器,就可能利用旧判定与新状态之间的不一致。
- authority gate 判定原动作可执行,并缓存
ALLOW。 - resource gate 发现资源风险,将动作改写到另一路径或替换资源。
- evidence gate 又替换证明材料,或者把证据写入共享治理缓冲区。
- 编排器沿用步骤 1 的旧结论,执行一个从未经过完整门禁组合检查的新动作。
- 如果修复器继续相互触发,系统还可能循环、振荡或在超时后 fail-open。
攻击方法与复现材料
作者公开了 sarc-suite-one-pass 和 Zenodo 归档。下面是本站依据论文状态语义重构的最小状态机,用于本地验证“修复后重新判定”,不调用真实工具。
python
state = load_fixture("synthetic-retail.json")
seen = set()
while True:
digest = canonical_hash(state)
if digest in seen:
return BLOCK("remediation cycle")
seen.add(digest)
results = [gate.evaluate(state) for gate in ordered_gates]
if any(r.decision == "VETO" for r in results):
return BLOCK("hard veto")
if all(r.decision == "ALLOW" for r in results):
return DRY_RUN(state.action)
state = apply_one_remediation(state, results)
# 不缓存旧 ALLOW;动作、证据或资源变化后重新跑全部相关 gate预期结果是每个最终动作都对应同一状态版本下的完整判定集合。检测信号包括状态摘要重复、旧判定引用旧版本、修复后 gate 集合不完整,以及不同执行顺序给出不同终态。
实验设计与实际过程
论文实验是作者构造的合成 workflow,不含模型调用。两个工作流 W1/W2 配合 30 个预注册 seed,测试 CH1–CH8。有限格枚举 125 个状态点,checker 共执行 17,151 次检查;非交换性测试覆盖 243 个网格点及 200 个网格外样本。
基线是只运行一次或沿用旧结论的 one-pass 组合。比较项包括 remediate-regate、hard veto 与 weighted aggregation,以及不同 evidence/resource remediator 顺序。指标是性质是否满足、顺序是否交换、是否终止和污染是否传播,而不是模型准确率。
关键结果与实际影响
- CH1–CH5 在两个工作流的 30/30 seed 中均通过,说明所测重新判定与状态依赖性质可由 checker 稳定复现。
- CH6 在 W1 的 30/30 seed 中成立,但 W2 没有满足论文预期。该负结果说明控制组合性质不能从一个 workflow 直接外推到另一个。
- 非交换性主网格覆盖 243/243 个组合;网格外初次报告 144/200,固定 seed 后为 145/200。这个差异也说明随机性和固定工件版本必须进入复现记录。
- 17,151 次 checker 通过只能证明有限状态空间中的实现性质,不是任意 Agent 运行时的形式化保证。
如果生产系统缓存门禁结果,修复动作又能改变参数、证据或资源,最终执行可能没有获得完整授权。事故调查也会因判定和执行引用不同状态版本而失去可追溯性。
判定新鲜度:检查正确也可能在执行时过期
Approved Too Late把旧判定问题扩展到环境自身变化:LLM Guardrail 在检查时给出正确允许结论,但系统在动作派发前已经演化,使该结论在使用时失效。作者在五个可复现的自适应系统环境中固定动作并重放轨迹;当统一向后偏移八个模拟步时,全部候选的判定变化率为 5.3%–48.4%,显示只用判定年龄不能跨环境设定统一安全窗口。
论文提出 Freshness-Bounded Shield(FBS),依据安全侧裕量估计每份允许结论的有效期,并在执行前拒绝已超出有效期的候选。该证据与本文“状态改变后重新判定”共享首个失效控制:允许结论必须绑定被检查状态,而不是成为可无限复用的令牌。生产验证应把环境版本、判定时间、允许有效期和执行时间写入同一记录,并同时报告过期捕获、误阻断和额外延迟;五个模拟环境的结果尚无独立复现。
跨迭代状态与运行时隔离
三项研究从不同方向说明,状态边界必须由 Runtime 而非对话历史维持。Safety Does Not Compose把有害目标拆到多次表面良性的循环迭代中,提出不衰减安全状态与不可逆动作累计上界;Reassembling Distributed Risk用轨迹条件动作生成器在两个 Agent 安全基准、三个模型家族和八个留出工具域上重新聚合分散风险;StepGuard在动作执行前做步骤级监督,作者报告其开放权重 Guard 模型平均准确率最高、与 GPT-5.4 相当。三者的可证伪共同点是:只判断当前一步会漏掉跨轮累计风险,但轨迹模型或学习式 Guard 仍受训练分布、状态摘要和未见工具域限制,不能替代确定性授权与动作预算。
另三项工作补充运行时实现条件。Logos用跨进程总线隔离 Agent 插件和恢复执行,并测量进程故障的影响范围与重复副作用;String按来源限制远程 Markdown 页面权限,并禁止调用者文本展开存储秘密;GOD为 Agent 社会提供本地治理、观测、定向干预和可移植审计控制室。An Enclosed Mode Is a Gauge Choice还指出,代码世界模型在采样门禁不可达区域可能产生不可证伪错误,并比较利用代价与维度匹配缓解。它们都是单篇作者原型、尚无独立复现;隔离、治理 UI 或采样覆盖只有在所有副作用都经过同一受信 Runtime 时才构成控制证据。
跨组件安全上下文连续性
CONTINUITY 将同一问题扩展到来源追踪、授权、策略执行、协议适配器与最终执行器之间的组合:每个组件以 assume-guarantee contract 声明前提和保证,并用签名根授权、来源承诺、角色绑定转换收据、受限类型化释放、转换见证及效果绑定许可维持从指令到副作用的安全上下文。其参考验证器覆盖四个应用域中的 32 类跨层故障;在 128 个故障—领域类的 2,560 个参数化攻击实例中,完整配置没有提交有害外部效果,同时完成全部 700 个良性任务,并将 200 个歧义案例全部升级处理。该结果来自确定性故障注入套件,证明的是作者合约与验证器在所测状态空间内保持上下文,不代表未建模组件、旁路副作用或生产并发下不存在漏洞。
防护措施与验证方法
- 版本化判定:每项 gate 结果绑定动作、证据、资源和策略版本;任一依赖变化立即使旧结果失效。
- 依赖驱动重算:显式声明每个 remediator 的读写集合,只重跑受影响门禁,同时保留完整性断言。
- 循环与预算控制:状态摘要去重、最大修复步数和总时限必须 fail-closed;分别记录循环、超时和人工升级。
- 否决优先:高影响动作优先使用 hard veto。weighted aggregation 需要验证低权重风险不能被多个弱通过项抵消。
- 顺序测试:对同一 fixture 交换 remediator 顺序,比较最终动作、证据和资源;差异必须进入策略设计,而不是依赖偶然调用顺序。
局限与待验证问题
证据等级为 moderate。公开工件提高了可复核性,但论文只测试两个合成工作流、两个具体 remediator 及幂等、有界的一次修复。CH6 的跨工作流失败也限制了理论外推。
尚未证明任意 remediator 的终止性、confluence、并发一致性或跨 Agent 委托语义。生产验证还需加入异步工具结果、策略热更新、人工审批、重试和部分失败,并测量重新判定的尾延迟与误阻断率。
参考链接
- One Gate Is Not Enough: Composing Stateful Pre-Action Controls for Agentic AI
- sarc-suite-one-pass
- Zenodo:SARC Suite One Pass
- Approved Too Late: Verdict Staleness in LLM-Guarded Self-Adaptive Systems
- Logos: An Agent Harness on a Cross-Process Bus
- An Enclosed Mode Is a Gauge Choice
- String: An Agentic OS Where Every App Is a Markdown File
- GOD: A Real-Time Control Room for Agent Societies
- Safety Does Not Compose
- Reassembling Distributed Risk
- StepGuard