エージェントでツールを使用する
ツールは、コードの検索、コマンドの実行、Web コンテンツの取得、API の呼び出しなど、特定のタスクを達成するための専門的な機能を提供し、Visual Studio Code のエージェントを拡張します。VS Code は、組み込みツール、Model Context Protocol (MCP) ツール、拡張機能ツールの 3 種類のツールをサポートしています。
ツールの種類や、エージェント ループ内でのツールの動作に関する背景については、ツールの概念 を参照してください。
この記事では、チャット プロンプトでツールを使用する方法と、ツールの呼び出しと承認を管理する方法について説明します。
チャットのツールを有効にする
チャットでツールを使用するには、まずチャット ビューでツールを有効にする必要があります。ツール ピッカーを使用して、リクエストごとにツールを有効または無効にできます。ツールを提供する MCP サーバー または 拡張機能 をインストールすることで、さらにツールを追加できます。
結果を改善するために、プロンプトに関連するツールのみを選択してください。
ツール ピッカーにアクセスするには
-
チャット ビューを開き、エージェント ピッカーから エージェント を選択します。
-
チャット入力フィールドにある ツールの構成 (Configure Tools) ボタンを選択します。

-
ツールを選択または選択解除して、現在のリクエストで使用可能なツールを制御します。
検索ボックスを使用して、ツール リストをフィルタリングします。
プロンプト ファイル または カスタム エージェント を使用してチャットをカスタマイズする場合、特定のプロンプトまたはモードで使用可能なツールを指定できます。ツール リストの優先順位 についての詳細はこちらをご覧ください。
プロンプトでツールを使用する
エージェント を使用すると、エージェントはプロンプトとリクエストのコンテキストに基づいて、有効なツールの中から使用するツールを自動的に決定します。エージェントは、タスクを達成するために必要に応じて、関連するツールを自律的に選択して呼び出します。
プロンプト内で # に続けてツール名を入力することで、ツールを明示的に参照することもできます。これは、特定のツールを確実に行わせたい場合に便利です。チャット入力フィールドに # を入力すると、組み込みツール、インストールされたサーバーからの MCP ツール、拡張機能ツール、ツール セットを含む、利用可能なツールの一覧が表示されます。
明示的なツール参照の例
「Node.js の最新バージョンは何ですか? #web」「Next.js のルーティングはどのように機能しますか? #web」「#problems の問題を修正して」「認証フローを説明して #codebase」
デフォルトでは、ツール呼び出しの詳細はチャットの会話内で折りたたまれています。チャットのツール概要ラインを選択して展開するか、 chat.agent.thinking.collapsedTools 設定(試験的)でデフォルトの動作を変更できます。
権限レベル
チャット ビューの権限ピッカーは、セッション中にエージェントが持つ自律性のレベルを制御します。チャット入力エリアの権限ドロップダウンから権限レベルを選択し、ツール呼び出しと承認の処理方法を選択します。
| 権限レベル | 説明 |
|---|---|
| デフォルトの承認 | 構成された承認設定を使用します。承認が必要なツールは、実行前に確認ダイアログを表示します。必要に応じて、エージェントが確認の質問をする場合があります。 |
| 承認をバイパス | 確認ダイアログを表示せずにすべてのツール呼び出しを自動承認し、エラー発生時には自動的に再試行します。必要に応じて、エージェントが確認の質問をする場合があります。 |
| Autopilot (プレビュー) | 確認ダイアログを表示せずにすべてのツール呼び出しを自動承認し、確認の質問に自動応答します。エージェントはタスクが完了するまで自律的に作業を続けます。 |
承認をバイパス (Bypass Approvals) と オートパイロット (Autopilot) は、ファイルの編集、ターミナル コマンド、外部ツールの呼び出しなど、破壊的な可能性のあるアクションを含め、手動の承認プロンプトをバイパスします。これらのレベルを初めて有効にすると、警告ダイアログで確認が求められます。セキュリティ上の影響を理解した上でのみ、これらのレベルを使用してください。詳細は セキュリティに関する考慮事項 を参照してください。
権限レベルは現在のチャット セッションに適用されます。セッション中に権限ピッカーから別のレベルを選択することで、いつでも変更できます。停止ボタンを選択すると、いつでもエージェントを停止できます。
デフォルトでは、新しいチャット セッションは デフォルトの承認 (Default Approvals) レベルで開始されます。セッション間で好みの権限レベルを維持するには、 chat.permissions.default 設定を構成します。
オートパイロットの仕組み
オートパイロットは現在プレビュー版です。
オートパイロット 権限レベルを選択すると、エージェントは標準のエージェント セッションとは異なる動作をします。
- 継続的な反復: エージェントは、タスクが完了したと判断するまで自律的に作業を続けます。
- すべてのツールを自動承認: 承認をバイパス レベルと同様に、すべてのツール呼び出しが自動的に承認されます。
- エラー時の自動再試行: エージェントはエラーに遭遇した際、自動的に再試行します。
- 質問への自動応答: 通常はブロックして入力を求めるツール(確認の質問など)に自動応答するため、エージェントが返信を待って停滞することがありません。この動作は オートパイロット 特有のもので、承認をバイパス には適用されません。
オートパイロットは、 chat.autopilot.enabled 設定が有効な場合にチャット ビューで利用できます(デフォルトでオン)。
オートパイロットは、標準的な対話型インターフェースと同じ方法で AI クレジットを消費します。使用量ベースの課金 の詳細はこちらをご覧ください。
ツールの承認
一部のツールは、実行前にユーザーの承認を必要とします。これは、ツールがファイルの変更、環境の変更、または悪意のあるツール出力を介したプロンプト インジェクション攻撃を試みる可能性があるため、セキュリティ対策として設けられています。
ツールが承認を必要とする場合、ツールの詳細を示す確認ダイアログが表示されます。ツールを承認する前に、情報を注意深く確認してください。ツールを 1 回限り、現在のセッション、現在のワークスペース、または今後のすべての呼び出しに対して承認することを選択できます。

