12 12
13Claude がツールをリクエストすると、SDK は以下の順序で権限をチェックします。13Claude がツールをリクエストすると、SDK は以下の順序で権限をチェックします。
14 14
15**1. Hooks**15**1. フック**
16 16
17最初に [hooks](/docs/ja/agent-sdk/hooks) を実行します。Hook は呼び出しを完全に拒否するか、それを通すことができます。`allow` を返す Hook は、以下の deny および ask ルールをスキップしません。これらは Hook の結果に関係なく評価されます。`allow` を返す `PreToolUse` Hook は、[重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` または `rmdir` の削除を承認することもできません。plan モードでその `allow` がどのように動作するかについては、[plan モードでの Hook の承認](/docs/ja/permissions#hook-approvals-in-plan-mode) を参照してください。17最初に [フック](/docs/ja/agent-sdk/hooks.md) を実行します。フックは呼び出しを完全に拒否するか、それを通すことができます。`allow` を返すフックは、以下の deny および ask ルールをスキップしません。これらはフックの結果に関係なく評価されます。
18
19`allow` を返す `PreToolUse` フックは、`rm -rf ~` のように、Claude Code が対象を [重要なパス](/docs/ja/permission-modes.md#critical-paths) と認識する `rm` または `rmdir` コマンドを承認することもできません。plan モードでその `allow` がどのように動作するかについては、[plan モードでのフックの承認](/docs/ja/permissions.md#hook-approvals-in-plan-mode) を参照してください。
18 20
19**2. Deny ルール**21**2. Deny ルール**
20 22
21`deny` ルール(`disallowed_tools` および [settings.json](/docs/ja/settings-reference#permission-settings) から)をチェックします。Deny ルールがマッチした場合、`bypassPermissions` モードでもツールはブロックされます。`Bash` のような裸名の deny ルールは、この評価が始まる前に Claude のコンテキストからツールを削除するため、`Bash(rm *)` のようなスコープ付きルールのみがこのステップでチェックされます。23`deny` ルール(`disallowed_tools` および [settings.json](/docs/ja/settings-reference.md#permission-settings) から)をチェックします。Deny ルールがマッチした場合、`bypassPermissions` モードでもツールはブロックされます。`Bash` のような裸名の deny ルールは、この評価が始まる前に Claude のコンテキストからツールを削除するため、`Bash(rm *)` のようなスコープ付きルールのみがこのステップでチェックされます。
22 24
23**3. Ask ルール**25**3. Ask ルール**
24 26
25[settings.json](/docs/ja/settings-reference#permission-settings) から `ask` ルールをチェックします。Ask ルールがマッチした場合、呼び出しは確認のために [`canUseTool` コールバック](/docs/ja/agent-sdk/user-input) にフォールスルーします。`bypassPermissions` モードでも同様です。27[settings.json](/docs/ja/settings-reference.md#permission-settings) から `ask` ルールをチェックします。Ask ルールがマッチした場合、呼び出しは確認のために [`canUseTool` コールバック](/docs/ja/agent-sdk/user-input) にフォールスルーします。`bypassPermissions` モードでも同様です。
26 28
27ユーザーインタラクションが必要なツールは同じように動作します。`AskUserQuestion` および [`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool) を設定する MCP ツールサーバーは、allow ルールがマッチした場合でも常にコールバックにフォールスルーします。`dontAsk` モードでは、このモードは決してプロンプトを表示しないため、両方のケースが拒否されます。MCP アノテーションには Claude Code v2.1.199 以降が必要です。29ユーザーインタラクションが必要なツールは同じように動作します。`AskUserQuestion` および [`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool) を設定する MCP ツールサーバーは、allow ルールがマッチした場合でも常にコールバックにフォールスルーします。`dontAsk` モードでは、このモードは決してプロンプトを表示しないため、両方のケースが拒否されます。MCP アノテーションには Claude Code v2.1.199 以降が必要です。
28 30
29組織が `ask` に設定した [claude.ai コネクタ](/docs/ja/mcp#organization-controls-on-connector-tools) ツールもこのステップでフローを離れます。`bypassPermissions` モードでも allow ルールがマッチした場合でも、すべての呼び出しはコールバックにフォールスルーします。コールバックは理由 `Your organization requires approval for this tool` を受け取ります。`dontAsk` モードでは、このモードは決してプロンプトを表示しないため、呼び出しは拒否されます。31組織が `ask` に設定した [claude.ai コネクタ](/docs/ja/mcp.md#organization-controls-on-connector-tools) ツールもこのステップでフローを離れます。`bypassPermissions` モードでも allow ルールがマッチした場合でも、すべての呼び出しはコールバックにフォールスルーします。コールバックは理由 `Your organization requires approval for this tool` を受け取ります。`dontAsk` モードでは、このモードは決してプロンプトを表示しないため、呼び出しは拒否されます。
30 32
31**4. Permission モード**33**4. Permission モード**
32 34
33アクティブな [permission モード](#permission-modes) を適用します。35アクティブな [permission モード](#permission-modes) を適用します。
34 36
35* `bypassPermissions` モードでは、Claude Code はこのステップに到達したすべてのものを承認します。ただし、[重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` および `rmdir` の削除は除きます。これらはフォールスルーします。37* `bypassPermissions` モードでは、Claude Code はこのステップに到達したすべてのものを承認します。ただし、認識された [重要なパスの削除](/docs/ja/permission-modes.md#critical-paths) は除き、これらは代わりにフォールスルーします。
36* `acceptEdits` モードでは、Claude Code は [Accept edits モード](#accept-edits-mode-acceptedits) の下にリストされたファイル操作を承認します。38* `acceptEdits` モードでは、Claude Code は [Accept edits モード](#accept-edits-mode-acceptedits) の下にリストされたファイル操作を承認します。
37* `plan` モードでは、Claude Code は allow ルールに関係なく、ファイル編集およびシェル書き込みツールを `canUseTool` コールバックに送信します。これにより、計画中に書き込み操作を自動承認することはできません。39* `plan` モードでは、Claude Code は allow ルールに関係なく、ファイル編集およびシェル書き込みツールを `canUseTool` コールバックに送信します。これにより、計画中に書き込み操作を自動承認することはできません。
38* その他のモードでは、リクエストはフォールスルーします。40* その他のモードでは、リクエストはフォールスルーします。
39 41
40**5. Allow ルール**42**5. Allow ルール**
41 43
42`allow` ルール(`allowed_tools` および settings.json から)をチェックします。ルールがマッチした場合、ツールは承認されます。ツール自体が承認する呼び出しもこのステップで解決されます。ルールは不要です。例えば、作業ディレクトリ内のファイル読み取りまたは [読み取り専用 Bash コマンド](/docs/ja/permissions#read-only-commands)。44`allow` ルール(`allowed_tools` および settings.json から)をチェックします。ルールがマッチした場合、ツールは承認されます。ツール自体が承認する呼び出しもこのステップで解決されます。ルールは不要です。例えば、作業ディレクトリ内のファイル読み取りや [読み取り専用 Bash コマンド](/docs/ja/permissions.md#read-only-commands) です。
43 45
44`rm` および `rmdir` の削除で [重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとするものは、allow ルールによって決して承認されません。その後、コールバックに到達するかどうかは permission モードに依存します。例えば、`auto` モードの Agent SDK セッションでは、Claude Code はデフォルトでそれを呼び出さずに拒否します。[重要なパス](/docs/ja/permission-modes#critical-paths) モード表は、各モードがそれらで何をするかをリストしています。46認識された [重要なパスの削除](/docs/ja/permission-modes.md#critical-paths) は、allow ルールによって承認されません。その後コールバックに到達するかどうかは権限モードに依存します。例えば、`auto` モードの Agent SDK セッションでは、Claude Code はデフォルトでコールバックを呼び出さずにそれらを拒否します。[重要なパスのモード表](/docs/ja/permission-modes.md#critical-path-removals-in-each-permission-mode) に、各モードがそれらをどう扱うかがリストされています。
45 47
46allow ルールは、[ネットワークパス](/docs/ja/permissions#network-paths) からの読み取りを承認しません。48allow ルールは、[ネットワークパス](/docs/ja/permissions.md#network-paths) からの読み取りを承認しません。
47 49
48**6. canUseTool コールバック**50**6. canUseTool コールバック**
49 51
50上記のいずれでも解決されない場合、決定のために [`canUseTool` コールバック](/docs/ja/agent-sdk/user-input) を呼び出します。`dontAsk` モードでは、このステップはスキップされ、ツールは拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview) は、[そのような呼び出しの一部](/docs/ja/permissions#precedence-among-rules-hooks-and-mods) を引き続き承認できます。52上記のいずれでも解決されない場合、決定のために [`canUseTool` コールバック](/docs/ja/agent-sdk/user-input) を呼び出します。`dontAsk` モードでは、このステップはスキップされ、ツールは拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview.md) は、[そのような呼び出しの一部](/docs/ja/permissions.md#precedence-among-rules-hooks-and-mods) を引き続き承認できます。
51 53
52TypeScript SDK では、[`permissionPrompts: 'none'`](/docs/ja/agent-sdk/typescript#options) を設定した場合、このステップではコールバックは呼び出されません。[`PermissionRequest` hook](/docs/ja/hooks#permissionrequest) はまだ決定する機会があり、そうしない場合、Claude Code は呼び出しを拒否します。このオプションには Claude Code v2.1.259 以降が必要です。54TypeScript SDK では、[`permissionPrompts: 'none'`](/docs/ja/agent-sdk/typescript#options) を設定した場合、このステップではコールバックは呼び出されません。[`PermissionRequest` hook](/docs/ja/hooks#permissionrequest) はまだ決定する機会があり、そうしない場合、Claude Code は呼び出しを拒否します。このオプションには Claude Code v2.1.259 以降が必要です。
53 55
55 57
56TypeScript SDK がコールバックが相談される前に呼び出しを自動承認することを期待する設定で `canUseTool` コールバックを渡す場合、SDK はクエリが構築されるときに Node.js プロセス警告を 1 回発行します。警告のコードは `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED` です。2 つの設定がそれをトリガーします。58TypeScript SDK がコールバックが相談される前に呼び出しを自動承認することを期待する設定で `canUseTool` コールバックを渡す場合、SDK はクエリが構築されるときに Node.js プロセス警告を 1 回発行します。警告のコードは `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED` です。2 つの設定がそれをトリガーします。
57 59
58* `permissionMode: 'bypassPermissions'`。これは permission モードステップに到達するすべての呼び出しを自動承認します。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) は除きます。60* `permissionMode: 'bypassPermissions'`。これは permission モードステップに到達するすべての呼び出しを自動承認します。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes.md#actions-no-mode-auto-approves) は除きます。
59* `"Read"` などの各裸の `allowedTools` エントリ。これはコールバックが相談される前にそのツール全体を自動承認します。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) および [ネットワークパスからの読み取り](/docs/ja/permissions#network-paths) は除きます。61* `"Read"` などの各裸の `allowedTools` エントリ。これはコールバックが相談される前にそのツール全体を自動承認します。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes.md#actions-no-mode-auto-approves) および [ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths) は除きます。
60 62
61`Bash(ls *)` などの指定子を持つエントリおよび `acceptEdits` モードはそれをトリガーしません。また、設定ファイルから来る allow ルールはチェックに表示されません。63`Bash(ls *)` などの指定子を持つエントリおよび `acceptEdits` モードはそれをトリガーしません。また、設定ファイルから来る allow ルールはチェックに表示されません。
62 64
64 66
65このページは **allow および deny ルール** および **permission モード** に焦点を当てています。その他のステップについては、以下を参照してください。67このページは **allow および deny ルール** および **permission モード** に焦点を当てています。その他のステップについては、以下を参照してください。
66 68
67* **Hooks:** ツールリクエストを許可、拒否、または変更するカスタムコードを実行します。[実行を Hook で制御する](/docs/ja/agent-sdk/hooks) を参照してください。69* **Hooks:** ツールリクエストを許可、拒否、または変更するカスタムコードを実行します。[実行を Hook で制御する](/docs/ja/agent-sdk/hooks.md) を参照してください。
68* **canUseTool コールバック:** 前のステップで呼び出しが解決されない場合、実行時にユーザーの承認をプロンプトします。[承認とユーザー入力を処理する](/docs/ja/agent-sdk/user-input) を参照してください。70* **canUseTool コールバック:** 前のステップで呼び出しが解決されない場合、実行時にユーザーの承認をプロンプトします。[承認とユーザー入力を処理する](/docs/ja/agent-sdk/user-input.md) を参照してください。
69 71
70## 許可ルールと拒否ルール72## 許可ルールと拒否ルール
71 73
72`allowed_tools` と `disallowed_tools`(TypeScript:`allowedTools` / `disallowedTools`)は、上記の評価フロー内の許可ルールと拒否ルールリストにエントリを追加します。`allowed_tools` に[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking#model-availability)の 1 つを名前で指定すると、Claude Code はそのセッションでタスク追跡ツールも有効にします。`allowed_tools` にリストされていない他のツールは、Claude でも利用可能であり、承認が必要なそのツールへの呼び出しは権限モードにフォールスルーします。拒否ルールは、ツール名を指定するか、ツール内のパターンをスコープするかによって動作が異なります。74`allowed_tools` と `disallowed_tools`(TypeScript:`allowedTools` / `disallowedTools`)は、上記の評価フロー内の許可ルールと拒否ルールリストにエントリを追加します。`allowed_tools` に[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking.md#model-availability)の 1 つを名前で指定すると、Claude Code はそのセッションでタスク追跡ツールも有効にします。`allowed_tools` にリストされていない他のツールは、Claude でも利用可能であり、承認が必要なそのツールへの呼び出しは権限モードにフォールスルーします。拒否ルールは、ツール名を指定するか、ツール内のパターンをスコープするかによって動作が異なります。
73 75
74| オプション | 効果 |76| オプション | 効果 |
75| :- | :- |77| :- | :- |
76| `allowed_tools=["Read", "Grep"]` | `Read` と `Grep` は、[ネットワークパスからの読み取り](/docs/ja/permissions#network-paths)を除いて自動承認されます。ここにリストされていない他のツールは依然として存在し、承認が必要なそれらへの呼び出しは権限モードと `canUseTool` にフォールスルーします。 |78| `allowed_tools=["Read", "Grep"]` | `Read` と `Grep` は、[ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths)を除いて自動承認されます。ここにリストされていない他のツールは依然として存在し、承認が必要なそれらへの呼び出しは権限モードと `canUseTool` にフォールスルーします。 |
77| `disallowed_tools=["Bash"]` | `Bash` ツール定義はリクエストから削除されます。Claude はツールを認識せず、実行を試みることはできません。 |79| `disallowed_tools=["Bash"]` | `Bash` ツール定義はリクエストから削除されます。Claude はツールを認識せず、実行を試みることはできません。 |
78| `disallowed_tools=["Bash(rm *)"]` | `Bash` は利用可能なままです。`rm *`[に記載されているとおり](/docs/ja/permissions#bash-rule-limits)にマッチする呼び出しは、`bypassPermissions` を含むすべての権限モードで拒否されます。`/bin/rm` を含む他の `Bash` 呼び出しは、権限モードにフォールスルーします。 |80| `disallowed_tools=["Bash(rm *)"]` | `Bash` は利用可能なままです。`rm *`[に記載されているとおり](/docs/ja/permissions.md#bash-rule-limits)にマッチする呼び出しは、`bypassPermissions` を含むすべての権限モードで拒否されます。`/bin/rm` を含む他の `Bash` 呼び出しは、権限モードにフォールスルーします。 |
79| `disallowed_tools=["*"]` | すべてのツール定義がリクエストから削除されます。拒否ルールではツール名グロブがサポートされています:`"*"` はすべてのツールにマッチし、`"mcp__*"` はすべてのサーバー全体のすべての MCP ツールにマッチします。 |81| `disallowed_tools=["*"]` | すべてのツール定義がリクエストから削除されます。拒否ルールではツール名グロブがサポートされています:`"*"` はすべてのツールにマッチし、`"mcp__*"` はすべてのサーバー全体のすべての MCP ツールにマッチします。 |
80 82
81許可ルールは、リテラル `mcp__<server>__` プレフィックスの後にのみツール名グロブを受け入れます。サーバーセグメントはグロブフリーである必要があり、設定したサーバーを指定します:`mcp__puppeteer__*` は `puppeteer` サーバーからのすべてのツールにマッチし、`mcp__github__get_*` はその `get_` ツールにマッチします。`allowed_tools=["*"]` や `allowed_tools=["mcp__*"]` のようなアンカーなしエントリは無視され、何も自動承認しません。83許可ルールは、リテラル `mcp__<server>__` プレフィックスの後にのみツール名グロブを受け入れます。サーバーセグメントはグロブフリーである必要があり、設定したサーバーを指定します:`mcp__puppeteer__*` は `puppeteer` サーバーからのすべてのツールにマッチし、`mcp__github__get_*` はその `get_` ツールにマッチします。`allowed_tools=["*"]` や `allowed_tools=["mcp__*"]` のようなアンカーなしエントリは無視され、何も自動承認しません。
82 84
83`Read` と `Edit` のスコープ付きルールはパスパターンを取ります。`Edit(path)` ルールは、`Write` と `NotebookEdit` を含む、ファイルを書き込むすべての組み込みツールを管理します。`Write(path)` ルールはファイル権限チェックによってマッチすることはありません。85`Read` と `Edit` のスコープ付きルールはパスパターンを取ります。`Edit(path)` ルールは、`Write` と `NotebookEdit` を含む、ファイルを書き込むすべての組み込みツールを管理します。`Write(path)` ルールはファイル権限チェックによってマッチすることはありません。
84 86
85絶対ファイルシステムパスには `//path` を使用します:`Edit(//secrets/**)` の拒否ルールは、ディスク上の `/secrets` の下のどこでも書き込みをブロックします。単一の先頭スラッシュの場合、`Edit(/secrets/**)` はルールのソースでアンカーします。`allowed_tools` または `disallowed_tools` を通じて渡されるルールの場合、それはセッションの作業ディレクトリを意味するため、ルールはディスク上の `/secrets` をブロックしません。[Read と Edit ルール](/docs/ja/permissions#read-and-edit)で 4 つのアンカー形式と、設定ファイルからのルール解決方法を参照してください。87絶対ファイルシステムパスには `//path` を使用します:`Edit(//secrets/**)` の拒否ルールは、ディスク上の `/secrets` の下のどこでも書き込みをブロックします。単一の先頭スラッシュの場合、`Edit(/secrets/**)` はルールのソースでアンカーします。`allowed_tools` または `disallowed_tools` を通じて渡されるルールの場合、それはセッションの作業ディレクトリを意味するため、ルールはディスク上の `/secrets` をブロックしません。[Read と Edit ルール](/docs/ja/permissions.md#read-and-edit)で 4 つのアンカー形式と、設定ファイルからのルール解決方法を参照してください。
86 88
87> [!WARNING]89> [!WARNING]
88>90>
89> **自動承認ツールは `canUseTool` に到達しません。** `acceptEdits` または `bypassPermissions` によって、または許可ルールによって、任意の前のステップで承認されたツール呼び出しは、その `canUseTool` コールバックをスキップするため、そこに配置した権限チェックはそのツールに対して静かにバイパスされます。91> **自動承認ツールは `canUseTool` に到達しません。** `acceptEdits` または `bypassPermissions` によって、または許可ルールによって、任意の前のステップで承認されたツール呼び出しは、その `canUseTool` コールバックをスキップするため、そこに配置した権限チェックはそのツールに対して静かにバイパスされます。
90>92>
91> 許可ルールは、`AskUserQuestion`、MCP ツール([`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool)でマークされている)、コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))、および[重要なパス](/docs/ja/permission-modes#critical-paths)をターゲットとする `rm` と `rmdir` 削除を自動承認することはありません。`dontAsk` モードでは、Claude Code はこれらの呼び出しをコールバックを呼び出さずに拒否します。他のモードでは、最初の 3 つはコールバックに到達します。[権限モード](/docs/ja/permission-modes#critical-paths)に応じて、重要なパス削除はコールバックに到達するか、Claude Code はそれを呼び出さずに拒否します。デフォルトでは Agent SDK セッションの `auto` モードでそうするように、です。93> 許可ルールは、`AskUserQuestion`、MCP ツール([`_meta["anthropic/requiresUserInteraction"]`](/docs/ja/mcp#require-approval-for-a-specific-tool)でマークされている)、コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))、および認識された `rm` と `rmdir` の[重要なパスの削除](/docs/ja/permission-modes.md#critical-paths)を自動承認することはありません。`dontAsk` モードでは、Claude Code はこれらの呼び出しをコールバックを呼び出さずに拒否します。他のモードでは、最初の 3 つはコールバックに到達します。[重要なパスのモード表](/docs/ja/permission-modes.md#critical-path-removals-in-each-permission-mode)には、各モードが重要なパスの削除をどのように扱うかが記載されています。これらの削除を認識するチェックは、[一部のコマンドを見逃す可能性があります](/docs/ja/permission-modes.md#critical-paths)。
92>94>
93> カバレッジはエントリの形式に依存します:`Read` や `mcp__github__get_issue` のような裸の名前は、上記の例外と[ネットワークパスからの読み取り](/docs/ja/permissions#network-paths)を除いて、そのツールへのすべての呼び出しを自動承認しますが、`Bash(npm test *)` のようなスコープ付きルールはマッチする呼び出しのみを自動承認し、承認が必要な他の `Bash` 呼び出しはコールバックにフォールスルーします。すべてのツール呼び出しで実行する必要があるチェックの場合は、[`PreToolUse` フック](/docs/ja/agent-sdk/hooks)を使用します:フックはすべての他のステップの前に実行され、フック拒否は `bypassPermissions` モードでも適用されます。95> カバレッジはエントリの形式に依存します:`Read` や `mcp__github__get_issue` のような裸の名前は、上記の例外と[ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths)を除いて、そのツールへのすべての呼び出しを自動承認しますが、`Bash(npm test *)` のようなスコープ付きルールはマッチする呼び出しのみを自動承認し、承認が必要な他の `Bash` 呼び出しはコールバックにフォールスルーします。すべてのツール呼び出しで実行する必要があるチェックの場合は、[`PreToolUse` フック](/docs/ja/agent-sdk/hooks)を使用します:フックはすべての他のステップの前に実行され、フック拒否は `bypassPermissions` モードでも適用されます。
94 96
95ロックダウンされたエージェントの場合、`allowedTools` を `permissionMode: "dontAsk"` と組み合わせます:97ロックダウンされたエージェントの場合、`allowedTools` を `permissionMode: "dontAsk"` と組み合わせます:
96 98
101};103};
102```104```
103 105
104リストされたツールは承認されます。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)と[ネットワークパスからの読み取り](/docs/ja/permissions#network-paths)を除きます。プロンプトを表示する他のすべての呼び出しは代わりに拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview) は、[それらの呼び出しの一部](/docs/ja/permissions#precedence-among-rules-hooks-and-mods)を引き続き承認できます。106リストされたツールは承認されます。ただし、[どのモードも自動承認しないアクション](/docs/ja/permission-modes.md#actions-no-mode-auto-approves)と[ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths)を除きます。プロンプトを表示する他のすべての呼び出しは代わりに拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview.md) は、[それらの呼び出しの一部](/docs/ja/permissions.md#precedence-among-rules-hooks-and-mods)を引き続き承認できます。
105 107
106`default` モードで承認が不要な呼び出しは、リストするかどうかに関わらず実行されます。例えば、[読み取り専用 Bash コマンド](/docs/ja/permissions#read-only-commands)、`Agent` のような実行前に尋ねないツール、および作業ディレクトリ内のファイル読み取りなどです。ツールをリクエストから完全に削除するには、その裸の名前を `disallowedTools` に追加します。108`default` モードで承認が不要な呼び出しは、リストするかどうかに関わらず実行されます。例えば、[読み取り専用 Bash コマンド](/docs/ja/permissions.md#read-only-commands)、`Agent` のような実行前に尋ねないツール、および作業ディレクトリ内のファイル読み取りなどです。ツールをリクエストから完全に削除するには、その裸の名前を `disallowedTools` に追加します。
107 109
108> [!WARNING]110> [!WARNING]
109>111>
110> **`allowed_tools` は `bypassPermissions` を制約しません。** `allowed_tools` はリストしたツールを事前承認します。リストされていない他のツールは、許可ルールによってマッチされず、権限モードにフォールスルーします。ここで `bypassPermissions` はそれらを承認します。`allowed_tools=["Read"]` を `permission_mode="bypassPermissions"` と一緒に設定すると、`Bash`、`Write`、`Edit` を含むすべてのツールが承認されます。`bypassPermissions` が必要だが、特定のツールをブロックしたい場合は、`disallowed_tools` を使用します。112> **`allowed_tools` は `bypassPermissions` を制約しません。** `allowed_tools` はリストしたツールを事前承認します。リストされていない他のツールは、許可ルールによってマッチされず、権限モードにフォールスルーします。ここで `bypassPermissions` はそれらを承認します。`allowed_tools=["Read"]` を `permission_mode="bypassPermissions"` と一緒に設定すると、`Bash`、`Write`、`Edit` を含むすべてのツールが承認されます。`bypassPermissions` が必要だが、特定のツールをブロックしたい場合は、`disallowed_tools` を使用します。
111 113
112`.claude/settings.json` で許可、拒否、および質問ルールを宣言的に設定することもできます。これらのルールは、`project` 設定ソースが有効な場合に読み込まれます。デフォルト `query()` オプションではこれが有効です。`setting_sources`(TypeScript:`settingSources`)を明示的に設定する場合は、それらを適用するために `"project"` を含めます。[権限設定](/docs/ja/settings-reference#permission-settings)でルール構文を参照してください。114`.claude/settings.json` で許可、拒否、および質問ルールを宣言的に設定することもできます。これらのルールは、`project` 設定ソースが有効な場合に読み込まれます。デフォルト `query()` オプションではこれが有効です。`setting_sources`(TypeScript:`settingSources`)を明示的に設定する場合は、それらを適用するために `"project"` を含めます。[権限設定](/docs/ja/settings-reference.md#permission-settings)でルール構文を参照してください。
113 115
114## 権限モード116## 権限モード
115 117
116権限モードは、Claude がツールをどのように使用するかについてグローバルコントロールを提供します。`query()` を呼び出すときに権限モードを設定するか、ストリーミングセッション中に動的に変更できます。118権限モードは、Claude がツールを使用する方法をグローバルに制御します。権限モードは `query()` の呼び出し時に設定することも、ストリーミングセッション中に動的に変更することもできます。
117 119
118Claude Code v2.1.302 以降では、権限モードを設定せず、設定ファイルの [`permissions.defaultMode`](/docs/ja/settings-reference#permissions-defaultmode) からもモードが取得されない場合、アプリは `default` モードで開始します。`default` モードでは、許可ルール、フック、`canUseTool` コールバック、または権限プロンプトツールを通じて承認しない限り、Claude Code は承認が必要なツール呼び出しをすべて拒否します。ツール呼び出しが拒否される場合は、[`claude -p` および Agent SDK の実行でツール呼び出しが拒否される](/docs/ja/permission-modes#which-mode-a-non-interactive-run-starts-in) を参照してください。120Claude Code v2.1.302 以降では、権限モードを設定しない限り、または設定ファイル内の [`permissions.defaultMode`](/docs/ja/settings-reference#permissions-defaultmode) から権限モードが取得されない限り、アプリは `default` モードで起動します。`default` モードでは、許可ルール、フック、`canUseTool` コールバック、または権限プロンプトツールによって承認しない限り、Claude Code は承認が必要なツール呼び出しをすべて拒否します。ツール呼び出しが拒否される場合は、[`claude -p` および Agent SDK の実行でツール呼び出しが拒否される](/docs/ja/permission-modes#which-mode-a-non-interactive-run-starts-in)を参照してください。
119 121
120### 利用可能なモード122### 利用可能なモード
121 123
122SDK は以下の権限モードをサポートしています。124SDK は次の権限モードをサポートしています。
123 125
124| モード | 説明 | ツール動作 |126| モード | 説明 | ツールの動作 |
125| :- | :- | :- |127| :- | :- | :- |
126| `default` | 標準的な権限動作 | モードベースの自動承認なし。承認が必要で許可ルールに一致しないコールは、`canUseTool` コールバックをトリガーします |128| `default` | 標準の権限動作 | モードに基づく自動承認はありません。承認が必要で、どの許可ルールにも一致しない呼び出しは `canUseTool` コールバックをトリガーします |
127| `dontAsk` | プロンプトの代わりに拒否 | それ以外の場合はプロンプトが表示されるコールは拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview) は引き続き [それらのコールの一部](/docs/ja/permissions#precedence-among-rules-hooks-and-mods) を承認できます。`allowed_tools` またはルールで承認されたコール、および `default` モードで承認が不要なコールは実行されます。コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))、ユーザーインタラクションが必要なツール、[ネットワークパスからの読み取り](/docs/ja/permissions#network-paths)、ならびに [重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` および `rmdir` の削除は、事前に承認していても拒否されます。`canUseTool` は呼び出されません |129| `dontAsk` | プロンプトを表示せずに拒否 | 本来であればプロンプトが表示される呼び出しは、`canUseTool` を呼び出さずに拒否されます。ただし、インストールした [mod](/docs/ja/plugins/mods/overview.md) が[それらの呼び出しの一部](/docs/ja/permissions.md#precedence-among-rules-hooks-and-mods)を引き続き承認できます。`allowed_tools` または `settings.json` の許可ルールで承認された呼び出しは実行され、`default` モードで承認を必要としない呼び出しも実行されます。[ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths)など一部の呼び出しは、`allowed_tools` や許可ルールに一致していても拒否されます。一覧については、[Don't ask モード](#don’t-ask-mode-dontask)を参照してください |
128| `acceptEdits` | ファイル編集を自動承認 | ファイル編集および [ファイルシステム操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` など)は自動的に承認されます |130| `acceptEdits` | ファイル編集を自動承認 | ファイル編集と[ファイルシステム操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` など)が自動的に承認されます |
129| `bypassPermissions` | 権限チェックをバイパス | [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) を除き、ツールは権限プロンプトなしで実行されます。注意して使用してください |131| `bypassPermissions` | 権限チェックをバイパス | [どのモードでも自動承認されないアクション](/docs/ja/permission-modes.md#actions-no-mode-auto-approves)を除き、ツールは権限プロンプトなしで実行されます。注意して使用してください |
130| `plan` | 計画モード | Claude はソースファイルを編集せずに探索と計画を行います。ファイル編集は自動承認されず、`canUseTool` コールバックを通じてプロンプトが表示されます |132| `plan` | 計画モード | Claude はソースファイルを編集せずに探索と計画を行います。ファイル編集は自動承認されることはなく、`canUseTool` コールバックを通じてプロンプトが表示されます |
131| `auto` | モデル分類承認 | モデル分類器がシェルコマンドやネットワークリクエストなどのアクションをレビューし、レビューする各アクションを許可またはブロックします。利用可能性と決定順序については [自動モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) を参照してください |133| `auto` | モデルによる分類に基づく承認 | モデル分類器がシェルコマンドやネットワークリクエストなどのアクションを審査し、審査した各アクションを許可またはブロックします。利用条件と判定順序については、[auto モード](/docs/ja/permission-modes.md#eliminate-prompts-with-auto-mode)を参照してください |
132 134
133> [!WARNING]135> [!WARNING]
134>136>
135> **サブエージェント継承:** サブエージェントは、その [`AgentDefinition`](/docs/ja/agent-sdk/typescript#agentdefinition) で `permissionMode` を設定し、親セッションが `default`、`dontAsk`、または `plan` モードにある場合を除き、親セッションの権限モードで実行されます。その場合でも、Claude Code は `"bypassPermissions"` 値を適用せず、`"auto"` 値はそのサブエージェントで [auto モードが利用可能](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) な場合にのみ適用します。サブエージェントは、親セッション自体が `bypassPermissions` モードにある場合にのみ、`bypassPermissions` モードで実行されます。`bypassPermissions` 例外には Claude Code v2.1.267 以降が必要です。137> **サブエージェントの継承:** サブエージェントは、その [`AgentDefinition`](/docs/ja/agent-sdk/typescript#agentdefinition) で `permissionMode` を設定し、かつ親セッションが `default`、`dontAsk`、または `plan` モードである場合を除き、親セッションの権限モードで実行されます。その場合でも、Claude Code は `"bypassPermissions"` の値を適用することはなく、`"auto"` の値はそのサブエージェントで [auto モードが利用可能](/docs/ja/permission-modes.md#eliminate-prompts-with-auto-mode)な場合にのみ適用します。サブエージェントが `bypassPermissions` モードで実行されるのは、親セッション自体がそのモードである場合のみです。`bypassPermissions` に関するこの例外には Claude Code v2.1.267 以降が必要です。
136>138>
137> サブエージェントは、メインエージェントとは異なるシステムプロンプトを持つ可能性があり、動作がより制約されていないため、`bypassPermissions` を継承すると、完全で自律的なシステムアクセスが付与されます。[どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves) は引き続き適用されます。139> サブエージェントは、メインエージェントとは異なるシステムプロンプトを持ち、制約の少ない動作をする場合があるため、`bypassPermissions` を継承すると、完全かつ自律的なシステムアクセスが付与されます。[どのモードでも自動承認されないアクション](/docs/ja/permission-modes.md#actions-no-mode-auto-approves)は引き続き適用されます。
138 140
139### 権限モードを設定する141### 権限モードを設定する
140 142
141クエリを開始するときに権限モードを一度設定するか、セッションがアクティブな間に動的に変更できます。143権限モードは、クエリの開始時に一度設定することも、セッションがアクティブな間に動的に変更することもできます。
142 144
143**クエリ時**145**クエリ時**
144 146
145クエリを作成するときに `permission_mode`(Python)または `permissionMode`(TypeScript)を渡します。147クエリを作成する際に、`permission_mode`(Python)または `permissionMode`(TypeScript)を渡します。
146 148
147```python Python theme={null}149```python Python theme={null}
148import asyncio150import asyncio
184 186
185**ストリーミング中**187**ストリーミング中**
186 188
187`set_permission_mode()`(Python)または `setPermissionMode()`(TypeScript)を呼び出して、セッション中盤でモードを変更します。新しいモードは、その後のすべてのツールリクエストに対して直ちに有効になります。これにより、制限的に開始して、信頼が構築されるにつれて権限を緩和できます。たとえば、Claude の初期アプローチを確認した後に `acceptEdits` に切り替えることができます。189セッションの途中でモードを変更するには、`set_permission_mode()`(Python)または `setPermissionMode()`(TypeScript)を呼び出します。新しいモードは、以降のすべてのツールリクエストに即座に適用されます。これにより、最初は制限的に開始し、信頼が構築されるにつれて権限を緩めることができます。たとえば、Claude の最初のアプローチを確認した後に `acceptEdits` に切り替えることができます。
188 190
189```python Python theme={null}191```python Python theme={null}
190import asyncio192import asyncio
238 240
239### モードの詳細241### モードの詳細
240 242
241#### 編集受け入れモード(`acceptEdits`)243#### Accept edits モード(`acceptEdits`)
242 244
243ファイル操作を自動承認して、Claude がプロンプトなしでコードを編集できるようにします。その他のツール(ファイルシステム操作ではない Bash コマンドなど)は通常の権限が必要です。245ファイル操作を自動承認するため、Claude はプロンプトなしでコードを編集できます。その他のツール(ファイルシステム操作ではない Bash コマンドなど)には、引き続き通常の権限が必要です。
244 246
245**自動承認される操作:**247**自動承認される操作:**
246 248
247* ファイル編集(Edit、Write ツール)249* ファイル編集(Edit、Write ツール)
248* ファイルシステムコマンド:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp`、`sed`250* ファイルシステムコマンド:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp`、`sed`
249 251
250どちらも、作業ディレクトリまたは `additionalDirectories` 内のパスにのみ適用されます。`acceptEdits` モードでは、Claude が以下の場合、Claude Code は要求を自動承認しません。252いずれも、作業ディレクトリまたは `additionalDirectories` 内のパスにのみ適用されます。`acceptEdits` モードでは、Claude が次のことを行う場合、Claude Code はリクエストを自動承認しません。
251 253
252* そのスコープ外のパスで作業する254* そのスコープ外のパスを操作する
253* 保護されたパスに書き込む255* 保護されたパスに書き込む
254* `rm` または `rmdir` で [重要なパス](/docs/ja/permission-modes#critical-paths) を削除する256* Claude Code が[クリティカルパス](/docs/ja/permission-modes.md#critical-paths)として認識するパスを `rm` または `rmdir` で削除する
255 257
256**使用時期:** Claude の編集を信頼し、より高速な反復を望む場合。プロトタイピング中や分離されたディレクトリで作業する場合など。258**使用する場面:** Claude の編集を信頼しており、プロトタイピング中や隔離されたディレクトリで作業する場合など、より速く反復したいとき。
257 259
258#### 質問しないモード(`dontAsk`)260#### Don't ask モード(`dontAsk`)
259 261
260`canUseTool` を呼び出さずに、権限プロンプトを拒否に変換します。ただし、インストールした [mod](/docs/ja/plugins/mods/overview) は引き続き [それらのコールの一部](/docs/ja/permissions#precedence-among-rules-hooks-and-mods) を承認できます。`allowed_tools`、`settings.json` 許可ルール、またはフックで事前承認されたツールは通常どおり実行されます。作業ディレクトリ内のファイル読み取りや `Agent` への呼び出しなど、`default` モードで承認が不要なコールも実行されます。262すべての権限プロンプトを、`canUseTool` を呼び出さずに拒否に変換します。ただし、インストールした [mod](/docs/ja/plugins/mods/overview.md) が[それらの呼び出しの一部](/docs/ja/permissions.md#precedence-among-rules-hooks-and-mods)を引き続き承認できます。`allowed_tools`、`settings.json` の許可ルール、またはフックによって事前承認されたツールは通常どおり実行されます。作業ディレクトリ内でのファイル読み取りや `Agent` の呼び出しなど、`default` モードで承認を必要としない呼び出しも実行されます。
261 263
262コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))、ユーザーインタラクションが必要なツール、[ネットワークパスからの読み取り](/docs/ja/permissions#network-paths)、および [重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` および `rmdir` の削除は、許可ルールが一致する場合でも拒否されます。`PreToolUse` フックによる許可も、重要なパスの削除やネットワークパスからの読み取りをクリアしません。264[組織が `ask` に設定したコネクタツール](/docs/ja/mcp#organization-controls-on-connector-tools)、ユーザーの操作を必要とするツール、[ネットワークパスからの読み取り](/docs/ja/permissions.md#network-paths)、および認識された[クリティカルパスの削除](/docs/ja/permission-modes.md#critical-paths)は、許可ルールに一致していても拒否されます。`PreToolUse` フックによる許可も、認識されたクリティカルパスの削除やネットワークパスからの読み取りを通過させることはありません。これらの削除を認識するチェックは[一部のコマンドを見逃す可能性があります](/docs/ja/permission-modes.md#critical-paths)。
263 265
264**使用時期:** ヘッドレスエージェント用に固定された明示的なツールサーフェスを望み、`canUseTool` が存在しないことへの暗黙的な依存よりもハード拒否を優先する場合。266**使用する場面:** ヘッドレスエージェントに対して固定された明示的なツールのサーフェスを用意したく、`canUseTool` が存在しないことに暗黙的に頼るよりも確実な拒否を望むとき。
265 267
266#### 権限バイパスモード(`bypassPermissions`)268#### Bypass permissions モード(`bypassPermissions`)
267 269
268以下に示す場合を除き、プロンプトなしでツール使用を自動承認します。フックは引き続き実行され、必要に応じて操作をブロックできます。Linux および macOS では、Claude Code はこのモードで root として、または [認識されたサンドボックス](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) 外の `sudo` の下で起動することを拒否し、クエリは最初のターンの前に失敗します。270以下の警告に記載されたケースを除き、ツールの使用をプロンプトなしで自動承認します。フックは引き続き実行され、必要に応じて操作をブロックできます。Linux および macOS では、[認識されたサンドボックス](/docs/ja/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)の外で root として、または `sudo` の下でこのモードで起動しようとすると、Claude Code は起動を拒否し、クエリは最初のターンの前に失敗します。
269 271
270> [!WARNING]272> [!WARNING]
271>273>
272> 極度の注意を持って使用してください。このモードでは Claude はシステムへの完全なアクセスを持ちます。信頼できるすべての操作が可能な制御された環境でのみ使用してください。274> 細心の注意を払って使用してください。このモードでは、Claude はシステムへの完全なアクセス権を持ちます。発生しうるすべての操作を信頼できる、管理された環境でのみ使用してください。
273>275>
274> `allowed_tools` はこのモードを制約しません。リストしたツールだけでなく、すべてのツールが承認されます。これらのコントロールは引き続き適用されます。276> `allowed_tools` はこのモードを制約しません。リストに含めたツールだけでなく、すべてのツールが承認されます。次の制御は引き続き適用されます。
275>277>
276> * 拒否ルール、明示的な `ask` ルール、およびフックはモードチェック前に評価され、ツールをブロックできます。278> * 拒否ルール、明示的な `ask` ルール、およびフックはモードのチェックより前に評価され、引き続きツールをブロックできます。
277> * コネクタツール([組織が `ask` に設定](/docs/ja/mcp#organization-controls-on-connector-tools))、ユーザーインタラクションが必要なツール、および [重要なパス](/docs/ja/permission-modes#critical-paths) をターゲットとする `rm` および `rmdir` の削除は、引き続き `canUseTool` コールバックにフォールスルーします。279> * [組織が `ask` に設定したコネクタツール](/docs/ja/mcp#organization-controls-on-connector-tools)、ユーザーの操作を必要とするツール、および認識された[クリティカルパスの削除](/docs/ja/permission-modes.md#critical-paths)は、引き続き `canUseTool` コールバックに渡されます。これらの削除を認識するチェックは[一部のコマンドを見逃す可能性があります](/docs/ja/permission-modes.md#critical-paths)。
278> * [クロスセッションメッセージングセーフガード](/docs/ja/permission-modes#skip-all-checks-with-bypasspermissions-mode) は引き続き適用されます。280> * [セッション間メッセージングの安全策](/docs/ja/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)は引き続き適用されます。
279 281
280#### 計画モード(`plan`)282#### Plan モード(`plan`)
281 283
282Claude はソースファイルを編集せずにコードベースを探索し、計画を作成します。読み取り専用ツールは `default` 権限モードと同じように実行されます。284Claude はソースファイルを編集せずにコードベースを探索し、計画を作成します。読み取り専用ツールは、`default` 権限モードと同様に実行されます。
283 285
284plan モードでは、許可ルールが一致する場合や `PreToolUse` フックが `allow` を返す場合でも、ファイル編集は自動承認されません。代わりに `canUseTool` コールバックを通じてプロンプトが表示されます。Claude Code v2.1.212 以降では、`touch` や `rm` などのファイルを変更するシェルコマンドは同じ方法で `canUseTool` コールバックに到達します。286plan モードでは、許可ルールに一致した場合や `PreToolUse` フックが `allow` を返した場合でも、ファイル編集が自動承認されることはありません。代わりに、`canUseTool` コールバックを通じてプロンプトが表示されます。Claude Code v2.1.212 以降では、`touch` や `rm` などファイルを変更するシェルコマンドも同様に `canUseTool` コールバックに渡されます。
285 287
286TypeScript SDK で `allowDangerouslySkipPermissions: true` を `permissionMode: 'plan'` と一緒に設定した場合、ファイル編集とファイルを変更するシェルコマンドは引き続き `canUseTool` コールバックに到達します。このオプションにより、後で `setPermissionMode()` で `bypassPermissions` に切り替えることができます。288TypeScript SDK では、`permissionMode: 'plan'` と併せて `allowDangerouslySkipPermissions: true` を設定した場合でも、ファイル編集およびファイルを変更するシェルコマンドは引き続き `canUseTool` コールバックに渡されます。このオプションにより、後で `setPermissionMode()` を使って `bypassPermissions` に切り替えることができます。
287 289
288Claude は計画を最終化する前に、`AskUserQuestion` を使用して要件を明確にする場合があります。これらのプロンプトの処理については、[承認とユーザー入力の処理](/docs/ja/agent-sdk/user-input#handle-clarifying-questions) を参照してください。290Claude は計画を確定する前に、`AskUserQuestion` を使用して要件を明確にする場合があります。これらのプロンプトの処理については、[承認とユーザー入力を処理する](/docs/ja/agent-sdk/user-input.md#handle-clarifying-questions)を参照してください。
289 291
290**使用時期:** Claude に変更を実行せずに提案させたい場合。コードレビュー中や、変更が行われる前に承認する必要がある場合など。292**使用する場面:** コードレビュー中や、変更が行われる前に承認する必要がある場合など、Claude に変更を実行させずに提案させたいとき。
291 293
292#### auto モード(`auto`)294#### Auto モード(`auto`)
293 295
294分類器モデルが、シェルコマンドやネットワークリクエストなどのアクションを実行前にレビューし、レビューする各アクションを許可またはブロックします。auto モードに必要なモデルとプロバイダー、およびアクションを評価する順序については、[auto モードで権限プロンプトをなくす](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode) を参照してください。296分類器モデルが、シェルコマンドやネットワークリクエストなどのアクションを実行前に審査し、審査した各アクションを許可またはブロックします。auto モードに必要なモデルとプロバイダー、およびアクションを評価する順序については、[auto モードで権限プロンプトをなくす](/docs/ja/permission-modes.md#eliminate-prompts-with-auto-mode)を参照してください。
295 297
296auto モードのセッションを、[`set_model()`](/docs/ja/agent-sdk/python#claudesdkclient)、[`setModel()`](/docs/ja/agent-sdk/typescript#query-object)、または [`applyFlagSettings()`](/docs/ja/agent-sdk/typescript#applyflagsettings) を使用して auto モードがサポートしていないモデルに切り替えると、セッションは `default` モードに変わります。298auto モードのセッションを、[`set_model()`](/docs/ja/agent-sdk/python#claudesdkclient)、[`setModel()`](/docs/ja/agent-sdk/typescript#query-object)、または [`applyFlagSettings()`](/docs/ja/agent-sdk/typescript#applyflagsettings) を使用して auto モードがサポートしていないモデルに切り替えると、セッションは `default` モードに変わります。
297 299
298* **表示される内容**:subtype が `status` で、`permissionMode` が `"default"` に設定された `system` メッセージです。TypeScript SDK ではこれを [`SDKStatusMessage`](/docs/ja/agent-sdk/typescript#sdkstatusmessage) として型付けしています。それ以降、承認が必要で許可ルールに一致しないコールは `canUseTool` コールバックに到達します。300* **表示される内容**:サブタイプが `status` で、`permissionMode` が `"default"` に設定された `system` メッセージです。TypeScript SDK ではこれを [`SDKStatusMessage`](/docs/ja/agent-sdk/typescript#sdkstatusmessage) として型付けしています。以降、承認が必要でどの許可ルールにも一致しない呼び出しは、`canUseTool` コールバックに渡されます。
299* **auto モードに戻すには**:サポートされているモデルに切り替えてから、`set_permission_mode("auto")` または `setPermissionMode("auto")` を呼び出します。この呼び出しを行わずにモデルを元に戻した場合、セッションは `default` モードのままです。サポートされていないモデルがアクティブな間は、この呼び出しは `Cannot set permission mode to auto: auto mode unavailable for this model` で失敗します。301* **auto モードに戻すには**:サポートされているモデルに切り替えてから、`set_permission_mode("auto")` または `setPermissionMode("auto")` を呼び出します。この呼び出しを行わずにモデルを元に戻した場合、セッションは `default` モードのままです。サポートされていないモデルがアクティブな間は、この呼び出しは `Cannot set permission mode to auto: auto mode unavailable for this model` で失敗します。
300 302
301`set_model()`、`setModel()`、または `applyFlagSettings()` の呼び出し後の `default` モードへの変更には、Claude Code v2.1.299 以降が必要です。303`set_model()`、`setModel()`、または `applyFlagSettings()` の呼び出し後に `default` モードへ変わる動作には、Claude Code v2.1.299 以降が必要です。
302 304
303## 関連リソース305## 関連リソース
304 306
305権限評価フローの他のステップについては、以下をご覧ください。307権限評価フローの他のステップについては、以下をご覧ください。
306 308
307* [承認とユーザー入力の処理](/docs/ja/agent-sdk/user-input):インタラクティブな承認プロンプトと確認質問309* [承認とユーザー入力の処理](/docs/ja/agent-sdk/user-input.md):インタラクティブな承認プロンプトと確認質問
308* [Hooks ガイド](/docs/ja/agent-sdk/hooks):エージェントライフサイクルの重要なポイントでカスタムコードを実行310* [Hooks ガイド](/docs/ja/agent-sdk/hooks.md):エージェントライフサイクルの重要なポイントでカスタムコードを実行
309* [権限ルール](/docs/ja/settings-reference#permission-settings):`settings.json` の宣言的な許可/拒否ルール311* [権限ルール](/docs/ja/settings-reference.md#permission-settings):`settings.json` の宣言的な許可/拒否ルール