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