GitHub在9月2日的工程部落格中公開了Copilot編碼智能體的一份降本清單,作者是Erik Kristensen與Napalys Klicius。四項改動各自省下5.5%、3.1%、2.9%、2.3%的推論成本,動的全是送進模型的上下文,沒有一項靠更換模型。
四項改動,各省下幾個百分點
排在第一的是選擇性輸出壓縮,省下5.5%。規則劃分得相當細緻:原始碼原樣保留,指令輸出原樣保留,搜尋結果只重新排序、不刪內容。真正動手壓縮的,只有安裝、建置、測試日誌裡那些成千上萬行重複的雜訊。被壓縮的部分仍留有一條還原路徑,模型需要時能把原始輸出取回來。
第二項是拿掉讀取檔案時的行號前綴,省下3.1%。Copilot早期版本讀檔時會在每一行前面附上行號,現行的編輯流程用不到這個格式。拿掉之後,基準測試裡的模型推論成本降了約5%,換算到整體帳單則是3.1%,兩個數字的分母不同。
第三項動的是task工具的提示詞。團隊用元提示(meta-prompting)的做法,把講並行執行的那段指引壓掉一半,行為維持不變,省下2.9%。這段提示詞每一輪模型互動都要重新發送一次,壓縮後每輪能省下約1,300個token。
第四項是減少通知往返,省下2.3%。過去背景任務完成後,得多跑一次檢索才能把結果送到模型面前,改成批次直送後,省掉的是整整一次模型呼叫。
省token不等於砍上下文
這份清單裡最容易被誤讀的一句話,是團隊對目標的界定:
The goal shouldn't be to use fewer tokens, but to tap into the right amount of context to move a task forward.
目標不該是少用token,而是把推進任務所需要的那部分上下文取到位。
四項改動的共同點,是只砍模型讀了也用不到的東西:重複的建置日誌、沒人會用的行號、每輪重新發送的冗長指引、多跑一趟的檢索。真正承載資訊的部分——原始碼、指令輸出、搜尋結果——一個字都沒動。把「多餘」和「上下文不足」這條線畫清楚,是整套做法能落地的前提:砍過頭的代價是任務完成率下滑,那筆帳比省下的token貴得多。
先離線基準,再上線對照
比數字更值得參考的是這段流程。每項改動都先在離線的智能體編碼基準上驗證任務品質沒有下滑,接著進入受控的線上實驗做對照,最後才鋪到Copilot CLI、Copilot應用程式與程式碼審查三條產品線。
這個順序防的正是降本最常見的翻車方式:token用量降下來了,任務完成率卻悄悄掉了幾個百分點,單次呼叫的帳單看起來變好看,使用者卻開始反覆重試,總花費反而更高。把「任務品質不能下滑」訂成硬性前提放在最前面,後面那幾個百分比才站得住腳。
四項加起來大約13.8%,這是直接相加的粗算,實際可能存在重疊。這個量級放在換模型面前不算大——一次模型世代更替帶來的降價幅度動輒是好幾十個百分點。但這類改動性質不同:不挑模型,模型換代之後依然有效,也不需要使用者改變任何用法。
對按量計費的Copilot使用者來說,平台端省下的部分會直接反映在帳單上。編碼智能體跑一輪任務動輒消耗數十萬token,建置日誌與測試輸出的量往往超過所有被讀取原始碼的總和,第一項改動能一口氣拿回5.5%,原因就在這裡。對中國大陸自行架設編碼智能體的團隊來說,這一塊同樣是最容易被忽略的開銷。絕大多數框架預設會把標準輸出全部塞回上下文,一次npm install的輸出就能擠掉好幾千行有用的原始碼。
從這份清單來看,編碼智能體的成本控制已經下沉到上下文管理這一層,跟模型選型基本是兩條互不相干的線。
參考來源:GitHub官方工程部落格、CocoLoop、Copilot產品文件。四項改動的百分比、單輪token節省量與驗證流程皆按部落格原文逐項核對,13.8%的合計數為直接相加的粗算。