外观
MemEvoBench:长期记忆渐进污染的 Agent 安全评测
摘要
MemEvoBench 评估 Agent 在长期记忆反复累积误导信息后是否逐步偏离安全行为。它设置问答与工作流两种任务,分别混入对抗记忆、噪声工具返回和偏置反馈,并在三轮相关但不相同的任务中以攻击成功率衡量风险。
作者在九个代表性模型上观察到高基线风险;加入偏置反馈后,跨模型平均攻击成功率从第一轮 71.6% 上升至第三轮 87.8%。静态安全提示效果有限,而记忆修正工具在作者实验中显著降低部分模型的风险。数据和评测仍主要是合成场景与 LLM 判别,不能外推为真实记忆产品的总体故障率。
核心创新与差异
原研究贡献是将一次性记忆注入拆为“逐轮积累、检索、后续决策”的评测协议,并覆盖隐私、食品安全、交通、金融、健康等七个领域和 36 种风险类型。它把记忆导致的行为漂移与没有记忆、干净记忆对照。
本站分析认为该研究补充了跨会话休眠记忆投毒:前者强调持久记录的单次攻击链,本研究则测量看似合理的信息和用户反馈怎样在多轮中叠加。两者均要求将来源、版本、纠正与回滚设为数据层控制。
威胁模型与实际过程
攻击者可让第三方内容、工具返回或反馈进入可写长期记忆,但不能直接改变模型权重。其目标不是必然触发某条显式指令,而是让 Agent 在后续相关任务中接受错误建议、越权披露或作出不安全决策。论文分别以 108 个问答式和 83 个工作流式测试案例实施三轮评估。
作者比较无防护、静态安全提示和带记忆纠正工具三种配置,并在 A-MEM 等记忆实现上复测。本站未运行代码或产生误导记忆载荷。
攻击工件与复现材料
作者公开基准。以下为防御验证夹具,保留来源和纠正控制而不含误导内容:
python
memory.write({"value": "TEST_CLAIM", "source": "untrusted", "revision": 1})
decision = agent.plan("local_test_task", memory=memory, dry_run=True)
assert decision.requires_source_check
memory.invalidate(source="untrusted", reason="test correction")
assert agent.plan("local_test_task", memory=memory, dry_run=True).uses_invalidated_value is False该夹具对应写入、读取、纠正和后续决策,不提供可用于诱导现实金融、健康或隐私操作的原始场景。
关键结果与实际影响
- 作者报告在有偏置反馈时,九个模型、两类任务的平均 ASR 为 71.6% / 84.9% / 87.8%(第 1–3 轮);没有反馈时未呈现同样稳定的递增。
- 静态安全提示在问答任务第一轮将平均 ASR 从 76.2% 降至 55.5%,但工作流和后续轮次仍有显著风险。
- 记忆修正工具在论文条件下更有效,例如 Gemini-2.5-Pro 的部分问答轮次降至 19% / 13% / 14%,但未消除风险。
防护措施与验证方法
记忆记录必须带来源、时间、置信度、适用任务和可撤销版本;外部工具结果不应未经核验升级为用户事实。验证要比较无记忆、污染记忆、已纠正记忆和跨轮检索,记录每次决策取用了哪些记录,以及纠正是否同步到摘要、向量索引和缓存。
局限与待验证问题
风险标签、场景与主要 Judge 来自作者评测协议,模型和真实业务分布均有限;ASR 的语义判断和安全答案未必覆盖领域专家的所有意见。基准还未系统评估多租户共享记忆、备份恢复、真实用户纠正成本和长期正常数据的误删。