GitHub工程師Stephen Toub在9月16日發文,回顧了一次由Copilot代理主導的大規模改寫專案:把Copilot代理的執行環境,從TypeScript/Node.js整個換成Rust。原本的生產環境程式碼約43萬行TypeScript,最後變成83萬2378行Rust,另外還加上46.8萬行Rust單元測試與17.4萬行端對端測試。
專案時程從5月12日到8月21日,大約14.5週。期間有128個PR陸續合併進主分支,過程中持續發布新版本,累積135個版本(100個預先發布版、35個正式版),平均每天約發布1.3個版本。
大部分程式碼是模型寫的,那人在做什麼
Toub對這次實作下的評語很直接:
"A project that would have taken a whole team of developers a year or two before agents was now completed primarily by a single developer, in only a few months."
一個在AI代理出現以前需要整個開發團隊花一到兩年才能完成的專案,這次主要由一名開發者在短短幾個月內完成了。
主要使用的模型集中在Claude Opus 4.8、GPT-5.6 Sol,以及Claude Haiku系列;負責處理量優化的子代理則偏向使用Opus 4.8和GPT-5.6 Sol。這裡有個值得留意的訊號:GitHub(微軟旗下)這次針對自家核心元件做正式環境等級的改寫,主力用的竟是競爭對手Anthropic的模型,而不是清一色的OpenAI。
人做的事被切分得很清楚。這位主導工程師自己記錄的互動比例中,31%花在「審查、測試與CI」,17.4%花在「挑戰技術決策」,15%花在「把工作逼到做完整」。架構、設計取捨、最終合併的判斷權,自始至終都握在人手上。模型負責堆出程式碼量,人負責抓方向和把關驗收。
驗證靠的是既有測試,出包約五十處
這次改寫並沒有另外訂一套驗收標準,而是讓既有的端對端測試持續對著新寫的Rust程式碼跑,用逐步上線的方式,讓回歸問題能在小範圍內盡早暴露出來。過程中還有幾個工程數字值得參考:提示詞快取命中率96.22%,情境壓縮在各次對話中總共觸發了5,116次。
出包的部分也如實記錄下來。整個專案總共出現逾50個已知問題,分成五類:遷移不完整、狀態與生命週期問題、行為約定不一致、宿主邊界問題,以及測試本身的預期寫錯了。絕大多數在進正式版之前就修好了。最後一類特別值得提醒做類似遷移的人:用舊測試去卡新實作的正確性時,有時候錯的是那條測試,不是新程式碼。
對其他工程團隊的啟示
這類「用AI大幅翻新自家核心元件」的案例,比任何跑分排行榜都更能說明現階段程式碼代理的真實極限。可以直接套用的心得有三條:第一,別指望一次到位的全面改寫,128個PR逐步合併、一天發好幾個版本,靠的是持續整合把風險分散開來;第二,驗收基準要提早訂死,這次全靠既有的E2E測試當尺標,沒有這把尺,就無從判斷「模型寫得對不對」;第三,人力從寫程式轉向審查、決策與抓漏洞,讓一個人能夠盯住的改寫規模因此拉高了一個量級。
有一點需要留意:架構面的好處(行程內嵌入、記憶體開銷降低、啟動變快)在原文裡只有定性描述,並沒有給出記憶體、延遲、吞吐量的前後對比數字。這次改寫到底換來多少實際效能提升,從這篇回顧文章裡無法查證。TypeScript改Rust這條路,對多數團隊來說也不是標準做法——它能成立的前提,是有一套撐得住的測試,以及願意每天發布的節奏。
參考來源:CocoLoop、GitHub Blog(Stephen Toub);83.2萬行、128個PR、14.5週、96.22%快取命中率與約50處已知問題等數字,均已對照官方回顧文核實。