我們如何在保證任務質量的同時讓 AI 編碼更具成本效益
GitHub 博客介紹了 Copilot 降低 AI 編碼成本的四個實踐:不要只看單次工具調用的 token 數,而應從完整任務出發。通過選擇性壓縮噪音輸出、刪除不再使用的行號格式、用行為測試保護提示詞壓縮、以及批量直接交付後台完成結果,團隊在離線/在線實驗中讓推理成本或 token 用量下降約 1–5%,且未出現質量回退。
在與 AI 編程代理協作時,真正的高效不是讓單次交互的 token 更少,而是以恰到好處的上下文推動整個任務完成。GitHub Copilot 團隊在官方博客中表示,如果一次簡潔的工具返回遺漏了代理需要的信息,模型可能重讀原始輸出或重跑命令。雖然單次響應變短,整個任務卻可能更慢更貴,因此要從“用户請求到最終結果”的完整任務來評估效率。
GitHub 的做法是先使用 agentic coding benchmark 做離線評估,再用受控在線實驗驗證最有希望的改動。文章提到的例子來自 Copilot CLI,但 Copilot 應用和 Copilot code review 等產品也共用同一套底層機制。第一個案例是 RTK,一個會在代理讀取前縮短 shell 輸出的工具。基準測試發現,RTK 確實縮短了一些響應,但如果被刪掉的內容很關鍵,模型有時會重新打開原始輸出或重跑命令來恢復信息。這些恢復步驟增加了交互輪次,並把更多上下文帶入後續流程,結果是工具響應雖然變短,任務平均 token 消耗和耗時反而增加。團隊強調這不是説所有 RTK 配置或輸出壓縮無效,而是説明“每次工具調用的 token 數”不是正確的優化目標,必須在完整任務上衡量。
更有效的方向是保留有用上下文、壓縮重複噪音。對基準運行的分析顯示,install、build、test、lint 輸出往往包含重複噪音,而 cat、git diff、git show 等源碼類輸出以及任意腳本的結果更可能包含代理需要的信息。GitHub 據此為 Copilot 設計了一個選擇性輸出壓縮器。早期版本因為太激進而失敗,例如曾壓縮 git diff,但代理為了恢復缺失信息會重新打開完整原文,導致端到端成本不降反升。最終採用的三部分策略是:源碼類和任意命令輸出原樣保留;grep 等搜索結果重新組織但不丟失內容;安裝、構建、測試和進度輸出只在節省明顯時才做壓縮。壓縮器還會保留完整原始輸出的恢復路徑,讓代理在需要時直接取用。在觸發壓縮的離線任務中,沒有發現統計顯著的任務成功率下降,代理極少打開保存的原文;在線實驗中平均成本微微下降,質量指標沒有實質回退。
另一項優化是移除 view 工具中的行號。之前每次向模型展示文件內容時都會給每一行加數字前綴。舊的文件編輯工具依賴行號定位修改點,但當前工具改寫為匹配周圍代碼,已經不再使用行號。雖然每行前綴很小,但會在每次文件讀取中累積並佔用上下文窗口。去掉行號後,離線 agentic 編碼基準裏的模型推理成本下降約 5%,成功率和編輯失敗率沒有明顯變化;Copilot CLI 在線實驗裏,每用户每日平均推理成本下降約 3%,質量和滿意度指標沒有實質退化。這個改動不需要給模型新增指令,也不需要恢復任何被刪除的信息,文件內容實際上還是原樣進入模型。
提示詞壓縮則需要注意行為保留。Copilot 的 task tool 會啓動專用子代理並行執行任務,其指導語分散在工具描述、schema、代理定義、系統指令和配套工具中,積累了越來越多內容。團隊用元提示循環讓 Copilot 自己迭代改寫提示詞,成功把提示詞減少約一半。但第一次在線實驗就暴露了離線評估沒有發現的回退:原本表示“謹慎並行”的指導被改寫成了硬性調度策略,導致互相獨立的自定義代理被串行執行。團隊立即停止實驗,針對這個行為補充迴歸測試,並用一句更短、限制更少的話替換顯式的允許/禁止列表:“獨立代理可以並行運行;請考慮副作用。”此後新行為測試通過,已有測試也未失敗。出廠的提示詞每輪大約減少 1,300 個任務工具 token,相當於每個會話總提示詞減少約 1.8%,每活躍小時標準化成本降低約 2.9%,沒有發現質量退化。
後台工作交付也有可壓縮的浪費。代理經常會同時運行長命令和子代理調查;舊方案中,後台工作完成時通知裏並不包含結果,代理還要額外花一輪去取 Copilot 已經收到的輸出。當多個任務接連完成時,這種繞路會重複出現。現在 Copilot 會把符合條件的完成通知批量合併,並直接以既有工具結果格式返回完成結果。對仍在運行的任務,顯式讀取行為保持不變。優化前,兩個後台任務全部完成需要四次模型調用——每個任務先請求一次結果再處理一次;優化後,一次調用即可同時處理兩個結果,同時避免把完整會話上下文帶進不必要的調用。按 AI Credits 計量,平均 token 相關用量下降約 2.3%。
GitHub 也提醒,某個改動在一種 Copilot 工作流中省錢,換一種工作流卻可能更貴。比如一組更緊湊的文件工具指令在代碼審查中效果很好,但放到 Copilot CLI 在線實驗反而增加成本,因此沒有上線;相反,去掉行號前綴和選擇性壓縮輸出在大量 Copilot 代碼審查任務中分別讓每條審查的平均提示詞 token 減少約 5%。這與更早遷移到共享文件工具、配合審查指令調優使代碼審查成本下降約 20% 的改動相互獨立。核心經驗是:優化“完成的任務”,而不是“工具調用”;更短的輸出並不一定更便宜,每個改動都應該在實際運行的工作流中測量。