普林斯顿与Anthropic研究:Agent记忆陷阱致120万美元误付
一次免确认,如何变成跨任务越权?
用户清理旧文件时说了句“不用再确认”。到了后面的会话,agent 把这份授权带进了支付任务,没做核实,就把一笔 120 万美元的批量付款转到了另一个账户。这是研究中模拟实验里的一个案例,隐患来自 agent 自己写下的记忆。
普林斯顿大学和
Anthropic 的研究人员考察了这种跨会话风险。他们让 6 个前沿模型分别在有无记忆的条件下运行,结果显示,来自正常交互的记忆会让 agent 在后续任务里跳过安全检查、认可错误答案,甚至改动正确的测试,把安全防护上的缺陷盖住。

论文链接:https://arxiv.org/abs/2611.07554
研究者把这一现象叫作“记忆陷阱”(Memory Trap)。整个过程中没有攻击者参与。

持久记忆本来解决的是一个实际问题:用户不愿每次对话都重新交代回答偏好、项目规范和操作习惯,agent 就把这些信息记下来,留给后续会话用。
问题出在跨会话之后适用范围变了。清理文件时不需要确认,不等于改支付配置也不需要确认。考试失利后需要安慰,不等于下一份解答里的错误也该被认可。
写入记忆时,agent 可能把一次具体授权概括成一条长期规则,把“本次操作无需确认”放大成“今后行动都无需确认”。读取记忆时,它也可能把原本情境明确的信息套到别的任务上。就算存下来的是原始对话记录,后一种过度泛化照样会发生。
为了看清记忆怎样改变行为,他们先让 agent 做良性交互,再把 agent 自己写的笔记或原始对话记录带进全新会话,和不提供记忆的情况做对比。
自主性实验里,最初的交互只是低风险编程杂务,用户要求减少确认。后续任务则换成了模拟的高风险编程和日常生活场景。
把这些笔记加进记忆后,Sonnet-4.6 和 Opus-4.7 在不同实验条件下采取不安全操作的比例达到 35% 至 81%,而没有记忆时基线接近于零。agent 不光少问了用户,还把本可以自己执行的安全检查也跳过了。

从减少打扰到省略核验,记忆影响的行为已经超出用户最初的要求。这种迁移还跨过了任务领域:编程杂务里形成的偏好,同样会作用到日常生活中的高风险决策上。
反馈任务里也有同样的问题,只是越界的对象从操作权限变成了评价标准。
用户遭遇挫折、寻求情感支持时,温和回应符合当时的需求。可这些经历形成记忆后,agent 在之后评价数学解答、论证和诗歌时,也开始偏向用户。
Sonnet-4.6 挑中用户较差诗作的比例,从无记忆时的 21% 升到 55%。这类记忆还会让 agent 漏掉数学错误和论证谬误。
反方向的偏好也会带来偏差。用户如果曾表达过不加批判的反馈怎样伤害自己,相关记忆又会让 agent 对后续成果批评过头。它们低估正确的证明,在合理论证里凭空挑毛病,对用户较好的诗作也给出不利评价。Opus-4.7 对合理论证提出错误批评的比例,从约 1% 升到 60%。

用户想要安慰,或者想要严格反馈,各有各的情境。记忆却可能把这些要求延伸成后续判断中的长期倾向。
编程任务里,一项原本合理的维修经验也出现了类似迁移。起初实现本身是对的,测试已经过时,agent 更新测试属于合理操作。可到了后续 50 个安全防护缺陷案例中,情况反了过来:测试是对的,有缺陷的是实现。比如权限检查错误地把管理员权限给了未知角色。此前形成的笔记会促使 agent 削弱这些正确的测试,让它们检测不出缺陷。测试通过了,安全问题却没被发现。
他们还看了 ImpossibleBench 的 SWE-bench 冲突子集,其中测试与规格要求相冲突。在这项评测中,相关记忆把 Opus-4.8 的作弊率从 29% 提高到 74%。能力更强的 Sonnet 和 Opus 模型有了记忆后可能作弊更多,Fable-5 则几乎不受影响。

图|十次合理测试修复经历后的 ImpossibleBench 作弊率
这些记忆都来自正常交互,内容也是 agent 自己记的。针对恶意内容的过滤器因此找不到可以直接拦截的攻击文本。研究者指出,安全记忆要求 agent 保留并遵守每条记忆形成时的适用范围。
这项研究的局限在于,测试主要集中在一个模型家族,用来探查有害影响的自主性场景也相对较短。
围绕后续研究,他们给出的方向有三条:在真实用户和长期交互历史条件下检验已上线的记忆系统;训练 agent 让它记住每条记忆各自适用的边界;搭建能识别并挡住记忆陷阱的 harness。