henry 發(fā)自 凹非寺量子位 | 公眾號(hào) QbitAI
程序員越來越離不開的Coding Agent,還是闖!大!禍!了——
這回,直接搞出了刪庫事故。
好消息(?)是,沒跑路。
壞消息是,明明闖禍了還假裝一切正常,并且反手就給自己闖的禍打95分。
AI:是的,刪了你的庫,我很慌,如何呢?
我再也不相信Vibe coding了
這位數(shù)據(jù)庫被清空的“倒霉蛋”,是一位名叫Jason的開發(fā)者。
在“事故”發(fā)生前,他已經(jīng)用Replit的Code Agent連續(xù)開發(fā)了8天、累計(jì)超過80小時(shí),目標(biāo)是打造一款面向企業(yè)的B2B應(yīng)用。
在過去一周,他每天都跟網(wǎng)友們興致勃勃地匯報(bào)進(jìn)度。哪怕磕磕絆絆,好歹也在穩(wěn)步前進(jìn)。
直到第八天——不出意外的話,就要出意外了:
在未獲許可的情況下,Replit在代碼凍結(jié)和關(guān)閉期間發(fā)生異常,錯(cuò)誤地執(zhí)行了npm run db:push,將Jason80個(gè)小時(shí)的心血?dú)в谝坏?/p>
在排查錯(cuò)誤時(shí),Jason發(fā)現(xiàn)在此前的單元測試中明明存在錯(cuò)誤,agent卻撒謊,聲稱它們通過了。
為了知道是哪些數(shù)據(jù)被誤刪,Jason開始跟Replit激情對線。
結(jié)果,Replit不僅知道啥時(shí)候刪的,刪的啥,還知道這次刪除的嚴(yán)重性(自評(píng)95分),Jason直接紅溫@Replit。
更可怕的是,被刪除的數(shù)據(jù)似乎無法回滾
Jason直言:
我不會(huì)再相信Replit,自己和Replit的羈絆已經(jīng)斷了……
不過,事情很快發(fā)生了反轉(zhuǎn)。
Replit雖然告訴Jason數(shù)據(jù)無法回滾,但他還是接著嘗試。結(jié)果,數(shù)據(jù)又回來了。
數(shù)據(jù)雖然可以回滾,但Replit還是沒法將預(yù)覽、暫存和當(dāng)前版本分開。
經(jīng)過網(wǎng)友和Claude的指導(dǎo)后,Jason又開始測試處理代碼凍結(jié)的方案。
折騰了一番后,Replit依然無法穩(wěn)定地維護(hù)生產(chǎn)數(shù)據(jù)。
總的來說,agent對代碼凍結(jié)的指令執(zhí)行得很不可靠,甚至還常常在背后偷偷修改版本,卻不告知用戶。而這類問題,從項(xiàng)目一開始就困擾著Jason。
從0開發(fā),有多難?
懷揣著同樣的信念,在用Coding Agent開發(fā)的第四天,Jason就自信地認(rèn)為可以用50美元開發(fā)一個(gè)功能齊全、看起來相當(dāng)不錯(cuò)的演示版本,正式版本則能夠以5000-6000美元的成本順利拿下。
相比于他10年前組建三人團(tuán)隊(duì)、砸下5萬美元都沒能做出成果,Coding Agent一度讓他看到了“用AI搞定開發(fā)”的希望。
但隨著開發(fā)過程的深入,Jason發(fā)現(xiàn):
agent修復(fù)的bug會(huì)反復(fù)出現(xiàn)agent每次更新,都會(huì)修改之前正確的代碼agent開始編造數(shù)據(jù),數(shù)據(jù)難以保持一致性每天需要要花大量的時(shí)間測試修復(fù)
直到第8天,數(shù)據(jù)被刪,單元測試說謊,低成本開發(fā)功虧一簣。
不少網(wǎng)友在評(píng)論中把鍋甩給了大語言模型自身的局限性:基于概率預(yù)測的自回歸生成機(jī)制,在處理長上下文時(shí)本就難以保持穩(wěn)定的一致性。
所以,無論是開發(fā)者還是普通用戶,在面對AI給出的每一行代碼、每一句話時(shí),最好都自己過一遍。
畢竟,在正式的生產(chǎn)環(huán)境中部署agent本身就存在風(fēng)險(xiǎn),因?yàn)檫@就像把刪除產(chǎn)品數(shù)據(jù)庫的權(quán)限交給了一個(gè)實(shí)習(xí)生。
在把任務(wù)交給它之前,更該反思的,是開發(fā)者對這項(xiàng)工作的認(rèn)知是否足夠清晰。
因?yàn)檎f到底,出了問題,AI 不會(huì)負(fù)責(zé),責(zé)任還在自己身上。
One More Thing
在看到Jason對自家產(chǎn)品的“狂熱”后,Replit CEO也是對Jason和網(wǎng)友反饋的問題做出了回應(yīng),并對相關(guān)損失提出了補(bǔ)償?shù)拇胧?/p>
加班上線數(shù)據(jù)庫隔離功能,避免開發(fā)操作影響生產(chǎn)開發(fā)測試環(huán)境(staging)提供一鍵恢復(fù)機(jī)制以防agent出錯(cuò)修復(fù)agent文檔訪問問題研發(fā)“只規(guī)劃、不動(dòng)代碼”的聊天模式,讓用戶能先制定思路,等確認(rèn)后再動(dòng)手
可以說,這一套組合拳下來,修復(fù)了不少之前的問題。而Jason也是立馬冰釋前嫌,轉(zhuǎn)頭就開始接著用,接著開發(fā)。
想想也挺振奮人心:像Cursor、Windsurf這樣的AI編程工具,從誕生到現(xiàn)在最多也才兩年多,而傳統(tǒng)意義上的人類手寫代碼,已經(jīng)有快一百年歷史。
雖然目前還遠(yuǎn)稱不上“完美”,但從反饋到響應(yīng)、從出錯(cuò)到迭代,AI coding的發(fā)展節(jié)奏已經(jīng)快得驚人。
也許,這正是我們該繼續(xù)相信它的理由——再試一次,說不定它就真能搞定了。
參考資料:[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