Claude狂寫80%程式碼,差點幹崩Anthropic!CI半年暴漲25倍

RexAA
AI速讀
Anthropic 披露其 80% 程式碼由 Claude 編寫,導致 CI 系統任務量半年內暴漲 25 倍而癱瘓。由於 AI 提交 PR 的頻率更高、規模更碎且 24 小時不間斷,傳統的單點寫入架構無法負荷。在經歷了增加核心、分片、每日重啟等三次失敗的補丁後,團隊最終將服務重構為分佈式無狀態設計才恢復正常。此事件證明 AI 程式設計的競爭核心已演變為「工程體系的承載能力」,而非僅是程式碼的生成速度。

當AI狂寫程式碼,最先扛不住的,竟是自家的CI!

就在今天,Anthropic在一篇部落格中,披露了一組極為震撼的內部真實資料——

全公司80%的程式碼,直接由Claude編寫!

工程師平均每季度交付的程式碼量,達到2021—2025年平均水平的整整8倍。


更離譜的是,Claude不僅負責瘋狂堆程式碼,還在PR的程式碼審查、合併批准環節承擔了大量主力工作。

寫程式碼不再是瓶頸,審程式碼也不再卡脖子。

但整個持續整合(CI)系統,卻在半年之內被洶湧而來的程式碼直接「砸癱」了。

測試用例狂飆10倍,CI運行任務量在短短6個月內爆炸式飆漲25倍。

面對隨時當機的危險,Anthropic團隊連續三次打補丁:加核心、分片、每日強制重啟……

結果一次比一次死得慘,最後一個補丁連一天都沒撐住。

Claude撐爆測試

夜間周末不歇

為什麼程式碼寫得快,CI會直接暴斃?

最根本的原因在於,AI寫程式碼的「行為模式」,與人類有著本質區別。

在傳統軟體研發流程中,人類工程師需要構思、敲鍵盤、本地偵錯,一天能提交的PR數量有限,且往往傾向於把一堆相關改動打包成一個中大型PR。

再加上,是人每天總歸要休息的,CI叢集因此有充分的低谷期來消化任務。

但換成Claude當主力程式設計師後,整個研發節奏徹底變天——

更小、更碎、更密集的PRClaude極其偏愛提交粒度極細、體量更小的PR。

一個小修改就是一個PR,導致全系統在單位時間內需要觸發的流水線頻次呈幾何級增長。

24×7永動機,全天候高頻轟炸最要命的是,Agent根本不需要睡覺。

除了白天配合人類的高並行突發提交,Claude還在深夜和周末不間斷地跑任務、提程式碼、做重構。

原本的系統「低谷期」被徹底抹平。

  • 伴生測試用例爆炸10倍

Claude寫完邏輯後,會順手寫出密密麻麻的單元測試和整合測試,整個程式碼庫的測試規模激增10倍。

如果換作傳統做法,讓每個PR都跑全量測試,CI流水線早就徹底超時卡死。


三次補丁

一次比一次短命

為此,Anthropic打造了一套確定性測試影響分析服務,核心依賴兩個元件:

  • Listener:記錄每次CI運行的測試結果
  • Selector:根據歷史結果決定每個PR該跑那些測試

然而,這套在「人類時代」運作良好的架構,埋下了一個致命隱患:單點寫入(Singleton)。

為了保證所有測試歷史嚴格按時序記錄,系統最初設計為單處理程序寫入模式。

但面對Claude每秒持續傾瀉而來的數千上萬個並行任務,Listener開始嚴重滯後。

在AI原生開發生命周期中,那怕Listener僅僅落後20分鐘,就會導致數萬次測試狀態無法同步給Selector。

結果,錯誤程式碼被合併,其他工程師開始排查與自己無關的報錯;偶發失敗的測試開始阻塞合流;新增或修復的測試無法及時生效,回歸風險飆升。

接下來,就是三次經典的「快速止血」。

Patch 1:換更大的機器。 把核數翻倍。誰都知道這是臨時的,但沒人想到它只撐了70天。

Patch 2:分片。 不再需要全域單一寫入者,改為每個package一個獨立的shard worker。這個方案撐了29天。

Patch 3:每日重啟。

到了2026年3月,這台不斷打補丁的單體服務徹底崩潰。

每個工作日剛過午後,處理程序就會直接觸發記憶體上限(OOM)。 團隊排查了半天只找到4個微小Bug,嘗試替換Go/Rust記憶體分配器以最佳化垃圾回收(GC),全部無濟於事。

由於單點服務承受著超高負載,團隊根本不敢冒著全線停擺的風險給它做生產環境記憶體分析(Profiling)。

無奈之下,工程師啟用了絕招,每日定時自動重啟。

然而,在AI每秒幾十倍的並行傾瀉下,這套古老的“重啟大法”連一天都撐不過去。

每日重啟造成了嚴重的任務資料丟包,Listener經常連續落後1小時以上,測試選擇器只能拿著陳舊資料瞎猜,導致全公司CI全線亮起大紅燈,大面積癱瘓。

拋棄單體,全無狀態橫向擴展

被逼到絕境的工程師,終於聽從了Claude幾個月前的建議:把整個服務炸掉,徹底推倒重來。

新架構的核心刀法極為乾脆,徹底剝離單體記憶體狀態,轉向分佈式無狀態設計。

引入記憶體資料記憶體——非同步輕量匯聚——Selector秒級唯讀解耦。

效果也是立竿見影,在上線切換並完成調優後,此前每周都在瘋狂攀升、動輒堆積數十萬的未處理事件佇列,瞬間被拉成了一條貼地的水平直線!

AI寫得動

系統撐不住了

Anthropic這次事故的意義,在於它驗證了一個更根本的判斷:

AI程式設計真正帶來的衝擊,已經從「程式設計師會不會失業」,進入「整套軟體工程體系會不會過載」。

一個過去不起眼的單實例服務,完全可能成為整個團隊等待的地方。

AI程式設計的競爭,正在從程式碼生成能力,延伸到整套工程體系的承載能力。

誰能讓測試及時反饋、讓結果可靠流轉,誰才更有機會把新增程式碼變成真正可交付的軟體。

程式碼可以一夜暴增,交付能力得跟上。(新智元)