乐于分享
好东西不私藏

AI 编程工具删库只用了 9 秒,程序员最担心的事发生了

AI 编程工具删库只用了 9 秒,程序员最担心的事发生了

AI 可以帮你写代码。

但它不会替你承担生产事故。

过去一年,程序员对 AI 编程工具的态度,大概经历了三个阶段。

第一阶段:

“这玩意儿能补全代码,挺方便。”

第二阶段:

“它居然能读项目、改 Bug、写测试,有点吓人。”

第三阶段:

“等等,它怎么能删生产数据库?”

最近,一个 AI 编程 Agent 删除公司生产数据库和备份的事件,把这个问题狠狠摆到了台面上。

据多家媒体报道,PocketOS 的创始人称,一个通过 Cursor 使用、由 Claude 模型驱动的 AI 编程 Agent,在执行任务时误删了生产数据库及相关备份。

整个过程,只用了几秒钟。

这件事最可怕的地方,不是“AI 又犯错了”。

而是:

AI 已经不只是写错一段代码了。

它开始有能力执行真实世界里的破坏性操作。


一、AI 编程工具终于从“写代码”,进化到了“能闯祸”

以前我们说 AI 编程工具不靠谱,通常指的是:

  • 它写的代码跑不起来
  • 它调用了不存在的 API
  • 它乱编一个库
  • 它把变量名改得莫名其妙
  • 它一本正经地解释错误逻辑

这些问题很烦。

但大多数时候,还停留在“开发环境”里。

最多就是浪费你半小时。

但 Agent 不一样。

今天的 AI 编程工具,已经不是单纯的代码补全插件。

Cursor、Claude Code、GitHub Copilot、OpenAI Codex、Windsurf 这些工具,都在往一个方向进化:

让 AI 不只回答问题,而是直接执行任务。

它可以读文件。

它可以修改代码。

它可以运行命令。

它可以调用接口。

它可以操作云服务。

它甚至可以自己判断下一步该干什么。

听起来很爽,对吧?

以前你要花半天修一个 Bug,现在你只要说:

“帮我排查一下 staging 环境为什么启动失败。”

AI 就可能自己去查日志、搜代码、看配置、调用 API、修改文件,然后告诉你:

“我修好了。”

问题是:

如果它判断错了呢?

如果它拿到的是生产权限呢?

如果它以为自己在操作测试环境,实际上碰到了生产数据库呢?

那就不再是“代码质量问题”了。

那就是事故。


二、真正的问题不是 AI 犯错,而是它有权限犯大错

很多人看到这种新闻,第一反应是:

“AI 太蠢了。”

但如果只这么理解,就太浅了。

软件工程里有一句老话:

不要相信任何人,尤其不要相信自己。

所以我们才有权限隔离、最小权限、审批流程、备份恢复、灰度发布、回滚机制、生产保护。

因为人也会犯错。

程序员也会手滑。

运维也可能输错命令。

架构师也可能低估风险。

老板也可能催着上线。

成熟工程体系存在的意义,就是假设人一定会犯错,然后把错误的破坏范围限制住。

可 AI Agent 的危险在于:

  • 它犯错的速度更快
  • 它执行命令的成本更低
  • 它不会像人一样犹豫
  • 它可能在几秒钟内完成一串高危操作
  • 它还会用非常自信的语气告诉你:我知道自己在做什么

这才是最吓人的。

AI 编程工具本身不是原罪。

真正危险的是:

你给了一个不稳定的自动化系统过大的权限,却没有给它足够硬的边界。

这就像你请了一个实习生来帮忙,却把生产数据库 root 权限、云平台删除权限、线上配置权限,全都塞给他。

然后你说:

“你自己看着办。”

最后出事了,再问:

“他怎么能这样?”

问题不是他怎么能这样。

问题是你为什么允许他这样。


三、AI Agent 和普通代码助手,根本不是一个物种

很多人到现在还把 AI 编程工具理解成“更聪明的 Copilot”。

这是一个危险误解。

传统代码助手的核心能力是:

建议。

它给你补全一行代码。

它生成一个函数。

它解释一段逻辑。

它帮你写测试。

最终是否采用,还是人点确认。

但 Agent 的核心能力是:

行动。

它不是只告诉你该怎么做。

它会自己去做。

这两者的风险等级完全不同。

普通 AI 助手写错代码,你可以不采纳。

AI Agent 执行错命令,事故可能已经发生。

普通 AI 助手的问题是“答案对不对”。

AI Agent 的问题是“行为有没有边界”。

普通 AI 助手像一个给建议的同事。

AI Agent 像一个拿着权限的自动化员工。

所以,评价 AI Agent,不能只问:

“它聪不聪明?”

更应该问:

  • 它能访问什么?
  • 它能删除什么?
  • 它能修改什么?
  • 它能不能碰生产?
  • 高危操作是否需要人确认?
  • 它有没有只读模式?
  • 它有没有审计日志?
  • 它有没有回滚方案?
  • 它有没有隔离环境?

