2025 年 11 月 19 日に GitHub のブログで公開された、VS Code の GitHub Copilot Chat におけるツール過多についての記事である。出発点となっているのは、Copilot Chat は Model Context Protocol を通じて数百のツールにアクセスできること、そしてエージェントに多すぎるツールを与えても必ずしも賢くなるわけではなく、ときには遅くなるだけだという認識である。記事は、モデルが一度に多すぎるツールをまたいで推論しようとしていることの目に見える兆候として、「Optimizing tool selection…」というスピナーを挙げている。
記事は、これを受けて GitHub が構築した 2 つの仕組み——埋め込みに基づくツールルーティングと、ツールを展開可能な仮想ツールにまとめる適応的なツールクラスタリング——と、組み込みツールを 40 個から中核となる 13 個に絞り込んだ縮小版のデフォルトツールセットについて説明している。GitHub の報告によれば、SWE-Lancer や SWE-Bench Verified を含むベンチマークを GPT-5 と Sonnet 4.5 の両方で実行したところ、これらの変更によって成功率が 2〜5 パーセントポイント向上し、オンラインの A/B テストでは応答レイテンシが平均 400 ミリ秒短縮された。
要点
- VS Code のデフォルトツールセットには約 40 個の組み込みツールがあり、MCP サーバーを含めるとその数は数百にまで増えうる。MCP サーバーは、一部のモデルの API 上限を超えるほどのツールを持ち込むことがある。
- GitHub が掲げた目標は、エージェントの能力を制限することなく、またレイテンシの低減と引き換えにユーザー体験を犠牲にすることなく、クエリに最も関連するツールだけをモデルに見せることだった。
- その中間的なアプローチが「仮想ツール」である。類似したツールを 1 つの仮想ツールの下にまとめ、エージェントが必要に応じてそれを展開できるようにするもので、記事はこれを関連ツールのディレクトリになぞらえている。
- LLM にすべてのツールのグループ化と要約をさせる方法は断念された。グループの数を制御できず、ときにモデルの上限を超えてしまうこと、処理が遅くトークンのコストも高いこと、そしてモデルが一部のツールを分類しないまま残すことがあり、再試行を余儀なくされたことが理由である。
- 代わりに、GitHub 社内の Copilot 埋め込みモデルによる埋め込みのコサイン類似度に基づいてツールがクラスタリングされる。記事によれば、これにより正確で安定した再現可能なグループが得られる。各クラスタの要約には引き続きモデルの呼び出しが使われ、埋め込みと要約はローカルにキャッシュされる。
- ルーティングがない場合、モデルは正しいツールを見つけるまでに誤ったグループをいくつも開いてしまうことが多い。記事の例は、バグを修正して dev ブランチにマージするよう依頼したケースで、モデルは GitHub MCP グループにあるマージ用ツールに行き着く前に、検索、ドキュメント、ローカルの Git のツールを試している。誤った参照のたびに、キャッシュミス、往復通信、そして失敗の可能性というコストが生じる。
- 埋め込みに基づくツールルーティングは、いずれかのグループが展開される前に、クエリの埋め込みをすべてのツールおよびクラスタの埋め込みと比較し、意味的に最も関連性の高い候補を事前に選択する。
- GitHub の報告では、ベンチマークにおける Tool Use Coverage は、埋め込みに基づく選択で 94.5%、LLM に基づく選択で 87.5%、デフォルトの静的なツールリストで 69.0% だった。オンラインでは、Insiders のツール呼び出しの 72% が埋め込みベースのマッチングによって事前展開されたのに対し、旧方式の Stable では 19% だった。これらは GitHub が自社製品について行った自社の測定である。
- 組み込みツールセットが大きすぎると、モデルの上限に達していなくても性能が低下した。GitHub は、SWE-Lancer を含むベンチマークにおいて、フルのツールセットでは解決率が 2〜5 パーセントポイント低下することを観察しており、エージェントが明示的な指示を無視したり、ツールを誤用したり、不要なツールを呼び出したりしたと述べている。
- 中核となる 13 個のツールは利用統計と性能データに基づいて選ばれ、リポジトリ構造の解析、ファイルの読み取りと編集、コンテキストの検索、ターミナルの使用をカバーしている。残りの組み込みツールは、Jupyter Notebook、Web Interaction、VS Code Workspace、Testing tools という 4 つの仮想カテゴリに配置されている。
- GitHub の報告によれば、縮小版のツールセットを使ったユーザーでは、最初のトークンまでの時間が平均 190 ms、最後のトークンまでの時間が平均 400 ms 短縮された。
- 記事はツール選択を長いコンテキストにおける推論の初期形態として位置づけ、埋め込み、メモリ、強化シグナルを組み合わせてツールの使い方を学習するエージェントを実現する方法を探ることを次のステップとして挙げている。
背景
この記事は GitHub のスタッフが自社製品について書いたものであり、報告されている数値はすべて GitHub 社内のベンチマークと A/B テストに基づく。記事の謝辞では、チームの研究者 1 名が執筆に協力したことが記されている。