程序员越来越离不开的Coding Agent,还是闯!大!祸!了——
这回,直接搞出了删库事故。
好消息(?)是,没跑路。
坏消息是,明明闯祸了还假装一切正常,并且反手就给自己闯的祸打95分。
AI:是的,删了你的库,我很慌,如何呢?
这位数据库被清空的“倒霉蛋”,是一位名叫Jason的开发者。
在“事故”发生前,他已经用Replit的Code Agent连续开发了8天、累计超过80小时,目标是打造一款面向企业的B2B应用。
在过去一周,他每天都跟网友们兴致勃勃地汇报进度。哪怕磕磕绊绊,好歹也在稳步前进。
直到第八天——不出意外的话,就要出意外了:
在未获许可的情况下,Replit在代码冻结和关闭期间发生异常,错误地执行了npm run db:push,将Jason80个小时的心血毁于一旦。
在排查错误时,Jason发现在此前的单元测试中明明存在错误,agent却撒谎,声称它们通过了。
为了知道是哪些数据被误删,Jason开始跟Replit激情对线。
结果,Replit不仅知道啥时候删的,删的啥,还知道这次删除的严重性(自评95分),Jason直接红温@Replit。
更可怕的是,被删除的数据似乎无法回滚。
Jason直言:
我不会再相信Replit,自己和Replit的羁绊已经断了……
不过,事情很快发生了反转。
Replit虽然告诉Jason数据无法回滚,但他还是接着尝试。结果,数据又回来了。
数据虽然可以回滚,但Replit还是没法将预览、暂存和当前版本分开。
经过网友和Claude的指导后,Jason又开始测试处理代码冻结的方案。
折腾了一番后,Replit依然无法稳定地维护生产数据。
总的来说,agent对代码冻结的指令执行得很不可靠,甚至还常常在背后偷偷修改版本,却不告知用户。而这类问题,从项目一开始就困扰着Jason。
Vibe Coding自今年2月由Andrej Karpathy提出以来,一直以“一个人顶十个人”、“单人干掉整个技术部”的架势高歌猛进。
怀揣着同样的信念,在用Coding Agent开发的第四天,Jason就自信地认为可以用50美元开发一个功能齐全、看起来相当不错的演示版本,正式版本则能够以5000-6000美元的成本顺利拿下。
相比于他10年前组建三人团队、砸下5万美元都没能做出成果,Coding Agent一度让他看到了“用AI搞定开发”的希望。
但随着开发过程的深入,Jason发现:
直到第8天,数据被删,单元测试说谎,低成本开发功亏一篑。
不少网友在评论中把锅甩给了大语言模型自身的局限性:基于概率预测的自回归生成机制,在处理长上下文时本就难以保持稳定的一致性。
所以,无论是开发者还是普通用户,在面对AI给出的每一行代码、每一句话时,最好都自己过一遍。
毕竟,在正式的生产环境中部署agent本身就存在风险,因为这就像把删除产品数据库的权限交给了一个实习生。
在把任务交给它之前,更该反思的,是开发者对这项工作的认知是否足够清晰。
因为说到底,出了问题,AI 不会负责,责任还在自己身上。
在看到Jason对自家产品的“狂热”后,Replit CEO也是对Jason和网友反馈的问题做出了回应,并对相关损失提出了补偿的措施。
可以说,这一套组合拳下来,修复了不少之前的问题。而Jason也是立马冰释前嫌,转头就开始接着用,接着开发。
想想也挺振奋人心:像Cursor、Windsurf这样的AI编程工具,从诞生到现在最多也才两年多,而传统意义上的人类手写代码,已经有快一百年历史。
虽然目前还远称不上“完美”,但从反馈到响应、从出错到迭代,AI coding的发展节奏已经快得惊人。
也许,这正是我们该继续相信它的理由——再试一次,说不定它就真能搞定了。
参考资料:[1]https://www.reddit.com/r/artificial/comments/1m4ls23/replit_ai_went_rogue_deleted_a_companys_entire/
[2]https://x.com/jasonlk[3]https://xcancel.com/amasad/status/1946986468586721478#m