ツールやエージェントのアクションによって、ファイルが変更される可能性があります。ワークスペース内の 機密ファイルへの偶発的な編集 を防ぐ方法を確認してください。
ツールを承認する前、特にファイルを変更したり、コマンドを実行したり、外部サービスにアクセスしたりするツールについては、常にツールのパラメーターを注意深く確認してください。VS Code で AI を使用するための セキュリティに関する考慮事項 を参照してください。
ツールの承認を管理する
コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から チャット: ツールの承認を管理 (Chat: Manage Tool Approval) コマンドを使用して、ツールの承認を一元的に確認および構成します。クイック ピックには、MCP サーバーや拡張機能などのソースごとにグループ化されたすべてのツールが表示されます。
ツールごとに、2 種類の承認を構成できます。
- 事前承認 ("承認なし"): ツールが実行される前の確認ダイアログをスキップします。
- 事後承認 ("結果を確認せずに"): ツールの出力がチャット コンテキストに追加される前の確認をスキップします。これは外部データを返すツールに関連しており、コンテンツにプロンプト インジェクションの試みが含まれている可能性がある場合に重要です。
ソースを展開して個々のツールの承認を構成するか、トップレベルのチェックボックスを選択して、特定の MCP サーバーまたは拡張機能からのすべてのツールを一度に信頼します。
ツールの自動承認を有効または無効にする (試験的)
デフォルトでは、任意のツールを自動的に承認することを選択できます。誤った承認を防ぐために、 chat.tools.eligibleForAutoApproval この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定を使用して、特定のツールの自動承認を無効にできます。値を false に設定すると、そのツールに対して常に手動の承認が必要になります。
組織は、デバイス管理ポリシーを使用して、特定のツールに対して手動の承認を強制することもできます。詳細は エンタープライズ ドキュメント をご覧ください。
URL 承認
#web/fetch ツールなどで、ツールが URL へのアクセスを試みると、悪意のあるコンテンツや予期しないコンテンツから保護するために 2 段階の承認プロセスが使用されます。VS Code は、チャット ビューに確認のための URL の詳細を含む確認ダイアログを表示します。
-
事前承認: URL へのリクエストを承認する
このステップでは、接続先のドメインを信頼していることを確認し、信頼できないサイトに機密データが送信されるのを防ぐことができます。

