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