各トークンからより多くの価値を引き出す:Copilot がコンテキスト処理とモデルルーティングを改善する方法
GitHub Copilot は、プロンプトキャッシュとオンデマンドツール読み込みにより冗長なコンテキストを削減し、タスクの意図とモデルのリアルタイム健全性に基づいて最適なモデルを選択する Auto モデル選択を導入することで、品質を犠牲にすることなくクレジットを節約します。
Copilot が計画、編集、デバッグ、レビュー、ツール呼び出しなど、よりエージェント的な作業を担うようになるにつれ、効率性とは単にトークンを減らすことではなく、トークンをよりスマートに使用することを意味します。
効率化の第一歩は、Copilot がターンごとに繰り返す必要のあるコンテキスト、ツール定義、キャッシュ状態を減らすことです。次に、ジョブに適したモデルを選択することが重要です。簡単な説明、焦点を絞った編集、複雑なマルチファイル変更は、すべて同じように扱われるべきではありません。
私たちは両方に取り組んでいます。Copilot の基盤を改善して、セッションのより多くの部分をタスク自体に費やすようにすることと、Auto を拡張して、開発者が毎回手動で選択しなくても Copilot が作業に最適なモデルを選択できるようにすることです。この記事では、VS Code 向け GitHub Copilot の基盤改善と、Copilot のサーフェス全体に Auto を拡張する取り組みに焦点を当てます。
強化されたプロンプトキャッシュとオンデマンドツール読み込み
VS Code での長時間の GitHub Copilot セッションでは、基盤がモデルに多くの繰り返し情報(指示、リポジトリコンテキスト、会話履歴、利用可能なツール、タスクの現在の状態)を準備します。そのコンテキストの一部は必要ですが、一部はキャッシュ、遅延、または関連する場合にのみ読み込むことができます。
GitHub Copilot for VS Code の 2 つの改善がここで主要な役割を果たしています。プロンプトキャッシュは、繰り返しのプロンプトプレフィックスに対してモデル状態を再利用し、毎回同じプレフィックスを再計算するのを防ぎます。ツール検索により、モデルはツール定義をオンデマンドで読み込むことができ、毎回すべてのツールスキーマをコンテキストに送信する必要がなくなります。
これは、エージェントがより多くのツールを使用するにつれて重要になります。セッションでは、MCP ツール、ターミナルコマンド、ファイル操作、ワークスペース検索、製品固有のアクションへのアクセスが必要になる場合があります。すべてのツール定義を事前に読み込むと、タスクに関連するツールが少数であっても、毎回固定コストが追加されます。ツール検索により、Copilot は幅広いツールセットを維持しながら、不要なツールスキーマをモデルに送信する量を減らすことができます。
実装の詳細(プロンプトキャッシュ、キャッシュ制御ブレークポイント、プロバイダ固有のツール検索、およびこれらの変更が長時間実行エージェントセッションでどのように機能するかを含む)については、VS Code テクニカルディープダイブをお読みください。
GitHub Copilot の自動モデル選択の位置づけ
Auto は実用的な質問に答えます。このタスクに最適なモデルはどれか?
最初のプロンプトの後、Copilot はタスクの意図と現在のモデルの健全性を使用して、タスクに最適なモデルを選択します。簡単な説明、焦点を絞った編集、マルチファイル変更など、さまざまな種類の作業は、すべて同じレベルの推論の恩恵を受けるわけではないため、Auto はモデル設定を手動で調整する必要なく決定します。
当社の評価では、単一のモデルがすべてのタスクで一貫して最高のパフォーマンスを発揮するわけではありませんでした。多くの場合、より効率的なモデルが同じ結果に達し、より強力なモデルはタスクがより深い推論を必要とする場合に重要でした。Auto は、より強力な推論が結果を改善するタイミングを学習します。タスクが必要とするときはルーティングを上げ、必要ないときは効率的に保ちます。目標は品質とコストをトレードオフすることではなく、作業に最適なモデルを使用することです。
Auto が適切なモデルを選択する方法
Auto は 2 つの信号を組み合わせます。現在どのモデルが健全で利用可能か、そして Copilot がどのような作業を行うように求められているかです。
リアルタイムモデル健全性:動的エンジンがモデルの可用性、利用率、速度、エラー率、コストを追跡します。モデルがタスクを処理できても、それがその時点で最善の選択であるとは限りません。Auto は現在のシステム状態を考慮して、能力があり応答準備ができているモデルにルーティングします。
タスク認識ルーティング(HyDRA):推論の深さ、コードの複雑さ、デバッグの難しさ、ツールオーケストレーションの必要性などの要素を考慮するルーティングモデル。HyDRA はタスクの品質基準を満たすモデルを特定し、その中から最適なものを選択します。
図 1:3 つの HyDRA 動作点が調整可能性を示しています:(ピーク)Sonnet を上回り 12.9% 節約。(アグレッシブ)品質とバランスを取り 72.5% 節約。
図 2:HyDRA(コンサバティブ)は OpenRouter Auto と解決率(70.8%)で同等で、3.3 倍の節約。HyDRA(アグレッシブ)は Azure Foundry の両方の動作モードを上回ります。
これらの信号を組み合わせることで、Auto は画一的なアプローチを回避します。すべてのタスクを最大のモデルに送信したり、すべてのタスクを最も安いモデルに送信したりするのではなく、作業に合ったモデルを選択することが重要です。
Auto を実際に機能させる
評価でルーティングを正しく行うことは問題の一部に過ぎません。Auto を実際のワークフローで役立てるために、開発者が実際に Copilot をどのように使用するか(会話が長くなる、コンテキストが蓄積される、タスクが変わる、開発者が複数の言語を使用する)も考慮する必要がありました。
キャッシュ認識ルーティング。ターンごとにモデルを切り替えることは柔軟に聞こえますが、効率性に悪影響を与える可能性があります。会話が同じモデルにとどまると、プロンプトプレフィックスをターン間でキャッシュして再利用できます。会話の途中でモデルを切り替えると、そのキャッシュが壊れ、ルーティング変更によって節約される以上にコストがかかる可能性があります。Auto は自然なキャッシュ境界(最初のターン、キャッシュを失うことがない場合、および圧縮後、Copilot が古いターンを要約してプロンプトプレフィックスをリセットする場合)でのみルーティングすることでこれを回避します。それらの間では、選択されたモデルが維持され、キャッシュを構築し続けることができます。
言語間のルーティング。Copilot は世界中の開発者にサービスを提供しているため、ルーティングは英語以外の言語でも機能する必要があります。ルーティングモデルを、CJK、ヨーロッパなどを含む 16 の言語ファミリーにわたる会話でトレーニングしました。評価では、ルーティング精度は言語グループ全体で英語ベースラインの 4 ポイント以内に収まり、統計的に有意な品質ギャップはありませんでした。
図 3:インテリジェントルーティングは英語ベースラインの 4 ポイント以内に収まります。英語、ヨーロッパ、CJK、その他の文字ファミリーにわたるモデル評価。19 言語にわたるプロダクション VS Code チャットテレメトリからサンプリングされた保留評価セットに基づいています。
エスカレーションが重要になるタイミングを学習する。タスクを単純に「簡単」または「難しい」とラベル付けする代わりに、モデルが実際に異なる結果を生み出す箇所をルーターに学習させました。各トレーニングクエリについて、能力の低いモデルと高いモデルからの応答を品質次元でスコアリングします。ルーターは、より強力なモデルがいつ価値を追加するか、より効率的なモデルが同等の結果を生み出せるかを学習します。長いエージェントセッションでのコンテキスト依存メッセージについては、ルーターは元のユーザー意図、最近のアシスタント応答、会話メタデータを含む完全なマルチターン会話でトレーニングされます。
タスク意図を備えた Auto の拡大
タスク意図を備えた Auto は、Visual Studio Code、github.com、モバイルですでに利用可能です。これにより、Copilot は、コーディング、デバッグ、計画、ツール使用など、ユーザーが行っている作業の種類に関するより多くのシグナルを得て、タスクに適したモデル選択を行えるようになります。
私たちはこのエクスペリエンスを Copilot 全体に拡大し続けています。次に、タスク意図を備えた Auto をさらに多くのサーフェスに導入し、チームが Auto をデフォルトにできる方法を追加します。
- タスク意図を備えた Auto は、Copilot CLI、GitHub App、および追加の IDE に導入される予定です。
- Copilot Free および Student プランは、Auto を唯一のモデル選択オプションとして活用するように簡素化されます。
- 管理制御により、組織は Auto をデフォルトとして設定したり、Auto を唯一のオプションとして強制したりできます。
AI クレジットからより多くの価値を引き出す
Copilot はデフォルトでより効率的になっていますが、いくつかの習慣がクレジットをより有効に活用するのに役立ちます。
- Auto から始めましょう。多くのタスクにおいて、Auto は強力なデフォルトです。なぜなら、手動で毎回選択しなくても、行おうとしていることに基づいてモデルを選択するからです。
- コンテキストを集中させる。タスクを切り替えるときは新しいセッションを開始し、必要に応じて長時間のセッションを圧縮し、関連するコードがどこにあるかすでにわかっている場合は Copilot に使用してほしいファイルを指定します。不要なコンテキストが少ないほど、セッションのより多くが実際の作業に費やされます。
- セッション中にモデルや設定を変更しないようにする。モデル、推論レベル、コンテキストサイズ、ツール構成を切り替えると、キャッシュの再利用が妨げられ、Copilot がコンテキストを再構築する原因になります。セッションを希望どおりに設定し、関連する作業を一緒に保ちます。
- 並列化する前に計画する。大規模なタスクの場合は、最初に Copilot に計画を依頼します。並列エージェントは、作業を真に分割できる場合に役立ちますが、クレジットも並列に消費するため、意図的に使用してください。
- 必要なツールのみを使用する。ツールと MCP サーバーは強力ですが、広範なツールセットは余分なコンテキストを追加する可能性があります。タスクに関連するものを有効にし、不要なものはオフにします。GitHub Copilot のエージェントファインダーをチェックして、ツールの使用を合理化してください。
- 使用状況を確認する。AI 使用状況ページでは、機能とモデル全体でクレジットがどこに使われているかが表示されます。Copilot CLI では、セッションレベルの使用状況も、作業中に高消費パターンを特定するのに役立ちます。
完全なガイドについては、「AI クレジットからより多くの価値を引き出す方法」を参照してください。
はじめに
自動モデル選択は、サポートされている Copilot エクスペリエンスで現在利用可能です。詳細については、自動モデル選択のドキュメントを参照してください。Copilot ディスカッションでフィードバックを共有することもできます。
私たちは、システム全体で Copilot をより効率的にし、ユーザーが自分でモデル選択を調整しなくても、より多くのクレジットが有用な作業に費やされるようにし続けています。