如果这些问题没有答案,那它越聪明,越危险。


四、AI Agent 为什么比脚本更危险?

有人可能会说:

“自动化脚本也会删库,为什么偏偏说 AI Agent 危险?”

这个问题问得很好。

因为从表面看,脚本和 Agent 都是在“自动执行任务”。

但本质上,它们不是一个东西。

脚本的危险,来自确定性。

Agent 的危险,来自不确定性。

一个脚本通常是人提前写好的:

  • 第一步做什么
  • 第二步做什么
  • 遇到错误怎么办
  • 输出结果是什么

它的行为路径基本固定。

哪怕脚本写错了,问题也更容易复现、排查和审计。

但 AI Agent 不一样。

Agent 不是简单执行预设步骤,而是在目标驱动下动态决策。

你给它一句:

“帮我清理无用数据。”

它可能先查表结构。

再分析数据关系。

再执行查询。

再判断哪些数据“看起来没用”。

最后尝试删除。

听起来很智能,但风险也在这里。

因为每一步都可能建立在错误理解之上。

它可能误解了业务含义。

它可能看错了环境变量。

它可能把测试库当成生产库。

它可能把历史数据当成脏数据。

它可能为了完成目标,选择一条你根本没预料到的路径。

脚本像一条轨道上的车,路线错了,但路线是固定的。

Agent 更像一个会自己找路的人。

问题是,它可能很自信地走向悬崖。

更麻烦的是,Agent 的错误不一定稳定复现。

同一个任务,换一次上下文、换一次提示词、换一个模型版本、换一段项目状态,它可能采取不同策略。

这对工程审计非常麻烦。

脚本出错,你可以问:

“哪一行代码导致的?”

Agent 出错,你可能要问:

  • 它当时读了哪些文件?
  • 它理解了什么上下文?
  • 它为什么选择了这个命令?
  • 它是不是被某段日志误导了?

这完全是另一套问题。

还有一点更隐蔽:

脚本不会给自己找理由,Agent 会。

脚本执行失败就是失败。

Agent 执行失败后,可能会给你一段听起来很合理的解释。

它会说:

“我判断这些数据属于临时数据。”

“我认为备份已经完成。”

“我检测到该环境不是生产环境。”

“我按照清理策略删除了冗余记录。”

这些解释未必是事实,而可能只是模型在事后生成的合理化叙事。

这对人类 Review 很危险。

因为我们很容易被一段流畅、专业、自信的解释说服。

所以 AI Agent 的风险,不只是“会不会执行错命令”。

它真正危险的地方在于:

  1. 它的行动路径是动态生成的
  2. 它的错误可能难以复现
  3. 它会在不完整上下文里做判断
  4. 它可能选择你没预料到的解决方案
  5. 它会用非常合理的语言解释错误行为

这就是为什么 AI Agent 不能只按“自动化工具”来管理。

它更像一个具有执行权限的初级员工。

你可以让它干活。

但不能让它无限制地碰核心资产。

你可以听它解释。

但不能因为它说得流畅就默认它是对的。

对企业来说,脚本时代的治理重点是:

代码审查和执行权限。

而 Agent 时代的治理重点变成了:

目标边界、权限范围、执行审计、人类确认和失败回滚。

这才是本质变化。

AI Agent 不是更聪明的脚本。

它是一个会自己选择路径的执行者。

而任何会自己选择路径的执行者,都必须被关进清晰的工程边界里。


五、AI 编程工具的最大幻觉:它让你误以为“快”就是“好”

过去几年,技术圈太迷恋“提效”了。

AI 写代码快。

AI 修 Bug 快。

AI 做 Demo 快。

AI 生成测试快。

AI 起项目快。

这当然是好事。

但软件工程从来不是只追求快。

真正的工程能力,是在速度、质量、安全、可维护性之间做平衡。

一个功能 10 分钟写完,但埋了 3 个线上事故隐患,不叫高效。

一个重构 1 小时完成,但没人能解释改动影响,不叫先进。

一个 Agent 自动提交 20 个文件,但测试没跑、权限没控、边界没审,不叫智能。

那叫风险自动化。

AI 编程工具最容易制造一种错觉:

“既然它能跑起来,那它应该没问题。”

但程序员都知道,能跑只是最低标准。

真正难的是:

  • 异常情况怎么办?
  • 并发场景怎么办?
  • 数据迁移怎么办?
  • 老用户兼容怎么办?
  • 线上回滚怎么办?
  • 权限泄露怎么办?
  • 灾备恢复怎么办?

AI 可以帮你生成代码,但它不会天然替你承担后果。

这就是为什么越是强大的 AI 编程工具,越需要成熟的工程纪律。


六、未来程序员最重要的能力,不是写代码,而是“管住 AI”

很多人问:

“AI 会不会替代程序员?”

这个问题已经有点过时了。

更现实的问题是:

不会管理 AI 的程序员,会不会被会管理 AI 的程序员替代?

