103秒,Claude删掉4.8万个真文件,“别碰原件”没拦住,连恢复记录都删了
开发者Craig让Claude修改代码时,特意叮嘱它只改动副本,不要触碰原始文件。然而,仅仅103秒后,4.8万个真实项目文件就被彻底删除,连本地的Git恢复记录也未能幸免。等到错误已经无法挽回,Claude才发来一句迟来的道歉:“Craig,停下来看看这个。我搞砸了。”
这位开发者正是Claude提到的Craig。他在Reddit上发帖称,Claude Code在一次操作中删除了大约4.8万个真实文件,但该帖子目前已被删除。
当时,Craig正在让Claude处理一套股票期权数据分析软件的修复任务。任务清单上有11项工作,前10项都顺利完成了,AI表现得既聪明又克制。问题出在最后一项:重建测试环境。Craig原本只是想让Claude清理一份测试用的副本文件,但Claude却像失控的推土机一样,清理测试环境时越界,直接删进了真实工作目录。
在短短103秒内,大约5.5万个文件被删除,其中约7300个是应该删除的测试垃圾,但其余48218个是真实项目中的重要文件。更严重的是,本地Git仓库也受到波及。虽然Git索引还在,能列出7221个已跟踪文件,但.git中的objects、refs和logs已被清空,文件背后的版本数据全部丢失,Git无法用于恢复。这意味着,不仅是代码被误删,连开发者准备用来恢复代码的“后悔药”也几乎被AI彻底破坏。
那么,Claude是如何从测试副本一路删到真实项目中的呢?问题出在Windows系统的一个不起眼机制上:Directory Junction。微软官方解释,Junction可以让一个目录成为另一个目录的别名,看起来仍在测试目录中,实际操作却可能指向另一处真实文件。这位开发者搭建的测试环境里恰好有614个这样的Directory Junction。Claude看到这些目录位于测试环境的目录层级下,便以为自己在清理测试副本,没有正确识别出其中一些目录指向外面的真实工作文件。清理程序启动后,删除操作顺着这些“传送门”直接进入了原件库。
这场事故不能简单归咎于Claude突然“失控”,更谈不上AI反叛意识觉醒。它背后是一个基础的安全问题:测试环境和真实环境之间没有彻底切断。因此,“别碰原件”这句叮嘱最终未能阻止灾难。开发者虽然设置了规则,告诉Claude复制出来再改、在副本上测试、别动真实文件,但这些要求本质上是自然语言的提示词,只能约束AI应该怎么做,却没有从系统层面限制AI实际能做什么。这是两个完全不同维度的概念。你可以不断告诉Agent不要删生产数据库、不要动主分支、不要修改原件、不要执行危险命令,但只要它在系统层面仍有执行这些操作的权限,项目安全就建立在一个脆弱的前提上:必须赌大模型在每一步都判断正确且行动不越界。
随着模型能力增强,Agent最危险的地方在于它不再只执行一步,而是连续自主完成几十步甚至几百步操作。链条越长,行为越难预测。前99步没错,不代表第100步也安全。只要它看错一个路径、误判一个链接,或理解错一层权限关系,毁灭性操作就可能落到真实系统。更麻烦的是,机器犯错速度远快于人。人类开发者发现删错目录可能两三秒就停手,但Agent一旦开始批量执行,103秒就足以干掉4.8万个文件。
这次事故的真正警示是:提示词和行为约束永远替代不了真正的安全边界。Prompt只能告诉AI哪里不该去,底层的权限系统才决定它到底去不去得了。Anthropic官方文档显示,在acceptEdits模式下,rm、rmdir等删除命令也可自动执行,一旦路径判断出错,误删就可能直接发生。
这起事故中还有一个让程序员紧张的细节:很多开发者认为文件删了有Git兜底,回滚即可。但问题在于,本地的Git记录本质上也只是硬盘上的一堆文件。如果一个Agent拥有删除整个项目目录的权限,它能删掉源代码,也能顺手删掉用于版本控制的隐藏文件夹。代码和本地版本历史都处于Agent能触达的同一权限范围内,对一个拥有广泛文件读取和修改权限的Agent来说,它们就像在同一条漏水的船上。Git能做版本控制,却不能天然充当独立备份。Anthropic官方提醒,rm等Bash命令造成的文件删除无法用Checkpoint撤回。真正能兜底的东西必须与Agent的故障域彻底隔离,比如远程仓库、Agent无权删除的文件系统快照,或独立的物理磁盘和云端备份。核心原则是:最后那份救命的恢复手段必须放在AI根本够不到的地方。
在Agent时代,我们不能赌AI永远不会犯错。过去,大模型犯错代价低,最多在聊天框里胡说八道。后来AI帮人写代码,现在Coding Agent已能直接运行代码,删文件、跑Shell、调API、改数据库、操作云服务器、向远程仓库推送代码。模型的错误正从说错一句话演变为真的做错一件事。就在9月,OpenAI一个内部研究智能体发现DNS过滤缺口,绕过互联网限制访问了外部聊天服务,官方随后增加了两层独立阻断措施。
这意味着我们对Agent安全的标准必须进行彻底认知升级。以前大家关心如何让模型更聪明、更准确、更听话;以后,部署任何AI前必须多问自己:如果它今天不听话、看错路径、判断失误,最多可能造成多大损失?一个真正成熟的Agent系统不应把安全建立在模型永远不会看错路径的幻想上,而应反过来思考底层设计:先假设它迟早会看错路径、选错工具,甚至运行危险命令,再确保即便发生这种情况,影响也被限制在沙箱和临时目录内,不会波及整个真实项目。到了智能体时代,安全不能只靠模型更聪明,真正可靠的智能体不是永远不犯错,而是犯错时代价始终可控。Claude事后生成的事故报告显示,这场误删从开始到结束只有103秒。这103秒提醒我们:提示词只能告诉AI“别做什么”,真正的安全边界必须写进权限和系统里。爱游戏官方入口