ニュース

トークンの節約法を「VS Code」開発チームが解説、OpenAI、Anthropicそれぞれのポイントも

「GitHub Copilot」のコストと遅延を大幅削減、プロンプトキャッシュの活用や遅延読み込みなど

「Visual Studio Code」の公式ブログ

 6月1日より「GitHub Copilot」が従量課金制へ移行した影響で、トークン効率の改善に注目が集まっている。AIモデルは世代を追うごとに改善されているが、タスクあたりに消費するトークンは増加する傾向にあり、工夫なしに利用するとコストの急増に直結するからだ。もはやハーネス(制御システム)による効率化が不可欠となりつつある。

タスクあたりに消費するトークンはモデル世代を追うごとに増加する傾向

 そこで「Visual Studio Code」の開発チームは6月17日(米国時間)、公式ブログで「Improving token efficiency for GitHub Copilot in VS Code」と題する記事を公開した。「Visual Studio Code」で「GitHub Copilot」エージェントハーネスを介してトークン効率を改善するさまざまな手法が紹介されている。目標は従量課金の負担軽減、レイテンシー(遅延)の削減、長時間にわたるエージェントタスクの最適化だ。

トークンを浪費しやすい2つのポイント

 エージェントへのリクエストにおいて、トークンの消費がかさむおもな要因は2つある。

 ひとつは、 プロンプトのプレフィックス 、つまり毎回繰り返される先頭の部分だ。これにはシステム指示やツール定義、リポジトリのコンテキスト、会話履歴などが含まれるが、これをリクエストのたびに長々と繰り返すのは“塵も積もれば山となる”。

 プロンプトのプレフィックスは推論プロバイダー側でキャッシュした計算結果を再利用することが可能で、コストを最大で1/10に抑えられる。レイテンシーの削減にも役立つため、キャッシュのヒット率を高く保つのが肝要だ。

 もうひとつの要素は、 ツール定義のオーバーヘッド だ。エージェントはさまざまなツールをMCPサーバーや拡張機能を介して利用するが、それぞれのツールは名前、説明、JSONスキーマを含む完全な定義として毎回送られており、これがコンテキストウィンドウを圧迫する。

 ツール定義のオーバーヘッドを解決するには、ツール検索(Tool Search)が有効となる。最初はそれぞれのツールの軽量なメタデータだけをエージェントに渡し、モデルが必要としたときにスキーマ全体を遅延読み込みする。遅延読み込みされたツールはコンテキストの末尾に追加されるため、前述のプレフィックスキャッシュは保たれたままだ。

リクエストの差分。システムプロンプト(紫)とツール利用(橙)が多くを占める

OpenAIモデル向けの改善

 この基本は共通だが、AIプロバイダーによってリクエストの扱いは異なるので、最適化をそれぞれに行う必要がある。たとえばOpenAIモデルの場合、以下の3点が導入されている。

  • プロンプトキャッシュの延長:「prompt_cache_retention」パラメーターにより、既定では5~10分(長くても1時間程度)で破棄されるキャッシュを、最長24時間まで保持できるように。長時間の中断後でも、安く・速く作業を再開できる
  • ツール検索:「defer_loading」フラグでツール定義を遅延読み込みする(「GPT-5.4」以降)。「Visual Studio Code」で実験したところ、セッション全体のトークン消費は「GPT-5.4」で約9%、「GPT-5.5」で約11%も減少した(中央値の場合)。最初のトークンまでの時間(TTFT)は約7%改善
  • WebSocket接続:エージェントが繰り返す逐次リクエストを、毎回HTTP接続を行うのではなく、単一の永続的なWebSocket接続にまとめてレイテンシーを短縮(TTFTは最大19%、完了時間で最大13%改善)。「GPT-5.2」以降では、「Visual Studio Code」「Copilot CLI」「GitHubアプリ」などで既定の通信方式となっている

Anthropicモデル向けの改善

 Anthropicモデルでも、以下の2点が改善された。

  • 賢いプロンプトキャッシング:Anthropicのキャッシュは、呼び出し側が明示指定する方式。そのため、キャッシュをシステムプロンプトやツール定義の末尾といった“もっとも変化しにくい境界”に戦略的に配置することで、エージェント処理でのキャッシュヒット率を約94%まで高めることが可能
  • ツール検索:OpenAIの場合と同じく、遅延読み込みを採用(ただし、ファイルの読み書きやターミナル実行、ワークスペース検索といった頻出ツールは常時読み込んでおく)。さらに検索処理をクライアント側へ移し、「Copilot」独自の埋め込みモデルで“キーワードではなく意図”によりマッチングするように。これにより、セッション全体のトークン消費が中央値で約18%減り、ユーザーのエラー率も低下した(「Claude Sonnet 4.6」で約4%減)

今後の展望

 開発チームは次のステップとして、ワークスペース検索やコマンド実行、結果の要約といった限定的なタスクを、メインのエージェントから切り離し、専用の小型サブエージェントに任せる取り組みを進めているという。必要最小限の低コストモデルを使うことで、全体のコストをさらに抑える狙いだ。

 また、トークン使用状況を可視化する取り組みも継続。いずれはキャッシュが切れたタイミングやコスト増要因をユーザーに通知する仕組みが導入されるという。