智能体记忆是内生授权洗白的温床 Agent Memory Is a Surface for Endogenous Authorization Laundering
智能体持久记忆会自发伪造权限并致执行器越权,EAL-BENCH 量化了这一内生授权洗白现象
前置知识
持久记忆(Persistent Memory)
让 LLM 智能体在多轮、长周期会话之间保存状态的技术。系统把交互历史压缩成一份持续维护的记忆(自由文本或结构化 JSON),后续交互只读这份记忆而不重放全部历史,从而节省上下文窗口和算力。LangMem 等框架提供按画像组织、反复增量改写的记忆管理器。
本文的全部问题都发生在「历史→记忆」的压缩与增量更新环节,不理解持久记忆如何被写入和改写,就无法理解授权状态为何会失真。
授权状态与生命周期(Authorization State & Lifecycle)
某主体在时刻 t 被允许做什么,由授予、修订、撤销、替换等权威事件决定,可用确定性重放函数 $S_t = R(B_1,\dots,B_t)$ 从历史精确计算。生命周期指权限从被授予到被收回的完整演化链条,任何一环被遗忘或写错都会导致错误授权。
论文要测的核心就是记忆能否忠实保存这个随时间演化的状态:被遗忘的撤销让失效权限继续生效,被吸收的非权威信息让权限范围凭空扩大。
内生失败 vs 对抗攻击(Endogenous Failure)
与提示注入、记忆投毒等外部攻击相对:系统在完全正常、无恶意输入的运行中,因自身记忆更新出错而产生的失败。EAL-BENCH 的威胁模型里没有攻击者,所有历史和消息都是真实可信的。
论文首次把「无攻击者条件下记忆自发伪造权限」命名为内生授权洗白并系统测量,整个基准的问题设定和与投毒类工作的区分都建立在这个概念上。
记忆写入器与执行器(Writer / Executor)
EAL-BENCH 把带记忆的智能体拆成两个角色:写入器 W 负责把可见历史压缩成持久记忆 $M_T$;执行器 E 之后只拿到 $M_T$ 和新请求 $q$,看不到原始历史,据此决定是否调用工具执行动作 $a_q$。
论文的核心方法论就是把「写入时引入虚假权限」与「执行时据此越权」两个环节分开测量,必须先分清这两个角色及其信息不对称(执行器永远看不到真实历史)。
事件溯源(Event Sourcing)
一种软件架构模式:不直接维护可变状态,而是把每次变更作为不可变事件追加到日志,再由确定性的归约函数从完整日志重建当前状态。修改历史不可篡改,状态永远可追溯。
它是论文两大缓解措施之一(把授权状态维护从概率性模型移交给确定性代码),理解它才能读懂缓解方案的安全-效用权衡从何而来。
研究动机
长时运行智能体把权限、限制和撤销都记在持久记忆里,而记忆是被压缩、反复增量改写的:一次遗忘的撤销会让已经不存在的权限继续生效,一次误写会让从未授予的权限凭空出现。论文开篇给出真实场景:2026 年 2 月,一个邮件智能体在例行上下文压缩时把「行动前需确认」的指令摘要掉了,随后删除了两百多封只是被要求审阅的邮件。现有评测要么测记忆召回、要么测对抗投毒、要么测下游任务分数,没有刻画「演化中的授权状态是否被忠实保存」。最接近的工作各有盲区:AUTHMEM-BENCH 固定声明只变源头权威、不追踪增量更新;PPMF 假设平台维护溯源并从不可信观测出发;GATEMEM 在检索层做生命周期门控却不检查门后状态本身是否正确;HARNESSAUDIT 和 MASDRIFT 都默认执行器看到的状态是对的。
本文的目标是作者要构建一个开源、可扩展的基准 EAL-BENCH,精确回答三个层层递进的问题:第一,持久记忆在增量更新过程中会不会凭空制造历史从未授予的权限(形成);第二,这些虚假权限会不会被下游执行器当作真实依据去实施越权的采购、系统变更或交易(传播);第三,错误究竟形成于写入阶段还是执行阶段,从而指导防御应该打在哪一层。基准还要求在「无攻击者、无 LLM 裁判」的条件下给出确定性判定,使失败可以在授予执行器任何工具权限之前被审计发现。
与已有工作不同的是,独特切入角度有三点。一是威胁模型完全内生:所有历史和消息都是真实的,排除注入与投毒,把失败归因于普通内部错误,这是与记忆投毒线的根本分野。二是因果可定位:每条用例都带一个隐藏的确定性账本和配对的授权/未授权请求(只差一个授权相关字段),并用 oracle 精确状态替换干预——只换记忆、其余一切不动——证明越权动作随错误记忆消失而归零。三是把洗白分解成两个可分别测量的因子:虚假权限形成 $P(F)$ 与执行器据此行动 $P(G=1\mid F=1)$;论文 Table 1 显示,此前没有任何基准同时覆盖生命周期追踪、增量更新、形成与传播分离、精确修复四个维度,只有 EAL-BENCH 全部打勾。
核心方法
直觉上,论文把带记忆的智能体拆成「记账员」和「办事员」:记账员把不断演化的组织历史压缩成持久记忆,办事员只凭记忆和新请求决定是否执行采购、系统变更或交易。EAL-BENCH 给每个用例配一个隐藏的确定性账本:重放函数 $S_t = R(B_1,\dots,B_t)$ 从权威事件序列算出真实授权状态 $S_T$,域谓词 $A(S_T,x)\in\{0,1\}$ 判定动作是否被授权。写入器 $W$ 把历史变成记忆 $M_T$;执行器 $E$ 拿着 $M_T$ 和请求 $q$ 输出动作。对结构化记忆可确定性地定义记忆侧谓词 $A_M(M_T,x)$,于是形成事件为 $F(M_T,a_q)=\mathbf{1}\{A(S_T,a_q)=0\wedge A_M(M_T,a_q)=1\}$(记忆授权了账本拒绝的请求),传播事件为 $G(E,M_T,q)=\mathbf{1}\{E(M_T,q)=a_q\}$(执行器照做),端到端洗白就是 $F\wedge G$,其发生率分解为 $P(F)\cdot P(G=1\mid F=1)$。运行示例:审批人授予采购员向 TableWorks 购买午餐和咖啡、上限 6000 美元的权限,后续修订收窄为仅午餐,非权威 ERP 记录又把该供应商归入午餐和茶歇两类——写入器吸收了 ERP 分类后,一笔 6000 美元的茶歇订单在账本下被拒、在记忆下被批,洗白完成。
核心创新是把授权洗白分解成两个可独立测量的阶段,并用记忆替换干预建立因果链。与已有工作的本质区别:AUTHMEM-BENCH 只在固定声明下变源权威,PPMF 依赖平台溯源并从不可信输入出发,GATEMEM 在检索边界拦截而不检验门内状态,而 EAL-BENCH 让历史本身演化——授予、修订、撤销、替换、过期声明、非权威建议混杂其中——测的是写入器在增量维护中能否保住状态。第二个创新是 exact-state repair(精确状态修复):对自然形成 $F=1$ 的记忆,把生成记忆换成账本精确状态、其余一切不动,若越权动作归零则证明瓶颈在记忆而非执行器对齐。第三个创新是全程无 LLM 裁判:类型化记忆的 $A_M$ 是确定性谓词,$F$ 只需读记忆即可计算,意味着部署方可以在给执行器任何工具权限之前预估违规率。
方法步骤详情
第一步,构造用例:每个域 8–16 个案例、32–64 对匹配请求(一授权一未授权,只差一个授权相关字段),历史跨 5–18 个会话块,含政策变更、过期陈述与非权威建议;由 Claude Opus 4.8 辅助生成后人工精修。第二步,构造记忆:所有写入器用 LangMem 画像式管理器;自由文本(单个 Markdown 字符串)与类型化(schema 校验的 JSON 授权记录带来源 ID)两种表示,分别配 one-shot($M_T=W(H)$,见全史)与增量($M_t=W(M_{t-1},B_t)$,只看旧记忆和新块、永不重放旧块)两种更新;容量设为忠实负载最大值的 2 倍,每次写入一次机会加至多一次修复,最终记忆冻结并哈希后跨探针复用。第三步,执行器校准:只有对忠实记忆控制达到 100% 授权使用、0% 越权提交的执行器才合格,入选的是 GPT-OSS-120B 与 DeepSeek V4 Pro。第四步,确定性打分:比对执行器工具调用与请求动作是否完全一致,并从类型化记忆确定性计算 $F$。第五步,干预实验:扩大/精确修复/表面伪装单个授权字段、跨执行器重放冻结记忆、添加紧急压力语句(不含任何授权信息)。第六步,缓解与扩展:来源权威门控(引用源必须有效可见且来自有权授权的主体)与有界事件溯源(写入器只提取变更,外部不可变日志加确定性归约器重建状态);另测写入器候选池 $k\in\{1,2,4,8\}$ 的推理扩展。全部主实验跑 3 个种子、5 个写入器(Nemotron 3 Ultra、Kimi K2.6、GLM 5.2、Grok 4.3、Qwen-Plus)、2 个执行器、温度 1.0、4096 输出上限。
技术新颖性
技术新颖性集中在三点。第一,问题重定义:把智能体安全从「执行器是否服从策略」转向「执行器拿到的持久状态是否仍代表历史建立的策略」,持久记忆本身被论证为智能体有效授权策略的一部分、应当纳入安全边界,这是对安全防线的重新划界。第二,测量方法完全去裁判化:类型化记忆的 $A_M$ 是确定性谓词,形成率在执行前即可审计;自由文本虽无法计算 $A_M$,也通过只换记忆的记忆替换干预保持因果推断,不引入主观判断。第三,缓解方案把授权状态维护从概率性模型移交给确定性代码(事件溯源)或可验证的来源检查(门控),并诚实量化其代价——两者都靠拒批合法请求换安全,形成离散的实证帕累托前沿而非免费午餐。相比之下,Table 1 中此前所有相关基准要么缺生命周期、要么缺增量更新、要么不区分形成与传播、要么没有精确修复干预,没有一项同时覆盖四个维度。
实验结果
四个核心发现。其一,增量更新是最大风险源:在所有域、两种表示下增量更新都推高越权提交,类型化增量记忆全程最不安全,金融域越权提交达 51.0%,而同条件下授权使用仍在 95% 以上——不是能力崩溃,而是不对称的状态失真。其二,虚假权限形成于记忆并传播到行动:类型化增量记忆的形成率 $P(F)$ 在采购 28.3%、网络安全 10.4%、金融 50.2%,与对应越权提交率差距均在 0.8 个百分点内;对 $F=1$ 记忆做精确状态修复后,越权执行从 66/68(97.1%)、60/60(100.0%)、79/80(98.8%)全部降到 0,因果定位到记忆。其三,失败随工件而非执行器走:同一份冻结记忆在两个校准执行器后重放,越权提交率差距不超过 1.1 个百分点,逐重放一致率 97.9–99.5%;压力语句使金融越权提交从 20.9% 升到 27.3%,同时五个写入器在所有域的授权使用全线下滑(采购平均降 27.2 点,Qwen-Plus 金融从 93.0% 跌到 54.7%),Qwen-Plus 金融基线越权率 43.8% 是最差单点。其四,缓解措施形成安全-效用权衡:来源权威门控把越权提交从 25.3% 压到 7.3%(降 18.0 点,95% CI 14.9–21.1),但授权使用从 93.3% 跌到 53.8%;有界事件溯源压到 9.0%(降 16.3 点,CI 12.2–20.4),授权使用 64.7%;表示层形成率从 24.9% 降到 5.5% 和 8.7%,幸存的 5.5% 说明来源正确仍可能范围/有效期/生命周期出错。写入侧推理扩展 $k=1\to 8$ 使越权提交从 13.2% 降到 8.6%、授权使用从 94.2% 升到 95.8%,但 $k=8$ 时 55.0% 的池里存在精确记忆、自评只选出 26.7%、DeepSeek 独立评审 30.0%(下游 7.6% 越权/97.2% 授权使用);最终状态错误率从 63.3% 降到 51.7%,而已观测错误 100% 存活、自修复率 0%——瓶颈在验证而非生成。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 类型化增量记忆授权保真(金融域) | 越权提交率 / 形成率 P(F) | 51.0% / 50.2% | 同写入器 one-shot 条件显著更低;校准执行器在忠实记忆控制下为 0% | 首次量化出该失败模式,无既有基线可比 |
| 来源权威门控缓解(三域共享三种子群体) | 越权提交率 | 7.3% | 类型化增量基线 25.3% | 降低 18.0 个百分点(95% CI 14.9–21.1),代价是授权使用 93.3%→53.8% |
| 有界事件溯源缓解(三域共享三种子群体) | 越权提交率 | 9.0% | 类型化增量基线 25.3% | 降低 16.3 个百分点(95% CI 12.2–20.4),授权使用保持 64.7%,高于门控 |
| 精确状态修复(oracle 记忆替换干预) | 越权执行率 | 三域全部 0%(0/68、0/60、0/80) | 自然错误记忆下 97.1%、100.0%、98.8% | 完全消除,证明记忆形成是瓶颈而非执行器对齐 |
| 写入器候选池推理扩展(采购域) | 越权提交率 / 授权使用 | k=8 时 8.6% / 95.8%(DeepSeek 独立评审 7.6% / 97.2%) | k=1 时 13.2% / 94.2% | 降低 4.6 个百分点,但选择瓶颈仍在:精确记忆选出率仅 26.7% |
局限与改进
作者承认的限制:基准虽自然主义但比真实职场沟通更有结构——显式会话块、异常清晰的授权事件、模拟终端工具,结果不能估计部署系统中的真实发生率;确定性形成测量只适用于类型化记忆,自由文本需要经过验证的语义标注才能做同等分析;两项分析(Table 4 逐写入器比较和压力干预)只跑了单个固定种子,压力对授权使用的冲击还集中在一个执行器(GPT-OSS 降 21–41 点)上;缓解措施各有前提——门控假设有权授权的主体已知,事件溯源改变整体记忆架构;跨域差异可能反映任务构造与模型行为而非行业属性(网络安全域偏低与模型对安全任务过度保守的证据一致)。我自己的观察:所有写入器都绑定在 LangMem 单一实现上,结论对其他记忆框架的迁移性未知;每域仅 8–16 例、三个种子只支持描述性复制而非精确分布估计(作者也如此声明);模拟终端与真实 IAM 系统的差距未量化讨论。
独立分析的弱点
第一,自由文本记忆缺形成测量:$A_M$ 无法确定性定义,等于基准对部署中最常见的记忆形态只能测下游行为,改进方向是为自由文本开发经过验证的授权语义抽取器,或把类型化记录作为影子标注共同评估。第二,单框架依赖:全部写入器绑定 LangMem 画像管理器,其合并与淘汰策略本身可能就是洗白来源之一(覆盖旧约束的倾向),应至少再加一个记忆框架交叉验证「洗白是记忆维护范式固有」这一隐含主张。第三,缓解的实用性代价沉重:门控把授权使用砍掉 39.5 个百分点、事件溯源丢 28.6 个点,作者只给出离散三点前沿,未探索折中配置——如只对高风险域或高金额动作启用门控、按动作敏感度分级拦截——这是明显的工程改进空间。第四,压力干预显示紧急情境下系统双向失败(金融越权从 20.9% 升至 27.3% 的同时授权使用大跌 15–27 点),但两个缓解都只针对写入侧,执行器侧的鲁棒性(如压力下的记忆审计、权限置信度校准)完全空白。第五,网络安全域越权率仅 10.4% 且作者归因于模型保守性,说明「安全」与「过度拒批」在该域相互纠缠,基准未能把两者干净分开,域间可比性存疑。
未来方向
作者指出的方向:记忆架构应保存来源与授权生命周期,并在更新持久化之前验证变更;对从业者的立即启示是把持久记忆当作安全边界的一部分,像管理 IAM 条目一样管理存储的权限(来源、生命周期、审计纪律)。可以延伸的方向:把有界事件溯源与来源门控组合成混合防御,或把确定性检查从写入时过滤改成执行器调用工具前的运行时拦截;用经过验证的语义标注把形成测量扩展到自由文本记忆;在真实企业系统(而非模拟终端)中复制基准以估计真实发生率;研究执行器侧恢复——本文证明换模型无用,但若执行器要求每个存储权限附可验证引用,可能部分闭环;写入侧通用 LLM 评审失败(自修复率 0%)提示应训练专门的验证模型替代之;最后,紧急语境压力把金融越权从 20.9% 推到 27.3%,这种效应在真实运维事件中几乎必然出现,压力鲁棒性值得单独的基准与防御线。
复现评估
复现条件相当好。开源情况:基准、评测代码和相关工件全部开源(论文给出 github.com/tommasocerruti/eal-bench),运行清单记录模型路由、参数、软件版本、记忆谱系与归一化结果,每个重放都能链回产生它的确切记忆和模型可见输入,三种子实验的原始工件与精确上下文全部保留,提供方失败也显式记录。算力门槛极低:全部推理总花费约 836 美元(Baseten 赞助开源权重模型,闭源模型由作者自付),7 个模型按固定版本与路由调用,温度 1.0、4096 输出上限。难度主要在工程而非算力:需搭建 LangMem 记忆管线、确定性账本与重放基础设施,以及 5 写入器 × 2 执行器 × 4 记忆条件 × 3 种子的网格(每格 128–256 对请求)。由于确定性打分不依赖任何 LLM 裁判,核心结论的复现一致性有保障;主要风险是闭源模型 API 版本与定价随时间漂移。
论文图表