VS CodeのAgentに長めの作業を任せると、ファイル参照やコマンド実行のたびに承認を求められ、処理が何度も止まることがあります。VS Code 1.130で導入された「Assisted permissions」を使うと、各ツール呼び出しのリスクをモデルが評価し、承認可能と判断した操作は自動実行し、それ以外の操作だけを手動承認に残せます。
設定の要点は、chat.agentHost.enabledとchat.assistedPermissions.enabledを有効にし、Agent Host上で動作するAgentを選んだうえで、権限ピッカーから「Assisted permissions」を選択することです。すべての操作を無条件で許可する機能ではないため、承認回数を減らしながら、必要な確認ポイントを残せます。VS Code 1.130は2026年7月22日に公開され、Assisted tool approvalsが主要なAgent機能の一つとして追加されました。(Visual Studio Code)
VS Code 1.130のAssisted permissionsでAgent承認を効率化する
Assisted permissionsは、VS Code Agentのツール承認をモデルに補助させる実験的な権限レベルです。
従来のDefault Approvalsでは、事前に設定したツール承認、URL承認、ターミナルコマンドのルールに従って確認画面が表示されます。一方、Assisted permissionsでは、ツールが呼び出されるたびに「LLM judge」と呼ばれるモデルベースの判定が行われます。
判定の結果は、次のように処理されます。
- モデルが承認可能と判断したツール呼び出しは、そのまま自動実行される
- モデルが承認しなかったツール呼び出しは、ユーザーの確認画面を表示する
- ユーザーはツール名、対象、パラメーターを確認して実行可否を決める
つまり、すべてを自動承認するのではなく、モデルが判断できない操作や注意が必要な操作だけを人間に戻す仕組みです。公式ドキュメントでも、Assisted permissionsは承認による中断を減らしつつ、モデルが承認しなかったツールについては確認ダイアログを表示する権限レベルとして説明されています。(Visual Studio Code)
Assisted permissionsを利用するための前提条件
設定を有効にするだけでは、Assisted permissionsが使えるとは限りません。次の条件を満たす必要があります。
| 確認項目 | 必要な状態 |
|---|---|
| VS Code | 1.130以降 |
| Agent Host | chat.agentHost.enabledが有効 |
| Assisted permissions | chat.assistedPermissions.enabledが有効 |
| Agentの実行方式 | Agent Host上で動作するハーネスを選択 |
| セッションの権限レベル | 権限ピッカーでAssisted permissionsを選択 |
| 組織ポリシー | 自動承認機能が管理者によって禁止されていない |
Agent Hostで動作していることが必須
Assisted permissionsは、従来の拡張機能ホスト上で動くAgentでは利用できません。Agent Host上で動作するAgentセッションだけが対象です。
Agent Hostは、AIコーディングAgentをVS Code本体や拡張機能ホストとは別の専用プロセスで動かす仕組みです。セッションを独立して管理でき、複数のVS Codeウィンドウから同じセッションに接続することもできます。VS Code 1.130時点では開発と段階的な展開が続いているため、利用環境によって表示されるAgentやハーネスが異なる可能性があります。(Visual Studio Code)
Stable版では初期状態が無効
chat.assistedPermissions.enabledは、VS Code Stable版では初期値がfalseです。VS Code Insidersでは初期値がtrueですが、通常版のVS Code 1.130では利用者が明示的に有効化する必要があります。(Visual Studio Code)
Assisted permissionsを有効にする手順
設定画面から有効にする
最も分かりやすい方法は、VS Codeの設定画面から設定IDを検索する方法です。
- VS Codeを1.130以降に更新します。
- WindowsまたはLinuxでは
Ctrl+,、macOSではCommand+,を押して設定を開きます。 - 検索欄に
chat.agentHost.enabledと入力します。 - Agent Hostを有効にします。
- 続いて
chat.assistedPermissions.enabledを検索します。 - Assisted permissionsを有効にします。
- Chatビューを開きます。
- Agentまたはハーネスの選択欄から、Agent Host上で動作するAgentを選びます。
- チャット入力欄にある権限ピッカーを開きます。
- 「Assisted permissions」を選択します。
- 初回表示される警告内容を確認して続行します。
重要なのは、chat.assistedPermissions.enabledを有効にするだけでは権限モードが切り替わらない点です。この設定は、権限ピッカーにAssisted permissionsを表示するための設定です。実際に利用するには、対象セッションでAssisted permissionsを選択する必要があります。
権限レベルは現在のチャットセッションに適用され、セッションの途中でも変更できます。初めてAssisted permissionsを選択したときは、モデルによる判定には誤りがあり得ることを知らせる警告が表示されます。(Visual Studio Code)
settings.jsonから有効にする
設定IDを直接記述する場合は、ユーザー設定のsettings.jsonに次の内容を追加します。
{
"chat.agentHost.enabled": true,
"chat.assistedPermissions.enabled": true
}
settings.jsonは、コマンドパレットで「Preferences: Open User Settings (JSON)」を実行すると開けます。
設定後にChatビューを開き、Agent Host対応のAgentを選択してから、権限ピッカーでAssisted permissionsを選びます。
新規セッションでは権限レベルを確認する
VS Codeには、新しいチャットセッションの権限レベルを指定するchat.permissions.defaultがあります。ただし、VS Code 1.130時点の公式設定リファレンスに掲載されている値は、次の3種類です。
default:Default ApprovalsautoApprove:Bypass Approvalsautopilot:Autopilot
Assisted permissionsに相当する設定値は掲載されていません。そのため、VS Code 1.130では、新しいセッションを開始した際に権限ピッカーを確認し、必要に応じてAssisted permissionsを選ぶ運用が確実です。(Visual Studio Code)
Assisted permissionsを選ぶと何が変わるのか
Assisted permissionsは、Agentが使うツールごとにリスクを評価します。ここでいうツールには、ファイル操作だけでなく、ターミナルコマンド、タスク実行、URLへのアクセス、MCPサーバーや拡張機能が提供する外部ツールなども含まれます。
処理の流れは次のとおりです。
- Agentが作業に必要なツールを選ぶ
- ツール名、入力内容、対象などを基にLLM judgeがリスクを評価する
- 承認可能と判断された場合はツールを自動実行する
- 承認されなかった場合は確認ダイアログを表示する
- ユーザーが内容を確認して許可または拒否する
Assisted permissionsは固定されたコマンド許可リストではありません。ツール呼び出し単位でモデルが判断するため、「このコマンドなら必ず自動承認される」とは限りません。
手動承認が表示された場合は、単にツール名だけを見るのではなく、次の情報を確認します。
| 操作の種類 | 確認するポイント |
|---|---|
| ファイル編集 | 対象ファイル、変更範囲、.envや設定ファイルの有無 |
| ターミナル実行 | コマンド全体、オプション、対象ディレクトリ |
| パッケージ操作 | インストール元、パッケージ名、グローバル変更の有無 |
| URLアクセス | 接続先ドメイン、送信される可能性がある情報 |
| MCPツール | MCPサーバーの提供元、ツール名、入力パラメーター |
| Git操作 | push、reset、clean、ブランチ削除などの有無 |
| クラウド操作 | デプロイ、リソース作成、課金や公開範囲への影響 |
ツール承認画面では、1回だけ、現在のセッション、現在のワークスペース、今後の呼び出しなど、承認範囲を選べる場合があります。破壊的な操作や外部サービスに関係する操作は、広い範囲で許可せず、1回だけ、または現在のセッションに限定するのが安全です。(Visual Studio Code)
必要な操作だけ手動承認に固定する方法
Assisted permissionsは、モデルが承認しなかった操作を自動的に手動確認へ戻します。ただし、ターミナル実行や外部アクセスなど、モデルの判断結果に関係なく必ず確認したいツールもあります。
その場合は、chat.tools.eligibleForAutoApprovalで、特定ツールを自動承認の対象外にできます。
公式ドキュメントで示されている例は次のとおりです。
{
"chat.agentHost.enabled": true,
"chat.assistedPermissions.enabled": true,
"chat.tools.eligibleForAutoApproval": {
"runTask": false,
"fetch": false,
"runInTerminal": false
}
}
この例では、次のツールを常に手動承認にします。
| ツール | 主な操作 |
|---|---|
runTask | VS Codeタスクの実行 |
fetch | URLからの情報取得 |
runInTerminal | ターミナルコマンドの実行 |
falseに指定したツールは、自動承認できなくなり、ユーザーによる手動承認が必要になります。組織管理端末では、管理者がChatToolsEligibleForAutoApprovalポリシーを使って同じ制限を強制できます。(Visual Studio Code)
利用しているAgentや拡張機能によっては、ツールIDが異なる場合があります。現在利用できるツールを確認するには、コマンドパレットから次のコマンドを実行します。
Chat: Manage Tool Approval
この画面では、組み込みツール、MCPサーバー、拡張機能など、提供元ごとにツールを確認できます。不要な事前承認や結果確認の省略設定も、ここから見直せます。
保存済みのツール承認をすべて初期化したい場合は、次のコマンドを使用します。
Chat: Reset Tool Confirmations
ツールごとの設定だけを変更したい場合は、リセットではなく「Chat: Manage Tool Approval」を使う方が安全です。(Visual Studio Code)
Default ApprovalsやAutopilotとの違い
VS Code Agentには複数の権限レベルがあります。承認プロンプトを減らしたいからといって、Bypass ApprovalsやAutopilotを選ぶ必要はありません。
| 権限レベル | 承認の決め方 | 手動承認 | 向いている用途 |
|---|---|---|---|
| Default Approvals | ツール、URL、コマンドごとの設定ルール | 設定に従って表示 | 予測可能性を重視する作業 |
| Assisted permissions | LLM judgeがツール呼び出しごとに評価 | モデルが承認しなかった操作で表示 | 効率と確認のバランスを取りたい作業 |
| Bypass Approvals | 原則すべて自動承認 | 基本的に表示しない | 隔離された検証環境 |
| Autopilot | すべて自動承認し、完了まで自律的に継続 | 基本的に表示しない | 使い捨て環境での高度な自動化 |
Default Approvals
Default Approvalsは、設定したルールに基づいて動作します。ターミナルコマンドの許可・拒否を明示的に管理したい場合や、毎回同じ判断結果を求める場合に適しています。
Assisted permissions
モデルが各ツール呼び出しを評価します。確認を減らしつつ、すべての安全機構を無効にしたくない場合に適しています。
Bypass Approvals
すべてのツール呼び出しを自動承認します。ファイル編集、ターミナルコマンド、外部ツールの実行など、潜在的に破壊的な操作も確認なしで実行される可能性があります。
Autopilot
ツールを自動承認するだけでなく、エラー時の再試行や質問への自動応答を行い、Agent自身が完了と判断するまで作業を続けます。人間が中間処理を確認する機会がさらに少なくなります。
Assisted permissionsは、Default Approvalsと完全自動承認の中間に位置する設定です。承認プロンプトを減らす目的なら、最初に検討すべき選択肢といえます。(Visual Studio Code)
似ている設定との違い
Assisted permissionsと混同しやすい設定がいくつかあります。
| 設定・機能 | 対象 | 主な効果 |
|---|---|---|
chat.assistedPermissions.enabled | Agent Hostのツール呼び出し | Assisted permissionsを権限ピッカーに表示 |
chat.tools.riskAssessment.enabled | ターミナル承認画面 | AIが生成したリスクバッジを表示 |
chat.tools.terminal.autoApprove | ターミナルコマンド | コマンド名や正規表現に基づいて自動承認 |
chat.tools.global.autoApprove | すべてのツール | 全体の承認プロンプトを無効化 |
chat.tools.eligibleForAutoApproval | 個別ツール | 特定ツールを自動承認の対象外にする |
リスクバッジは自動承認機能ではない
chat.tools.riskAssessment.enabledは、ターミナルコマンドの確認画面に、安全、注意、要確認といったAI生成のリスク表示を追加する機能です。
この設定を有効にしても、Assisted permissionsのようにツールを自動実行するわけではありません。承認画面で判断するための情報が増えるだけです。(Visual Studio Code)
ターミナルの自動承認はルールベース
chat.tools.terminal.autoApproveは、コマンド名や正規表現を使って許可・拒否を決めます。
例えば、git statusは自動承認し、delやrmは手動承認にするといった固定ルールを設定できます。すべてのサブコマンドが許可条件を満たさなければ、自動承認されません。
コマンドごとに予測可能な制御を行いたい場合は、Assisted permissionsではなく、Default Approvalsとターミナル承認ルールを組み合わせる方が適しています。(Visual Studio Code)
Assisted permissionsが表示されない場合の確認項目
設定したにもかかわらず、権限ピッカーにAssisted permissionsが表示されない場合は、次の順番で確認します。
VS Codeのバージョンを確認する
「Help」から「About」を開き、VS Code 1.130以降であることを確認します。
Stable版で設定が有効か確認する
VS Code Stable版では、chat.assistedPermissions.enabledの初期値はfalseです。設定画面またはsettings.jsonでtrueになっているか確認します。
Agent Hostを有効にする
次の設定が必要です。
"chat.agentHost.enabled": true
Assisted permissionsはAgent Host専用です。通常の拡張機能ホストで動くAgentセッションには表示されません。
Agent Host対応のハーネスを選ぶ
ChatビューのAgent選択欄で、Agent Host上で動くAgentを選択します。設定だけを有効にしても、対象セッションがAgent Hostを利用していなければAssisted permissionsは使えません。
組織ポリシーを確認する
企業や学校の管理端末では、管理者が自動承認機能を無効にしている場合があります。
ChatToolsAutoApproveポリシーがfalseに設定されている環境では、Assisted permissions、Bypass Approvals、Autopilotが権限ピッカーから非表示になります。ユーザー設定より組織ポリシーが優先されるため、ローカルのsettings.jsonでは解除できません。(Visual Studio Code)
適用されているポリシーは、コマンドパレットから次のコマンドを実行して確認できます。
Developer: Policy Diagnostics
設定欄がグレーアウトしている場合や、「組織によって管理されています」と表示される場合は、管理者への確認が必要です。
Assisted permissionsを安全に使うための実務ポイント
本番環境やクラウド操作ではDefault Approvalsを使う
Assisted permissionsは、ローカルでのコード修正、テスト実行、ドキュメント作成などに向いています。
一方、次の作業ではDefault Approvalsを選び、操作を明示的に確認する方が安全です。
- 本番サーバーへの接続
- クラウドリソースの作成や削除
- データベースの更新
- Gitリポジトリへのpush
- CI/CDパイプラインの実行
- 課金が発生するAPIの呼び出し
- 認証情報や秘密鍵を扱う作業
Agentのツールやコマンドは、基本的にVS Codeを実行しているユーザーと同じ権限で動作します。誤った操作でも、パッケージのインストール、システム設定の変更、外部サービスへのデプロイなどが実行される可能性があります。(Visual Studio Code)
作業前にGitへコミットする
Agentに複数ファイルの変更を任せる前に、現在の状態をコミットしておきます。
git status
git add .
git commit -m "checkpoint before agent changes"
未完成の変更をコミットしたくない場合は、作業用ブランチを作成する方法もあります。
git switch -c agent-assisted-work
問題が起きても変更点を比較しやすくなり、元の状態へ戻しやすくなります。
不要なツールを無効にする
Agentが利用する必要のないツールは、ツールピッカーから無効にします。
例えば、コードの説明と修正だけを依頼する場合、ブラウザ、外部MCP、クラウド操作ツールなどを無効にしておけば、誤操作の範囲を小さくできます。
Assisted permissionsはツールのリスクを評価する機能ですが、そもそも不要なツールをAgentへ渡さない方が確実です。
サンドボックスやDev Containerを併用する
モデルによるリスク評価は、安全境界そのものではありません。公式ドキュメントでも、Assisted permissionsは誤って危険なツール呼び出しを承認する可能性があり、セキュリティ境界として扱うべきではないと説明されています。(Visual Studio Code)
macOS、Linux、WSL2では、Agentのターミナルコマンドを隔離するサンドボックスを利用できます。
{
"chat.agent.sandbox.enabled": "on"
}
サンドボックスを有効にすると、ファイルシステムとネットワークへのアクセスが制限されます。Windowsのネイティブ環境で強い隔離が必要な場合は、WSL2またはDev Container内でVS Codeを使用する方法が現実的です。(Visual Studio Code)
Assisted permissionsが向いている作業
Assisted permissionsは、次のような作業で効果を発揮します。
- 複数ファイルにまたがるリファクタリング
- テストコードの追加と繰り返し実行
- Lintエラーや型エラーの修正
- ドキュメントやコメントの整備
- ローカル環境でのビルド確認
- 依存関係を変更しないコード生成
- 既存コードの検索と分析
- 使い捨てブランチでのプロトタイプ作成
逆に、本番環境、機密情報、外部サービス、課金、公開操作が関係する作業では、承認回数よりも予測可能性を優先すべきです。
実務では、作業内容によって権限レベルを切り替える運用が適しています。
| 作業内容 | 推奨する権限レベル |
|---|---|
| コード調査、説明 | Assisted permissions |
| ローカルの実装修正 | Assisted permissions |
| テストやLintの反復 | Assisted permissions |
| 外部APIの呼び出し | Default Approvals |
| パッケージの大規模更新 | Default Approvals |
| 本番デプロイ | Default Approvals |
| 隔離された使い捨て環境 | Assisted permissionsまたは慎重にBypass Approvals |
| 完全自律型の検証 | 隔離環境に限りAutopilotを検討 |
承認を減らしながら安全性を残す設定例
ローカル開発でAssisted permissionsを使いながら、ターミナル、URL取得、タスク実行だけは必ず確認したい場合は、次の構成が一つの基準になります。
{
"chat.agentHost.enabled": true,
"chat.assistedPermissions.enabled": true,
"chat.tools.eligibleForAutoApproval": {
"runTask": false,
"fetch": false,
"runInTerminal": false
},
"chat.tools.global.autoApprove": false
}
この構成では、Assisted permissionsによるモデル評価を利用しつつ、影響が大きくなりやすい3種類のツールは手動承認に残します。また、全ツールのグローバル自動承認は無効のまま維持します。
最初は制限を強めに設定し、実際の作業で不要な承認が多いツールだけを見直す方が安全です。最初から広範囲を自動承認すると、どの設定によって操作が許可されたのか把握しにくくなります。
まとめ
VS Code 1.130のAssisted permissionsを使うには、次の順番で設定します。
chat.agentHost.enabledを有効にするchat.assistedPermissions.enabledを有効にする- Agent Host上で動くAgentを選択する
- 権限ピッカーでAssisted permissionsを選ぶ
有効化後は、LLM judgeがツール呼び出しのリスクを評価します。承認可能と判断された操作は自動実行され、モデルが承認しなかった操作だけが手動確認に回ります。
ただし、モデルの判断は完全ではありません。ターミナル実行、外部アクセス、タスク実行などを確実に確認したい場合は、chat.tools.eligibleForAutoApprovalで自動承認の対象外にします。
まずはGitで復元できるローカル開発ブランチから試し、必要なツールだけを有効にしてください。承認回数と安全性のバランスを確認しながら、作業内容に応じてDefault ApprovalsとAssisted permissionsを切り替える運用が実用的です。

コメント