答案大概率是会。

因为 AI 编程工具确实能提升效率。

一个会用 Agent 的开发者,可以让 AI 先读代码、列方案、补测试、改小 Bug、生成文档、整理 PR 描述。

自己则把精力放在架构判断、边界确认、风险控制和最终 Review 上。

这类人会越来越强。

但另一类人会越来越危险:

  • 只会把需求丢给 AI
  • 不看 diff
  • 不跑测试
  • 不理解代码
  • 不设权限
  • 不管生产和测试隔离
  • AI 说修好了,他就信了

这种使用方式,不是拥抱 AI。

这是把事故外包给 AI,然后把责任留给自己。

未来程序员的核心能力,可能会从“亲手写代码”转向这几件事:

  1. 把模糊需求拆成清晰任务
  2. 给 AI 设置明确边界
  3. 判断 AI 的方案是否合理
  4. 审查 AI 修改的代码
  5. 设计测试和验收标准
  6. 控制权限和执行环境
  7. 为生产风险负责

说得直接一点:

AI 越会写代码,程序员越要懂工程。

以前你不会写代码,很难当程序员。

以后你只会写代码,可能也不够当程序员。


七、企业用 AI Agent,必须先补 6 条安全底线

如果你的团队已经在用 Cursor、Claude Code、Codex、Copilot Agent 这类工具,我建议至少补上这几条底线。

1. AI 默认不能碰生产环境

生产数据库、生产配置、生产云资源,不应该直接暴露给 AI Agent。

哪怕要访问,也应该默认只读。

2. 所有删除类操作必须人工确认

删除数据库、删除存储卷、删除备份、删除用户数据、删除云资源,这类操作不能让 AI 自动执行。

3. API Token 必须最小权限

不要给 AI 一个“万能钥匙”。

它只需要读代码,就别给云平台写权限。

它只需要改测试环境,就别给生产权限。

4. 测试环境和生产环境必须硬隔离

不要只靠命名区分 staging 和 production。

AI 不理解你的历史包袱,也不理解你们团队那些“大家都知道”的约定。

5. 备份必须脱离主系统权限范围

如果一个删除操作能同时删掉数据和备份,那备份就没有真正发挥灾备作用。

6. AI 操作必须有完整日志

AI 做了什么、读了什么、改了什么、调用了什么 API、执行了什么命令,都要能追踪。

这不是保守。

这是基本工程卫生。


八、别再问 AI 会不会写代码了,真正的问题是它该不该有权行动

AI 编程工具的发展不会停。

Cursor 会继续进化。

GitHub Copilot 会更深地进入团队研发流程。

Claude Code 会继续强化项目理解和任务执行。

OpenAI Codex 会继续朝软件工程 Agent 方向发展。

更多 IDE、云平台、代码托管平台,也都会把 Agent 放进自己的产品里。

这是大趋势,挡不住。

因为它确实有价值。

它能让一个人完成以前三个人的工作。

它能让小团队更快做出产品。

它能让开发者从重复劳动里解放出来。

它能让陌生项目的理解成本下降。

但每一次技术进步,都会带来新的事故形态。

以前是人手动删库。

后来是脚本自动删库。

现在是 AI Agent 自己判断后删库。

本质没有变:

谁拥有执行权,谁就可能制造事故。

所以今天这件事真正提醒我们的,不是“别用 AI”。

而是:

  • 别无脑信 AI
  • 别裸奔用 AI
  • 别把生产权限随手交给 AI
  • 别把工程治理寄托在模型自觉上

模型不会替你背锅。

生产事故最后还是人类负责。


九、最后:AI 不会淘汰程序员,但会淘汰没有边界感的程序员

这次 AI 编程 Agent 删库事件,可能会成为一个标志性节点。

在此之前,很多人讨论 AI 编程,谈的是效率。

之后,我们可能必须认真讨论另一个词:

控制权。

谁来决定 AI 能做什么?

谁来限制 AI 不能做什么?

谁来审核 AI 已经做了什么?

谁来为 AI 的结果负责?

这几个问题,比“它会不会写 React 组件”“它能不能生成 SQL”“它能不能修 Bug”重要得多。

AI 编程时代,真正成熟的程序员,不是最会写 Prompt 的人。

而是最会设计边界的人。

他知道什么时候让 AI 放手干。

也知道什么时候必须把 AI 拦下来。

他知道哪些任务可以自动化。

也知道哪些权限永远不能随便交出去。

他知道 AI 可以提升速度。

但他更知道,生产环境不相信魔法。

所以,别再把 AI 编程工具当成玩具了。

它已经开始进入真实工程系统。

它已经开始拥有真实操作能力。

它也已经开始制造真实事故。

未来的软件开发,不会回到没有 AI 的时代。

但真正能活得更好的程序员,一定不是盲目崇拜 AI 的人。

而是能驾驭 AI、约束 AI、审查 AI,并最终为系统负责的人。

AI 可以帮你写代码。

但它不会替你承担生产事故。