ツール
ツールとは、モデルが開発環境に対して何らかの操作を行うためのメカニズムです。ツールがなければ、言語モデルはテキストを生成することしかできません。ツールを使用することで、エージェントはファイルの読み書き、コードの実行、ターミナルコマンドの実行、コードベースの検索、そして外部サービスへの接続が可能になります。
エージェントループの実行中、モデルはタスクに基づいてどのツールを呼び出すかを決定します。各ツールの呼び出しによって出力が生成され、それが次回のイテレーションにおけるコンテキストの一部となります。
この記事では、利用可能なツールの種類、エージェントによるツールの選択と使用方法、および有効なツールを制御する方法について説明します。
ツールの種類
VS Codeは3種類のツールをサポートしています
- 組み込みツール: ファイルの読み書き、ターミナルコマンドの実行、コードベースの検索、エディターの操作など、一般的な開発タスクのためにVS Codeに同梱されているツールです。これらはセットアップなしですぐに使用できます。
- MCPツール: AIモデルを外部ツールやデータソースに接続するためのオープン標準であるModel Context Protocol (MCP)サーバーによって提供されるツールです。MCPサーバーはローカルマシン上で実行することも、リモートでホストすることも可能です。データベース、API、その他の外部サービスへの接続にはMCPツールを使用します。
- 拡張機能ツール: VS Codeの拡張機能がLanguage Model Tools APIを通じて提供するツールです。拡張機能ツールはエディターと深く統合されており、その拡張機能をインストールすることで使用可能になります。
ツールの仕組み
エージェントがタスクを処理する際、モデルは利用可能なツールを確認し、どれを呼び出すべきかを判断します。これは自律的に行われます。ユーザーがエージェントに高レベルなタスクを与えると、エージェントは各ステップで適切なツールを判断します。
また、プロンプト内で # に続けてツール名を入力することで、明示的にツールを指定することもできます。これは、特定のツールを確実に使用させたい場合に便利です。
使用可能なツールの制御
チャット入力欄にある「ツールを構成(Configure Tools)」ボタンを使用すると、現在のリクエストに対して個々のツールを有効または無効にできます。これにより、エージェントが使用できるツールを直接制御できます。
使用可能なツールを制限することには、いくつかの利点があります
- コンテキストの保持: すべてのツール呼び出しは、コンテキストウィンドウの容量を消費する出力を生成します。ツールが少なければ、エージェントが不必要な呼び出しを行ってコンテキストを埋めてしまう可能性が低くなります。
- クレジット消費の削減: 不必要なツール呼び出しはトークン使用量を増加させ、より多くのAIクレジットを消費します。タスクに不要なツールを無効にすることで、コストを抑えることができます。
- より関連性の高い結果を得る: 使用できるツールが少ないほど、エージェントは多数の選択肢から迷うことなく、最も適切なツールに集中できます。
- パフォーマンスの向上: ツールセットが小さいと、モデルの意思決定の幅が狭まり、応答速度が向上する可能性があります。
また、プロンプトファイルやカスタムエージェントを通じてツールの可用性を制御することもでき、特定のタスクやワークフローに対して固定のツールセットを定義することが可能です。
チャットでツールを有効にする方法の詳細をご覧ください。
ツールの承認と信頼
ツールは、ファイルの変更、環境の操作、または外部サービスへのアクセスといったアクションを実行できます。VS Codeには、ユーザーが常に主導権を握れるよう、セキュリティ制御機能が組み込まれています。
- 承認プロンプト: 副作用を伴うツールは、実行前に確認ダイアログが表示されます。一度限りの使用、現在のセッション中、または今後すべての呼び出しに対して承認を行うことができます。
- URLの承認: ツールがURLにアクセスする場合、リクエストとレスポンスの内容の両方を検証する2段階のプロセスが実行されます。
- 権限レベル: 権限ピッカーを使用して、手動承認を必須とする設定から完全に自律的な動作まで、エージェントの自律性を制御できます。
信頼と安全性の詳細をご覧ください。