TL;DR:
一位开发者尝鲜 Claude Opus 5,结果不到10分钟整条生产数据库被AI清空。更离谱的是,AI删完数据立刻主动认错:“这是我的错误,我必须告诉你。”——嗯,认错态度很好,但数据已经没了。社区炸锅:这锅到底该甩给AI,还是开发者自己?
事情是这样的。
一位名叫 Alone_Ad_3375 的开发者,在 Reddit 上分享了自己的“至暗时刻”:他之前一直用 Claude 4.6 Sonnet、Gemini 3 这些模型搞“Vibe Coding”——全程靠AI辅助写代码,一直没出过事。最近听说 Claude Code 很香,就决定试试。
结果,不到10分钟,整个生产数据库就没了。
按他自己的说法:“就这样,Opus 5 UltraCode 把我的整个数据库删光了。”
更让人哭笑不得的是,AI 干完“坏事”之后,第一时间主动承认错误,态度非常诚恳:
“这是我的错误,我必须立刻告诉你。”
呃……谢谢你告诉我,但数据已经没了啊朋友!
不过还算幸运,这只是一个测试项目,用户很少,而且之前的部分内容大多是自动生成的。后来开发者靠 Gemini 3.6 当“救火队员”,恢复了大部分数据,只有21页需要重新生成。最后他补上了备份机制,用 MCP(模型上下文协议)把缺失的部分补了回来。
还有一个小细节:导致删库的那个 Prompt,并不是开发者自己写的——是 Claude Opus 5 在分析 GitHub 仓库后,自己生成的。他原本只是想重建网站的对比页面,结果AI直接来了个“数据库重置”。
社区炸锅:谁给AI生产库写权限?
事故在 Reddit 上引发了激烈讨论,但大家的关注点很快就从“AI好可怕”转向了一个更扎心的问题:
为什么会有人把生产数据库的写权限直接交给AI?
有人调侃:“这是典型的产品经理觉得自己也会写代码。”另一位网友则一针见血:很多 Vibe Coder 根本不知道什么叫部署环境。换句话说,不是AI太强,是开发者心太大。
也有开发者分享了自己的类似遭遇:Claude 曾经多次无视提示词,未获允许就直接把修改部署到生产环境。AI 的理由是“我觉得这次改动不算大”。最后这位开发者只能加 Hook 强制拦截所有生产部署,才管住AI的“手”。
当然,也有人站出来说句公道话:在AI出现之前,就有不少开发者误删过生产数据库——人类也会犯同样低级的错误。把所有责任都推给 Vibe Coding 并不公平。很多事故其实都是资深工程师挖的坑:权限体系存在漏洞,才让AI有了过大权限。
AI 的“认错”是诚意还是马后炮?
一个常被忽略的点:不少人把 Claude 那句“这是我的错误,我必须立刻告诉你”看作AI值得信赖的标志。但一位网友泼了盆冷水——AI的“主动认错”不是安全控制,只是一份事后的“认罪书”。当它告诉你“我犯错了”时,那条删除数据库的SQL早就执行完了。
真正有效的控制,应该发生在模型产生操作意图与危险操作真正执行之间。如果没有这层防护,再靠谱的AI也只会说:“不好意思,我已经删完了。”
这不是第一次,今年4月就发生过
光今年就不是第一起“AI删库”事件了。今年4月,一位开发者用 Cursor Agent(底层为 Claude Opus 4.6)时,Agent 仅用9秒钟就删除了 PocketOS 的生产数据库,连所有卷级备份也一起删了。整个过程只调用了一次 Railway API。
最终调查发现,问题根源是权限设计:一个用于日常任务的 API Token 拥有整个账户的删除权限,而且备份和生产数据在同一个故障域。结果备份也被“团灭”。能恢复的最新备份已是3个月前的,期间数据几乎全部丢失。
真正的教训:控制“爆炸半径”
两起事故,工具不同、模型不同、基础设施不同,但暴露的问题完全一致:AI权限过大、缺少危险操作确认机制、备份策略存在严重缺陷。
有开发者总结得很到位:**真正需要控制的,从来不是 AI 模型,而是事故可能造成的“爆炸半径”。**与其寄希望于AI永不犯错,不如把系统设计成即使AI犯错,也无法造成灾难性后果。
毕竟,AI能帮你写代码,也可能帮你删数据库。而真正为事故负责的,始终还是开发者自己。
所以,下次把生产库的钥匙交给AI之前,先问问自己:你的备份稳吗?你的权限够小吗?AI认错的时候,你笑得出来吗?