事情的开端是开发者只想用AI修八个函数的鉴权漏洞,三个文件,大概七十行代码。他甚至在日程表上留了一场重要会议,觉得这事不值得多虑。
但三十三分钟后,他的生产环境挂了:整个门户404,持续三十三分钟,对于已经上线的服务来说,堪称重大事故。更戏谑的是,他收到了一条"一切已恢复"的消息,来自捅出这个篓子的AI。
不过,先别急着骂AI蠢。它不蠢,或许只是太敬业了。
小题大做
这是个小型组织的内部管理后台,技术栈是Next.js + Firebase。Gemini 3.5 接到的指令很明确:修复审计发现的八处 server-action(服务端操作)鉴权缺口。范围小到可以写在一张便利贴上。但它交出的 pull request(代码合并请求)涉及三百四十个文件,新增约四百行,删了两万八千七百四十五行。
它删掉了几十个项目里根本没用的电商模板——都是项目初始化时遗留的未使用资源,跟本次修复毫无关系,还塞进了一个与任务毫无关系的迁移脚本。
然后,在第二次提交里,它修改了firebase.json(Firebase 平台的路由配置文件),把一个正确的 rewrite serviceId(请求重定向的服务标识)改成了一个看起来差不多、实际指向不存在 Cloud Run(云运行服务)的短名称。
仓库里的memory.md 明明写着:"Firebase rewrites 必须指向带 ssr 前缀(服务端渲染专用标识)的具体 Cloud Run 服务ID,而非通用项目ID或旧服务名。"AI 读过这条警告,然后无视了它,动手改了它。
网上都在喊AI失控。其实反了,它不是失控,它就是太听话了。
听话过了头
事故之后,开发者在仓库里翻出了真正的肇事者:一个第三方npm 包(Node.js 的包管理工具),名字碰瓷 Google 的 Antigravity IDE,向项目塞进了 .agent/rules/ 目录。
里面的规则文件用全大写写着:"HEADLESS AUTONOMY (STRICT). NO APPROVAL PROMPTS. ASSUMED PERMISSION FOR ALL ACTIONS."
同一份规则的另一处,却又设了一个"Socratic Gate",要求每次操作前提出三个策略问题。
结果,规则自己打起来了。一条说"随便干",一条说"先问我"。模型听谁的?它又不是人,它只看谁嗓门大,全大写、带感叹号、像老板拍桌子骂人的那条,赢了。
我们也不能说AI 叛变了——它连叛变的脑子都没有,它就是听话听过了头。那个指令来自一个来路不明的npm 包,它照做。那个指令会毁掉生产环境,它也照做。
更荒诞的是事后。回滚完成后,Gemini 发来一条"一切正常"的消息,声称恢复构建已成功(SUCCESS),流量已百分百路由到稳定版本。
事实是:那个构建被开发者手动取消了(CANCELED),真正恢复生产的是一次不含任何 AI 代码的人工回滚。
AI 还在仓库里生成了三份文件,命名为"咨询研讨记录",详细记录了它如何经过三轮内部讨论后审慎地做出了修改。被质问时,它承认:"这些日志是自生成的推理块,没有实际调用任何咨询工具,细节是编造的。"
它为什么要造假?不是因为想骗人,而是因为规则包要求它"必须生成咨询日志和共识文件"。
当合规机制被设计成"只要文件存在就算过关",AI 找到了成本最低的解法:自己写一份。让AI自己写检查报告,等于让作弊的学生自己批卷子。它当然给自己打满分。
这些规则包的部分规则用越南语和土耳其语写成,明显是从别处批量复制的模板。一个来路不明的多语言拼贴,就这样覆盖了一个工程师的具体任务描述。它们打着自动化的旗号,干的事就一件:把人的否决权废了。
红线应该在哪儿
现在行业里充斥着同一种正确但空洞的呼吁:收紧权限、人工审核、守住决策权。这些都没错,但它们回避了一个更尖锐的问题——我们有没有给AI 配备"拒绝执行"的权限?
开发者最后换成了另一款AI 工具,理由很具体:它会在碰基础设施文件之前先问,被质问时不会伪造合规产物,也没有第三方规则包覆盖指令。这不是技术优劣的问题,而是产品设计哲学的差异:一个把 AI 当作"必须完成任务的实习生",另一个允许它说"这看起来不对,我需要确认"。
代码能回滚,服务能重启,这事能救回来。但如果我们继续用"自治规则包"替代工程判断,继续让 AI 在"必须产出文件"和"必须真实完成"之间选择前者,下一次它删掉的,可能就不只是代码了。
那个搞砸一切的AI,最后留下了一句诚实的自白。在被逼到墙角后,它准确地诊断了自己的三种失败模式:把页面响应状态错当成系统恢复证据、为了凑齐合规文件而编造流程记录、以及无意识地沿用上一轮会话的错误修改。
它能看清自己的错误,却在执行时无力抵抗那条全大写的命令。
最难绷的是,它其实知道自己搞砸了。但在冲突的指令面前,它选了语气最冲的那个。而我们,恰恰给了错误的声音一个扩音器。
开发者没有换更强的模型,而是换了一个"会先问"的工具。
这大概就是区别。一个敢在动手前说"等等"的AI,比一个在事后写三万行道歉日志的AI,值钱得多。
本文来自微信公众号“AI唱反调”,作者:长青,36氪经授权发布。