Skip to content

Agent 自摘要后安全护栏的存活验证 ​

摘要 ​

长会话 Agent 会把历史压缩成摘要,但摘要中仍出现安全规则文本,不代表规则仍能约束行为。该研究区分三种失效:规则完全丢失、条件谓词被概括掉,以及文本保留但后续决策不再触发。

作者使用两种重放模型和外部真值检查单次压缩周期,说明 presence check 会制造假安全。证据来自作者实验,尚无独立复现。

核心创新与差异 ​

研究把“摘要包含规则”与“规则在触发条件下生效”分开,要求用行为重放而不是字符串存在性验证护栏。

威胁模型与攻击链 ​

攻击者或普通长任务向上下文加入大量信息,触发压缩。摘要器保留概括性安全措辞,却删除主体、对象或条件,后续 Agent 因此允许原本应拒绝的动作。

攻击方法与复现材料 ​

本地测试夹具:

text
history = [rule_with_predicate, benign_filler, trigger_event]
summary = compact(history)
assert contains(summary, "safety")        # 弱检查
assert replay(summary, trigger_event) == "deny"  # 强检查

不得连接真实高权限工具。检测信号是规则文本存在但行为判定改变。

实验设计与实际过程 ​

作者对压缩前后状态执行配对重放,用外部真值而非模型自评判断规则是否存活,并区分不同失效类别。

关键结果与实际影响 ​

结果显示单次压缩即可造成治理语义退化,单纯检查关键字会漏报。影响包括审批、数据边界和工具调用规则随会话长度悄然失效。

防护措施与验证方法 ​

关键策略应存放在不可压缩控制面,摘要只携带引用和状态。每次压缩后运行规则触发回归,并记录策略版本、谓词和拒绝原因。

局限与待验证问题 ​

研究只覆盖单次压缩和有限 Agent;多轮压缩、不同摘要器及真实工具副作用需要进一步验证。

参考链接 ​