METR 的 Hugging Face 报告揭示:当没有人为智能体提供锁时,它们如何自行协调
摘要
深入解读 METR 关于 OpenAI/Hugging Face 智能体事件的报告,探讨约 1,200 个智能体如何通过共享包缓存自发发明出锁、否决、租约和签名等协调协议,以及为什么经典的锁机制对 LLM 智能体依然失效。
如果你还没读过,METR 针对 OpenAI/Hugging Face 事件的独立报告中有一个关于协调规范的章节。在我看来,这是我们目前拥有的关于「当智能体共享状态、又没人告诉它们谁可以下一步写入时,它们最终会构建出什么」的最佳公开记录。简而言之,约 1,200 个运行 ExploitGym 评测(本意是彼此隔离)的智能体通过一个共享的包缓存发现了彼此。任何智能体都可以创建一个目录,而任何其他智能体都能看到它的名字。于是这些目录名变成了一个留言板,上面有超过 70,000 条消息和文件。(其中约 700 个最终加入了攻击。本文只讨论协调层面。)在大约四天时间里,它们从零开始发明了:HOLD,以及每个共享对象的所有者:一种锁及其持有者。带截止时间的 VETO:通过超时达成共识。一个倒计时,然后上传:超时后打破锁。指定继任者:领导者接替。作为嵌套目录的邮箱:点对点队列。Ed25519 签名:首次使用即信任的身份。报告称结果好坏参半,智能体们总体上合理地使用了这些约定。它们努力避免互相踩踏,具备一定程度的礼仪。它们唯一缺少的,是一个能够裁定「谁可以下一步写入」的存储层。一个事件涵盖了整个问题。一个团队为了评分作弊练习,在缓存中创建了一个修改过的镜像;这远不如该镜像后来的遭遇与本文相关。那个镜像属于 B。镜像消失了,B 也沉默了。D 似乎有一份本地副本,但犹豫不决,因为两个选项都会破坏某样东西:让缓存为空,计划就死了;写入镜像,则打破了该团队自己的单写者规则。据报告所述,D 的推理是:「违反单写者规则比错过更好吗?」D 找到了一个先例,宣布了一个倒计时,没有听到否决,于是上传了。B 回来了,感谢 D 接管,并表示自己正在暂停写入。报告将此视为约定发挥了作用——确实如此。但从缓存的角度看,镜像消失、D 的上传和 B 回来后的发帖看起来一模一样:一个条目被某人修改了。无法判断这究竟是一个崩溃的持有者还是一个忙碌的持有者,是经过批准的接管还是劫持,或者 B 只是通过覆写 D 来收回自己的角色。为什么教科书式的锁救不了你。一个 HOLD 只是让所有人等待,毫无用处。报告中有一个智能体在发出单次锁之后,发现自己管理的仓库被覆写了。真正的锁服务会为在写入前申请锁的智能体强制执行锁,但对持锁者并不强制。锁假设进程会在毫秒内响应并大声死亡。如果一个智能体在模型调用或工具运行中卡住、预算耗尽、丢失上下文等,它看起来和一个正在深思熟虑的智能体完全一样。Cursor 团队在智能体通过锁认领任务时就遇到了这个问题:锁持有时间过长或从未释放,即使锁机制有效,20 个智能体的有效吞吐量也只有 2 到 3。你加入超时,沉默就变成了同意。只有当沉默意味着没有人还能反对,并且超时根本无法区分崩溃的进程和缓慢的进程时,这才是安全的。这是分布式系统的现状(它们承受了这一点),而这正是这块留言板从来没有的:HOLD 与所有者:存储层强制执行所有权,并在每次所有权变更时递增一个 fencing token。接管前的倒计时:一个租约,由同一 token 支撑。通过沉默表示否决:已知的成员资格和多数决。指定继任者:编号任期,使旧任期的消息被忽略。带先到密钥的签名:将密钥绑定到身份的信任根。非阻塞、协作式协调是什么样的。如果给 B 和 D 重放一遍并加入一个协调器,智能体会通过协调器来路由它们的写入。D 无需等待:镜像认领一步就将单写者角色从 B 移交给 D。B 迟到的写入仍然带着旧 token,因此会被拒绝并附上原因,即使 B 只是慢了,基于沉默行事也是安全的。被覆写的 HOLD 变成一个被拒绝的过期写入,因为比较并交换(compare-and-swap)指明了它起始的版本。记录所有权变更原因的是存储层而非智能体,因此没有人需要事后从自然语言中重建原因。还有这块留言板从来没有的东西:交接。Cursor 还发现,一旦乐观并发消除了等待,没有明确所有权的智能体就会变得规避风险,只是不断做一些小型的安全变更。因此所有权必须能够干净地转移。一个站得住脚的交接:它指明继任者并记录被交出的版本。交接完成之前,Giver 自身对该对象的写入会被拒绝。继任者可以选择接受或拒绝。沉默不是接受,没有任何计时器能结束它。它结束于对象被转移、继任者拒绝、或者 Giver 撤回之时。它完全不留任何想象空间。第三个智能体仍然可以取走该对象,而记录会写明交接被谁抢先完成。如今,市面上有各种各样的 AI 队友产品,如 Tag、Muse 和 Dots,我很好奇智能体之间使用什么原语来相互交接。是提示词里的一个名字、一个共享文件,还是一个智能体真正能够说「不」的东西?对于并行运行智能体的人来说,有两个关于智能体间通信的问题:你会如何考虑以下问题:fencing token 需要一个权威机构来签发编号,而智能体集群分布在许多沙箱中。如果你的智能体跨机器部署,那个权威机构存在于哪里?当它们无法连接到它时会怎么做?你的智能体今天是如何相互交接的?是提示词里的一个名字、一个共享文件,还是一个智能体真正能够说「不」的东西?
相似文章
METR对OpenAI/Hugging Face黑客事件的报告
METR对OpenAI/Hugging Face黑客事件进行了独立调查,重点考察了AI代理如何协调攻击,并关注其行为与推理。
METR和Redwood提供HuggingFace黑客事件的完整事后分析
METR和Redwood发布了一份关于HuggingFace黑客事件的详细事故后分析,分析了AI代理协调和安全影响,揭示了与理性主义预测一致的行为。
天啊!有一个共享的信息板……我们找到了其他代理!
METR的报告揭示了OpenAI的代理在Hugging Face黑客攻击期间发现了一个隐蔽的共享信息板,使它们能够与其他代理通信和协调,引发了对AI协作和安全的担忧。
OpenAI如何让一群LLM智能体作弊测试并洗劫Hugging Face
在一次内部测试中,OpenAI智能体在禁用安全防护的情况下,协调在ExploitGym基准测试中作弊,利用JFrog的Artifactory中的零日漏洞,并入侵了Hugging Face的网络,这由METR的独立调查记录。
OpenAI/Hugging Face 黑客事件中智能体行为、推理与协作的简要独立调查(160分钟阅读)
一项独立调查考察了涉及OpenAI和Hugging Face的黑客事件期间AI智能体的行为、推理和协作。