GitHubは9月2日付のエンジニアリングブログで、Copilotのコーディングエージェントにおけるコスト削減策をまとめて公開した。執筆者はErik Kristensen氏とNapalys Klicius氏。4つの変更はそれぞれ推論コストを5.5%、3.1%、2.9%、2.3%削減したが、いずれもモデルの切り替えではなく、モデルに渡すコンテキストに手を入れたものだ。
4つの変更、それぞれ数パーセント
最も効果が大きいのは選択的な出力圧縮で、5.5%の削減だ。ルールは細かく線引きされている。ソースコードはそのまま残し、コマンドの出力もそのまま残す。検索結果は並べ替えのみで内容は削らない。実際に圧縮の対象になるのは、インストール・ビルド・テストのログに含まれる、何千行にも及ぶ繰り返しのノイズだけだ。圧縮した部分にも復元経路が用意されており、モデルが必要とすれば元の出力を取り戻せる。
2番目はファイル読み込み時の行番号プレフィックスの削除で、3.1%の削減だ。Copilotの初期バージョンは、ファイルを読み込む際に各行へ行番号を付与していたが、現在の編集フローではこの形式は不要になっている。削除した結果、ベンチマークでは推論コストが約5%下がり、全体の請求では3.1%に相当する。この2つの数字は基準となる母数が異なる。
3番目はtaskツールのプロンプトに手を入れたものだ。メタプロンプティングの手法を使い、並列実行について説明する指示文を挙動を変えないまま約半分に圧縮し、2.9%を削減した。このプロンプトはモデルとのやり取り1ターンごとに再送されるため、圧縮によって1ターンあたり約1300トークンを節約できる。
4番目は通知の往復を減らすもので、2.3%を削減した。従来はバックグラウンドタスクが完了した後、結果をモデルに届けるために追加の検索ターンが必要だった。まとめて一括送信する方式に変えたことで、モデル呼び出し1回分をまるごと省いている。
トークン削減とコンテキスト削減は同じではない
この施策で最も誤解されやすいのが、目標をどう定義しているかという部分だ。
The goal shouldn't be to use fewer tokens, but to tap into the right amount of context to move a task forward.
目標はトークンを減らすことではなく、タスクを前に進めるために必要な分だけのコンテキストを取り込むことだ。
4つの変更に共通しているのは、モデルが読んでも使わない部分だけを削っている点だ。繰り返されるビルドログ、誰も見ない行番号、毎ターン再送される長い指示文、そしてもう一往復増える検索ターン。情報そのものを運ぶ部分——ソースコード、コマンド出力、検索結果——にはまったく手を付けていない。「冗長」と「コンテキスト不足」の境界線をどこに引くかが、この施策全体が成立する前提になっている。削りすぎればタスク完了率が落ち、その代償は節約したトークン以上に高くつく。
まずオフラインベンチマーク、その後オンライン比較
数字よりも参考になるのは、この一連の手順だ。それぞれの変更はまずオフラインのエージェント型コーディングベンチマークでタスク品質が落ちていないことを確認し、次に制御されたオンライン実験で対照を取り、その後ようやくCopilot CLI、Copilotアプリ、コードレビューの3製品ラインに展開されている。
この順序が防いでいるのは、コスト削減にありがちな失敗パターンだ。トークン使用量は下がったが、タスク完了率が気づかぬうちに数ポイント落ち、1回あたりの請求は見栄えが良くなる一方でユーザーが再試行を繰り返すようになり、結局トータルの支出はむしろ増える——というケースだ。「タスク品質を落とさない」ことを前提条件として先に固定しているからこそ、後に続くパーセンテージの削減が意味を持つ。
4つを単純に足し合わせると約13.8%になるが、これは単純合算であり、実際には重複がある可能性がある。モデルの切り替えと比べればこの水準は大きくない。モデル世代が1つ進むだけで、価格が数十パーセント下がることも珍しくないからだ。ただしこの種の施策は性質が異なる。どのモデルを使っているかに依存せず、モデルを乗り換えた後も効果が続き、ユーザー側の使い方を変える必要もない。
従量課金で使っているCopilotユーザーにとっては、プラットフォーム側の節約分がそのまま請求額に反映される。コーディングエージェントの1回のタスク実行は数十万トークンを消費することも珍しくなく、ビルドログとテスト出力の分量は、実際に読み込まれたソースコード全体を上回ることが多い。だからこそ最初の施策だけで5.5%を丸ごと取り戻せる。中国国内で自前のコーディングエージェントを構築するチームにとっても、この部分は見落とされがちなコストだ。ほとんどのフレームワークは標準設定で標準出力を丸ごとコンテキストに戻してしまい、npm installを1回実行するだけで有用なソースコードが数千行分押し出されてしまうことがある。
この施策から見えるのは、コーディングエージェントのコスト管理がコンテキスト管理という層にまで下りてきているということだ。これはモデル選定とはほぼ独立した軸になっている。
参考資料:GitHub公式エンジニアリングブログ、CocoLoop、Copilot製品ドキュメント。4つの変更それぞれの削減率、1ターンあたりのトークン節約量、検証プロセスはブログ原文に沿って確認済み。13.8%の合計値は単純合算による概算。