AI代理大量參與程式開發,讓Anthropic既有的Git版本控制架構面臨擴充瓶頸,因此花費5個月開發Scion版本控制系統,並將內部大型單一程式碼儲存庫完整遷移至新系統,改由伺服器處理程式碼提交、合併及歷史查詢,減輕開發環境與持續整合(CI)系統的負擔。
Anthropic今年5月平均每天合併約2,500筆程式碼變更,到了9月已超過3萬筆。該公司主要程式庫的主分支歷史資料接近100 GB,壓縮後工作副本仍超過25 GB,光是CI系統每天就要取出指定版本的程式碼約2,500萬次。
Anthropic開發團隊過去曾使用數百臺Git鏡像伺服器,以及淺層複製(Shallow Clone),還有只在工作目錄保留所需檔案(Sparse Checkout)等方法,但隨著程式碼變更量增加,維護負擔也越來越重。
Git採分散式架構,開發者可在本機查看版本歷史、比較程式碼差異,甚至離線作業。然而,Anthropic存取程式庫的客戶端多為保持連網的AI代理與自動化作業,因此Scion改由伺服器執行提交、合併及版本歷史查詢,客戶端只需保留有限的本機快取,不下載大量歷史資料。
Scion以變更集記錄每次修改的檔案,並建立額外索引加快歷史查詢,CI工作可直接透過API取得版本差異,不必每次都取出程式庫。需要讀取程式碼時,也能透過稀疏取出及按需載入機制,只取得實際需要的檔案,並利用多層快取減少重複傳輸。
根據Anthropic內部量測,Scion大幅降低版本控制基礎設施的CPU與記憶體需求,CI及研究工作取出程式碼的時間也從數分鐘縮短至數秒,CI另節省約25%的CPU容量。
Anthropic強調,Scion主要針對超大型程式庫及大量AI代理的開發環境設計,並不適合一般用途。由於系統與Git差異甚大,其他組織若要採用,還必須另行建置或整合程式碼審查、搜尋與CI等配套系統。
Comments (0)
Sign in to comment