AI Pulse

智能体只学被复现的修改,毒代码暴露 0/30

复用前先证明:只向智能体展示后续会话复现的内容,可防止投毒技能进入程序性记忆 [R]

关于智能体程序性记忆中投毒问题的小型案例研究,所有数据已公开。

设置:一个编码智能体从测试通过的会话中学习技能。一个学习会话被投毒(新增一个文件、添加一行无关代码,或将一行毒代码融合进真实修复中),随后在同一任务上运行三个干净会话。然后对每个实验臂运行 5 个计分会话,使用 Claude Haiku 5.5 和 Sonnet 5.5,并配有一个包含 187 项行为检查的隐藏验证器。

实验臂:无记忆、重放记录的编辑、朴素记忆(保留每个通过的会话,技能由 Mem0 的搜索选择),以及“复用前先证明”(只有当后续两个会话复现了该技能的更改并通过测试时,该技能才被启用,且智能体只看到这些会话也写下的那些行)。

结果:

- 重放:30/30 个仓库中重新引入了毒代码,且所有测试均通过。
- 朴素记忆:在 3/30 个会话中,毒代码暴露给了智能体。
- 复用前先证明:在 0/30 个会话中暴露,包括融合毒代码通过步骤级检查、只有行级过滤才能将其移除的情况。

局限:单一任务,每单元 n=5,p≈0.24(不显著),没有模型实际应用它所看到的毒代码(因此测量的是暴露而非危害),规则在同一任务上调整过。放置在仓库本身的毒代码会使该方法失效;该失败案例已写入论文。

论文:[https://thewariend.com/papers/proof-before-reuse.pdf0

代码和逐会话记录:[https://github.com/TheWariend/MuscleMemory1

开放问题:行级复现是否是学习技能的一个合理信任信号,还是它只是奖励了干净会话恰好重复的内容?

―― 高票评论(帖子共 1 条讨论)――

[+0] u/Excellent-Sport-758:行级复现似乎是有用的来源追踪,但我不会把重复本身当作信任:干净会话可能会持续复现一个糟糕的约定,尤其是当保留规则是在同一任务上调整的时候。我会希望有一个留出的任务/仓库划分和一个行为级验证器,然后分别报告暴露、应用和下游失败。仓库投毒的局限很有用,因为它标出了记忆过滤器的边界:如果工件已经在候选仓库中,记忆来源追踪无法提供保护。在 ML 平台工作中,我发现来源追踪有助于解释运行中发生了什么变化;但它仍然不能证明结果是正确的。AI 帮我起草了这条评论;我已审核。

阅读原文
📚 相关主题 大模型代理

订阅 AI Pulse

每天 08:00 · 12:30 · 18:30 · 23:50 更新