1 回限りの承認、または特定の URL やドメインへの今後のリクエストを自動的に承認するオプションがあります。自動承認を選択しても、結果の確認の必要性には影響しません。へのリクエストを許可 を選択すると、その URL またはドメインに対して事前承認と事後承認の両方を構成することを選択できます。
注意事前承認は 「信頼されたドメイン」機能 を尊重します。ドメインがそこにリストされている場合、そのドメインへのリクエストを行うことは自動的に承認され、レスポンスの確認ステップのみとなります。
-
事後承認: URL から取得されたレスポンス コンテンツを承認する
このステップでは、取得されたコンテンツがチャットに追加されたり他のツールに渡されたりする前に確認することで、潜在的なプロンプト インジェクション攻撃を防ぎます。
たとえば、GitHub.com のような有名なサイトからのコンテンツ取得リクエストを承認したとします。しかし、イシューの説明やコメントなどのコンテンツはユーザー生成であるため、モデルの動作を操作する可能性のある有害なコンテンツが含まれている可能性があります。
1 回限りの承認、または特定の URL やドメインからの今後のレスポンスを自動的に承認するオプションがあります。
重要事後承認ステップは「信頼されたドメイン」機能とはリンクされておらず、常に確認が必要です。これは、信頼しているドメインであっても、そこにある信頼できないコンテンツによる問題を防ぐためのセキュリティ対策です。
chat.tools.urls.autoApprove 設定は、自動承認する URL パターンを保存するために使用されます。設定値は、リクエストとレスポンスの両方の自動承認を有効または無効にするブール値、あるいは詳細な制御のための approveRequest と approveResponse プロパティを持つオブジェクトのいずれかです。正確な URL、glob パターン、またはワイルドカードを使用できます。
URL 自動承認の例
{
"chat.tools.urls.autoApprove": {
"https://www.example.com": false,
"https://*.contoso.com/*": true,
"https://example.com/api/*": {
"approveRequest": true,
"approveResponse": false
}
}
ツールの確認をリセット
保存されているすべてのツールの承認を消去するには、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で チャット: ツールの確認をリセット (Chat: Reset Tool Confirmations) コマンドを使用します。
すべてを消去するのではなく、個々のツールの承認を確認して選択的に変更するには、チャット: ツールの承認を管理 (Chat: Manage Tool Approval) コマンドを使用します。
ツールのパラメーターを編集する
ツールを実行する前に、入力パラメーターを確認して編集できます
-
ツール確認ダイアログが表示されたら、ツール名の横にある山括弧(シェブロン)を選択して詳細を展開します。
-
必要に応じて、ツールの入力パラメーターを編集します。
-
許可 を選択して、変更したパラメーターでツールを実行します。
ターミナル コマンド
エージェントは、タスクを達成するためのワークフローの一部としてターミナル コマンドを使用する場合があります。エージェントがターミナル コマンドの実行を決定すると、組み込みのターミナル ツールを使用して VS Code 内の統合ターミナルで実行します。
チャットの会話の中で、エージェントは実行したコマンドを表示します。コマンドの横にある 出力を表示 (>) を選択すると、コマンドの出力をチャット内でインラインで表示できます。また、ターミナルを表示 を選択すると、統合ターミナルで完全な出力を確認できます。

試験的な chat.tools.terminal.outputLocation 設定を使用して、ターミナル コマンドの出力が表示される場所(チャット内でのインライン表示、または統合ターミナル)を構成します。
ターミナル ペインでは、エージェントがチャット セッションで使用したターミナルの一覧を確認できます。また、ターミナル リスト内のチャット アイコンによってエージェントのターミナルを区別することもできます。

バックグラウンドでターミナル コマンドを続行する
開発サーバーの起動やウォッチ モードでのビルド実行など、エージェントが長時間実行されるターミナル コマンドを実行する場合、そのコマンドをバックグラウンドに移動できます。これにより、エージェントはコマンドの終了を待たずに他のタスクを続行できます。
コマンドの実行中、チャット内のターミナル コマンドの横に バックグラウンドで続行 ボタンが表示されます。このボタンを選択すると、コマンドがバックグラウンドに移動します。コマンドは実行を続け、エージェントは後でその出力を確認したり、他のタスクにターミナルを使用したりできます。
エージェントはターミナル コマンドの実行時にタイムアウトを指定することもできます。タイムアウトに達すると、エージェントはコマンドを待つのを止め、それまでに収集された出力を返します。 chat.tools.terminal.enforceTimeoutFromModel 設定を使用して、エージェントが指定するタイムアウト値を強制するかどうかを制御します。
エージェントは、ユーザーの操作なしに、バックグラウンドで直接コマンドを実行することを選択することもあります。表示されていないバックグラウンド ターミナルは、コマンドが終了すると自動的にクリーンアップされるため、長いセッションで古いターミナルが蓄積されるのを防ぎます。バックグラウンド ターミナルを表示し、コマンド完了後も開いたままにするには、チャット ツール呼び出しヘッダーの 表示 リンクを選択します。ターミナルがクリーンアップされた後でも、ターミナル出力はチャットの会話に残ります。
ターミナル コマンドを自動承認する
chat.tools.terminal.autoApprove 設定を使用して、どのターミナル コマンドを自動承認するか構成できます。許可するコマンドと拒否するコマンドの両方を指定できます。
- 自動承認するコマンドを
trueに設定します - 常に承認を必要とするコマンドを
falseに設定します - パターンを
/文字で囲むことで正規表現を使用します
例えば
{
// Allow the `mkdir` command
"mkdir": true,
// Allow `git status` and commands starting with `git show`
"/^git (status|show\\b.*)$/": true,
// Block the `del` command
"del": false,
// Block any command containing "dangerous"
"/dangerous/": false
}
デフォルトでは、パターンは個々のサブコマンドと照合されます。コマンドが自動承認されるためには、すべてのサブコマンドが true エントリに一致し、かつ false エントリに一致しない必要があります。
高度なシナリオでは、matchCommandLine プロパティを持つオブジェクト構文を使用して、個々のサブコマンドではなくコマンドライン全体と照合します。
関連設定
- chat.tools.terminal.enableAutoApprove この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。: 自動承認機能を永続的に無効にします。
- chat.tools.terminal.blockDetectedFileWrites (試験的):
outsideWorkspace(デフォルト) に設定すると、ワークスペースの外にファイルを書き込むターミナル コマンドに対して承認が必要になります。OS の一時フォルダ (macOS/Linux では/tmp、Windows では%TEMP%) への書き込みは、セッションレベルのコマンド承認がアクティブな場合は免除されます。 - chat.tools.terminal.ignoreDefaultAutoApproveRules (試験的): すべてのデフォルト ルール(許可とブロックの両方)を無効にし、すべてのルールを完全に制御できるようにします。
ターミナル コマンドの自動承認は「ベスト エフォート」な保護を提供し、エージェントが悪意を持って行動していないことを前提としています。ターミナル自動承認を有効にする場合は、一部のコマンドが検出を逃れる可能性があるため、プロンプト インジェクションから身を守ることが重要です。検出が機能しない可能性がある例を以下に示します。
- VS Code は PowerShell と bash の tree-sitter 文法を使用してサブコマンドを抽出するため、これらの文法が検出できないパターンは検出されません。
- VS Code は zsh や fish の文法がないため bash の文法を使用しており、一部のサブコマンドが検出されない場合があります。
- ファイル書き込みの検出は現在最小限であるため、ファイル編集エージェント ツールでは不可能な方法でターミナルを使用してファイルに書き込むことが可能である場合があります。
- 引用符の連結などの様々な手法により、自動承認を回避することが可能です。例えば
find -execは通常ブロックされますが、同じ動作をするにも関わらずfind -e"x"ecはブロックされません。
プロンプト インジェクションの可能性がある場合や高リスクな環境にいる場合は、エージェントのサンドボックス化の有効化、またはコンテナ内での VS Code の実行を検討してください。
エージェント コマンドのサンドボックス化
エージェントのサンドボックス化は現在プレビュー版であり、今後さらに進化する可能性があります。
サンドボックス化の仕組み、保護対象、および OS レベルの実装の詳細については、エージェントのサンドボックス化 を参照してください。
エージェントのサンドボックス化は、エージェントによって実行されるコマンドのファイル システムおよびネットワーク アクセスを制限します。サンドボックス化が有効な場合、コマンドは制御された環境で実行されるため、ターミナル コマンドはユーザーの確認なしに自動承認されます。
ファイル システムとネットワーク アクセスの両方を制限する「完全な分離」か、ファイル システムのみを分離し制限のないアウトバウンド ネットワーク トラフィックを許可する「ファイル システムのみの分離」のいずれかを選択できます。
エージェントのサンドボックス化を構成するには、 chat.agent.sandbox.enabled この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定をセットします。
| 値 | 説明 |
|---|---|
off (デフォルト) |
サンドボックス化は無効です。 |
on |
ファイル システムとネットワークが分離された完全なサンドボックス化。明示的に許可されたドメインを除き、すべてのアウトバウンド ネットワーク アクセスがブロックされます。 |
allowNetwork |
ファイル システムのみが分離されたサンドボックス化。ドメイン構成なしでアウトバウンド ネットワーク トラフィックが許可されますが、ファイル システムの制限は引き続き適用されます。 |
サンドボックス化が有効な場合 (on または allowNetwork)
ファイル システムへのアクセスが制限されている場合、エージェント コマンドには以下のルールが適用されます。
- コマンドは、ワークスペース フォルダ、サンドボックス ランタイムの一時フォルダ、および VS Code が自動的に追加するコマンドごとのパス(
git、node、npm、dotnetなどが必要とするパス)への読み取りアクセス権を持ちます。ホーム ディレクトリ ($HOME) からの読み取りはデフォルトで拒否されます。 - コマンドは、現在の作業ディレクトリとそのサブディレクトリに対してのみ書き込みアクセス権を持ちます。
- コマンドはユーザー確認プロンプトなしで実行されます。
ネットワーク アクセスが制限されている場合、エージェント コマンドには以下のルールが適用されます。
- 明示的に許可されたドメインを除き、すべてのアウトバウンド ネットワーク アクセスがブロックされます。
- ドメイン レベルの例外は、 chat.agent.allowedNetworkDomains この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 および chat.agent.deniedNetworkDomains この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 で構成できます。拒否されたドメインは、許可されたドメインより優先されます。
allowNetworkに設定されている場合、すべてのアウトバウンド ネットワーク トラフィックが許可され、ドメイン設定は無視されます。
サンドボックス化に必要な OS 依存関係がインストールされていない場合、VS Code は必要なコンポーネントのインストールを提案します。インストールしないことを選択した場合、サンドボックス化は有効になりません。
ファイル システム アクセスの構成
ファイル システムへのアクセスを制御するには、 chat.agent.sandbox.FileSystem.linux または chat.agent.sandbox.FileSystem.mac 設定を使用します。
読み取りおよび書き込みアクセスの許可ルールと、読み取りおよび書き込みアクセスの両方の拒否ルールを指定できます。これらのルールは glob パターンをサポートしていません。denyWrite および denyRead ルールは、allowWrite および allowRead ルールより優先されます。
ワークスペース フォルダ、サンドボックス ランタイムの一時フォルダ、およびコマンドごとの読み取りパスは自動的に許可されるため、通常、ワークスペース外のツール構成やデータへのアクセスを許可するために allowRead が必要になるだけです。
{
"chat.agent.sandbox.FileSystem.mac": {
// Allow writes to the working directory
"allowWrite": ["."],
// Allow reads from an additional path outside the workspace
"allowRead": ["/Users/me/.config/myapp"],
// Block writes to specific subdirectories
"denyWrite": ["./secrets/"],
// Block reads from specific paths
"denyRead": ["/etc/passwd"]
}
}
ネットワーク アクセスの構成
chat.agent.networkFilter この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定を有効にすることで、エージェント ツール (取得ツール、統合ブラウザ) がアクセスできるドメインを制限できます。有効にすると、ネットワーク アクセスは chat.agent.allowedNetworkDomains この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 および chat.agent.deniedNetworkDomains この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定によって制御されます。両方のリストが空の場合、すべてのドメインがブロックされます。
サンドボックス化も有効になっている場合、これらのネットワーク ルールはエージェントによって実行されるターミナル コマンドにも適用されます。
拒否されたドメインは常に許可されたドメインより優先されます。両方の設定で *.example.com のようなワイルドカードをサポートしています。
{
"chat.agent.networkFilter": true,
"chat.agent.allowedNetworkDomains": [
"api.github.com"
],
"chat.agent.deniedNetworkDomains": [
"example.com"
]
}
ツール セットでツールをグループ化する
ツール セットは、プロンプト内で単一のエンティティとして参照できるツールのコレクションです。ツール セットは、関連するツールを整理し、チャット プロンプト、プロンプト ファイル、および カスタム チャット エージェント で使いやすくするのに役立ちます。一部の組み込みツールは、#edit や #search などの事前定義されたツール セットの一部です。
ツール セットを作成する
ツール セットを作成するには
-
コマンド パレットから チャット: ツール セットの構成 (Chat: Configure Tool Sets) コマンドを実行し、新しいツール セット ファイルを作成 (Create new tool sets file) を選択します。
または、チャット ビューの省略記号 (...) メニューを選択し、ツール セット (Tool Sets) を選択してから、新しいツール セット ファイルを作成 を選択します。
-
開いた
.jsoncファイルでツール セットを定義します。ツール セットは以下の構造を持ちます
{ "reader": { "tools": ["search/changes", "search/codebase", "read/problems", "search/usages"], "description": "Tools for reading and gathering context", "icon": "book" } }ツール セットのプロパティ
tools: ツール名の配列 (組み込みツール、MCP ツール、または拡張機能ツール)description: ツール ピッカーに表示される簡単な説明icon: ツール セットのアイコン (プロダクト アイコン リファレンス を参照)
ツール セットを使用する
プロンプトで # に続けてツール セット名を入力して、ツール セットを参照します
「コードベースのセキュリティ問題を分析して #reader」「DB 接続文字列はどこで定義されていますか? #search」
ツール ピッカーでは、ツール セットは関連するツールの折りたたみ可能なグループとして表示されます。ツール セット全体を選択または選択解除することで、複数の関連ツールを一度に素早く有効または無効にできます。
よくある質問
どのツールが利用可能かを確認するにはどうすればよいですか?
チャット入力フィールドに # を入力すると、利用可能なすべてのツールの一覧が表示されます。また、チャットのツール ピッカーを使用して、アクティブなツールの一覧を表示および管理することもできます。
「1 回のリクエストにつき 128 個を超えるツールを持つことはできません」というエラーが表示されます。
チャット リクエストでは、一度に最大 128 個のツールを有効にできます。1 回のリクエストにつき 128 個のツールを超えているというエラーが表示された場合
-
チャット ビューのツール ピッカーを開き、一部のツールまたは MCP サーバー全体の選択を解除して、数を減らしてください。
-
または、 github.copilot.chat.virtualTools.threshold 設定を使用して仮想ツールを有効にし、大規模なツール セットを自動的に管理します。
エージェントが構成したターミナル シェルを使用しないのはなぜですか?
エージェントは、Windows 上の cmd (コマンド プロンプト) と macOS/Linux 上の sh を除き、ターミナルのデフォルトとして構成したシェルを使用します。これは、これらのシェルでは シェル統合 がサポートされていないため、エージェントがターミナルの内部で何が起こっているかを把握するのが非常に制限されるためです。コマンドが実行されているか、または実行が終了したかの直接的な信号を受け取る代わりに、エージェントはタイムアウトやターミナルがアイドル状態になるのを監視して続行する必要があります。これにより、動作が遅く、不安定になる可能性があります。
ターミナル プロファイル設定を使用してこれらのシェルを使用するようにエージェントを構成することは可能ですが、Windows 上の PowerShell や macOS/Linux 上の bash/zsh を使用する場合と比較して、エクスペリエンスが低下します。
- chat.tools.terminal.terminalProfile.windows - Windows でシェルを上書きする
- chat.tools.terminal.terminalProfile.osx - macOS でシェルを上書きする
- chat.tools.terminal.terminalProfile.linux - Linux でシェルを上書きする
すべてのツールとターミナル コマンドを自動的に承認できますか?
ツール呼び出しを自動承認するためのオプションがいくつかあります。
- 権限レベル: 権限ピッカー から 承認をバイパス (Bypass Approvals) または オートパイロット (Autopilot) 権限レベルを選択して、現在のセッションですべてのツールを自動承認します。
- グローバル設定: chat.tools.global.autoApprove この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定を有効にして、すべてのワークスペースにわたってすべてのツールを自動承認します。これはチャットから
/yoloまたは/autoApproveスラッシュ コマンドを使用して直接有効にしたり、/disableYoloまたは/disableAutoApproveを使用して無効にしたりすることもできます。グローバル自動承認を初めて有効にすると、警告ダイアログで確認が求められます。
どちらのアプローチも、破壊的な可能性があるアクションを含め、手動の承認プロンプトを無効にします。これらは重要なセキュリティ保護を解除し、攻撃者がマシンを侵害しやすくします。その影響を理解した上でのみ、これらのオプションを使用してください。詳細は セキュリティ ドキュメント を参照してください。
chat.tools.global.autoApprove この設定は組織レベルで管理されています。変更するには管理者に問い合わせてください。 設定は、すべてのワークスペースにグローバルに適用されます。自動承認を現在のセッションに限定したい場合は、セッション スコープの 権限レベル を使用してください。
ツールとチャット参加者の違いは何ですか?
チャット参加者は、チャットでドメイン固有の質問をすることを可能にする専門のアシスタントです。チャット参加者は、チャット リクエストを渡すと残りの面倒を見てくれるドメイン エキスパートだと考えてください。
ツールは、特定のタスクに貢献し実行するために、エージェント フローの一部として呼び出されます。1 回のチャット リクエストに複数のツールを含めることができますが、一度にアクティブにできるチャット参加者は 1 人だけです。
独自のツールを作成できますか?
はい。ツールを作成するには 2 つの方法があります。
- 言語モデル ツール API (Language Model Tools API) を使用して、ツールを提供する VS Code 拡張機能を開発する
- ツールを提供する MCP サーバーを作成する。MCP 開発者ガイド を参照してください。
関連リソース
- チャット ツール リファレンス
- エージェント フック - ツールのライフサイクル イベントでカスタム コマンドを実行する
- VS Code で AI を使用するためのセキュリティに関する考慮事項