AI coding infrastructure
GitHub 以代理將 Copilot 執行階段改寫成 83 萬行 Rust,移除每客戶端的 Node.js 成本
Copilot 共用代理執行階段已從 TypeScript/Node.js 遷移至原生 Rust,可透過 C ABI 直接嵌入六種語言的 SDK。GitHub 的壓力測試顯示工作階段吞吐量增至每秒 120 次,但數字來自移除模型與網路延遲的內部測試。

GitHub 公開 Copilot 代理執行階段的完整遷移紀錄:一名主要工程師在約十四週半內,利用 Copilot app、CLI 與大量子代理,透過 128 個漸進式 PR,把持續演進的 TypeScript 系統改寫成 832,378 行正式環境 Rust,另保留約 46.9 萬行 Rust 單元測試與 17.5 萬行端對端 TypeScript 測試。期間主分支發布 135 個版本,避免最後一次性切換。
舊架構讓各語言 SDK 啟動 CLI 子程序,以 JSON-RPC 呼叫 Node.js/V8 內的代理迴圈;每個客戶端因此多出一個程序、跨程序 I/O,以及最低約 100 MB 的工作集。新版把 TUI 與執行階段分離,原生函式庫透過約十餘個固定 C ABI 入口傳送 JSON-RPC,可由 TypeScript、Python、Go、C#、Java 與 Rust 在程序內載入,也保留程序外模式。SDK 的公開變更紀錄已證實 Node.js、Python、Go 與 Rust 曾先取得實驗性 FFI transport,Java 也採平台分類的原生套件。
GitHub 以本機、固定短回覆的確定性聊天伺服器排除模型推論及網路時間。在 1,000 個單輪工作階段生命週期測試中,舊版每秒完成 7.55 次,Rust 程序外版為 57.45 次,程序內版為 120 次;十個客戶端增加的私有常駐記憶體則由 1,383 MB 降至 126 MB。這是服務框架成本而非實際 Copilot 回答速度,且同期還有其他修改,不能單獨歸因於語言。
更值得工程團隊注意的是驗證方法。代理生成大部分程式碼,總計耗用約 1,363 億 token、帳面模型費用約 12 萬美元,但截至 9 月 14 日仍找到數十個已合併且可編譯的退化,包括序列化、事件順序與生命週期錯誤。GitHub 因而主張測試、相容性基線與豁免標籤不能由改寫實作的同一代理自行放寬。下一步應觀察 SDK v2 的原生二進位封裝、跨平台版本鎖定,以及實際含模型延遲的多租戶效益。