465 `resolveSettings()`465 `resolveSettings()`
466</h3>466</h3>
467 467
468CLI を生成せずに、CLI と同じマージエンジンを使用して、指定されたディレクトリの有効な Claude Code 設定を解決します。`query()` 呼び出しを呼び出す前に、設定がどのような設定を見るかを検査するために使用します。468Claude CLI を生成せずに、CLI と同じマージエンジンを使用して、指定されたディレクトリの有効な Claude Code 設定を解決します。`query()` 呼び出しがどのような設定を参照するかを、実際に呼び出す前に検査するために使用します。
469 469
470<Note>470<Note>
471 この関数はアルファ版であり、安定化前に API が変更される可能性があります。471 この関数はアルファ版であり、安定化前に API が変更される可能性があります。
493| :- | :- | :- | :- |493| :- | :- | :- | :- |
494| `options.cwd` | `string` | `process.cwd()` | プロジェクトおよびローカル設定を相対的に解決するディレクトリ |494| `options.cwd` | `string` | `process.cwd()` | プロジェクトおよびローカル設定を相対的に解決するディレクトリ |
495| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | すべてのソース | どのファイルシステムソースをロードするか。ユーザー、プロジェクト、およびローカル設定をスキップするには `[]` を渡してください。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms) はすべての場合にロードされます。`resolveSettings()` は `options.serverManagedSettings` を渡す場合のみサーバー管理設定を含めます |495| `options.settingSources` | [`SettingSource`](#settingsource)`[]` | すべてのソース | どのファイルシステムソースをロードするか。ユーザー、プロジェクト、およびローカル設定をスキップするには `[]` を渡してください。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms) はすべての場合にロードされます。`resolveSettings()` は `options.serverManagedSettings` を渡す場合のみサーバー管理設定を含めます |
496| `options.managedSettings` | `Settings` | `undefined` | 埋め込みホストによって提供されるポリシーティア設定。[`Options`](#options) の [`managedSettings`](#options) と同じルールに従います。ただし、`resolveSettings()` は設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) を実行しないため、スナップショットはライブセッションがドロップする設定を含めることができます |496| `options.managedSettings` | `Settings` | `undefined` | 埋め込みホストによって提供されるポリシーティア設定。[`Options` の `managedSettings`](#options) と同じルールに従います。ただし、`resolveSettings()` は設定された [`policyHelper`](/docs/ja/settings-reference#policyhelper) を実行しないため、スナップショットはライブセッションがドロップする設定を含めることができます |
497| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings` からのサーバー管理設定ペイロード。制限のないキーはフィルタリングなしで通過します |497| `options.serverManagedSettings` | `Settings` | `undefined` | `/api/claude_code/settings` からのサーバー管理設定ペイロード。制限のないキーはフィルタリングなしで通過します |
498 498
499<h4 id="return-type-resolvedsettings">499<h4 id="return-type-resolvedsettings">
504 504
505| プロパティ | 型 | 説明 |505| プロパティ | 型 | 説明 |
506| :- | :- | :- |506| :- | :- | :- |
507| `effective` | `Settings` | すべての有効なソースを優先順序で適用した後のマージされた設定 |507| `effective` | `Settings` | すべての有効なソースを優先順位に従って適用した後のマージされた設定 |
508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | `effective` の各トップレベルキーについて、値を提供したソース |508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | `effective` の各トップレベルキーについて、値を提供したソース |
509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | ソースごとの生の設定。最も低い優先度から最も高い優先度の順に並べられています |509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | ソースごとの生の設定。優先順位の低いものから高いものの順に並べられています |
510 510
511<h4 id="example-5">511<h4 id="example-5">
512 例512 例
539| プロパティ | 型 | デフォルト | 説明 |539| プロパティ | 型 | デフォルト | 説明 |
540| :- | :- | :- | :- |540| :- | :- | :- | :- |
541| `abortController` | `AbortController` | `new AbortController()` | 操作をキャンセルするためのコントローラー |541| `abortController` | `AbortController` | `new AbortController()` | 操作をキャンセルするためのコントローラー |
542| `additionalDirectories` | `string[]` | `[]` | Claude が アクセスできる追加ディレクトリ。SDK は各エントリを Claude Code に `--add-dir` として渡すため、`project` 設定ソースを使用すると Claude Code は [ディレクトリのスキル、コマンド、サブエージェントも読み込みます](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration) |542| `additionalDirectories` | `string[]` | `[]` | Claude がアクセスできる追加のディレクトリ。SDK は各エントリを `--add-dir` として Claude Code に渡すため、`project` 設定ソースを使用している場合、Claude Code は[そのディレクトリのスキル、コマンド、サブエージェントも読み込みます](/docs/ja/permissions#additional-directories-grant-file-access-not-configuration) |
543| `agent` | `string` | `undefined` | メインスレッドのエージェント名。エージェントは `agents` オプションまたは設定で定義されている必要があります |543| `agent` | `string` | `undefined` | メインスレッドのエージェント名。エージェントは `agents` オプションまたは設定で定義されている必要があります |
544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | プログラムでサブエージェントを定義します |544| `agents` | `Record<string, [`AgentDefinition`](#agentdefinition)>` | `undefined` | サブエージェントをプログラムで定義します |
545| `agentProgressSummaries` | `boolean` | `false` | `true` の場合、サブエージェントの 1 行の進捗サマリーを生成し、[`task_progress`](#sdktaskprogressmessage) イベントの `summary` フィールドで転送します。フォアグラウンドおよびバックグラウンドサブエージェントに適用されます |545| `agentProgressSummaries` | `boolean` | `false` | `true` の場合、サブエージェントの 1 行の進捗サマリーを生成し、`summary` フィールドを介して [`task_progress`](#sdktaskprogressmessage) イベントで転送します。フォアグラウンドとバックグラウンドの両方のサブエージェントに適用されます |
546| `allowDangerouslySkipPermissions` | `boolean` | `false` | 権限をバイパスすることを有効にします。`permissionMode: 'bypassPermissions'` を使用する場合に必須です。スタートアップ時またはその後 `setPermissionMode()` を通じて設定できます。[プランモード](/docs/ja/agent-sdk/permissions#plan-mode-plan)を参照して、`permissionMode: 'plan'` との相互作用を確認してください |546| `allowDangerouslySkipPermissions` | `boolean` | `false` | 権限のバイパスを有効にします。起動時、または後から `setPermissionMode()` を通じて `permissionMode: 'bypassPermissions'` を使用する場合に必須です。`permissionMode: 'plan'` との相互作用については [plan モード](/docs/ja/agent-sdk/permissions#plan-mode-plan)を参照してください |
547| `allowedTools` | `string[]` | `[]` | プロンプトなしで自動承認するツール。これは Claude を これらのツールのみに制限しません。[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking#model-availability)の 1 つをここに名前を付けると、Claude Code もセッションをオプトインします。リストされていない他のツールは `permissionMode` と `canUseTool` にフォールスルーします。`disallowedTools` を使用してツールをブロックします。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |547| `allowedTools` | `string[]` | `[]` | プロンプトを表示せずに自動承認するツール。これは Claude をこれらのツールのみに制限するものではありません。ここで[タスク追跡ツール](/docs/ja/agent-sdk/todo-tracking#model-availability)のいずれかを指定すると、Claude Code はセッションでもその機能を有効にします。リストにないその他のツールは `permissionMode` と `canUseTool` にフォールスルーします。ツールをブロックするには `disallowedTools` を使用します。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |
548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | ベータ機能を有効にします |548| `betas` | [`SdkBeta`](#sdkbeta)`[]` | `[]` | ベータ機能を有効にします |
549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | カスタム権限関数。[権限フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)がプロンプトにフォールスルーする場合にのみ呼び出されます。`allowedTools`、許可ルール、または `permissionMode` で自動承認された呼び出しには呼び出されません。許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。詳細は [`CanUseTool`](#canusetool) を参照してください |549| `canUseTool` | [`CanUseTool`](#canusetool) | `undefined` | カスタム権限関数。[権限フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)がプロンプトにフォールスルーした場合にのみ呼び出されます。`allowedTools`、許可ルール、または `permissionMode` によって自動承認された呼び出しでは呼び出されません。許可ルールは[どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。詳細は [`CanUseTool`](#canusetool) を参照してください |
550| `continue` | `boolean` | `false` | 最新の会話を続行します |550| `continue` | `boolean` | `false` | 最新の会話を続行します |
551| `cwd` | `string` | `process.cwd()` | 現在の作業ディレクトリ |551| `cwd` | `string` | `process.cwd()` | 現在の作業ディレクトリ |
552| `debug` | `boolean` | `false` | Claude Code プロセスのデバッグモードを有効にします |552| `debug` | `boolean` | `false` | Claude Code プロセスのデバッグモードを有効にします |
553| `debugFile` | `string` | `undefined` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします |553| `debugFile` | `string` | `undefined` | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします |
554| `disallowedTools` | `string[]` | `[]` | 拒否するツール。`"Bash"` のような単純な名前はツールを Claude のコンテキストから削除します。`"Bash(rm *)"` のようなスコープ付きルールはツールを利用可能なままにし、[書かれたコマンド](/docs/ja/permissions#bash-rule-limits)に対して `bypassPermissions` を含むすべての権限モードで一致する呼び出しを拒否します。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |554| `disallowedTools` | `string[]` | `[]` | 拒否するツール。`"Bash"` のような名前のみの指定は、ツールを Claude のコンテキストから削除します。`"Bash(rm *)"` のようなスコープ付きルールはツールを利用可能なままにし、`bypassPermissions` を含むすべての権限モードで、[記述されたとおりの](/docs/ja/permissions#bash-rule-limits)コマンドに一致する呼び出しを拒否します。[権限](/docs/ja/agent-sdk/permissions#allow-and-deny-rules)を参照してください |
555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Claude が応答に費やす努力の量を制御します。適応的思考と連携して思考の深さをガイドします。[努力レベルを調整](/docs/ja/model-config#adjust-effort-level)を参照してください |555| `effort` | `'low' \| 'medium' \| 'high' \| 'xhigh' \| 'max'` | `undefined` | Claude が応答にどれだけの労力をかけるかを制御します。適応型思考と連携して思考の深さを導きます。[effort レベルを調整する](/docs/ja/model-config#adjust-effort-level)を参照してください |
556| `enableFileCheckpointing` | `boolean` | `false` | ファイル変更追跡を有効にして巻き戻しを可能にします。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing)を参照してください |556| `enableFileCheckpointing` | `boolean` | `false` | 巻き戻しのためのファイル変更追跡を有効にします。[ファイルチェックポイント機能](/docs/ja/agent-sdk/file-checkpointing)を参照してください |
557| `env` | `Record<string, string \| undefined>` | `process.env` | 環境変数。設定すると、このサブプロセス環境を `process.env` とマージするのではなく置き換えるため、`PATH` のような継承変数を保持するには `{ ...process.env, YOUR_VAR: 'value' }` を渡してください。このパターンの例は [遅いまたは停止した API レスポンスを処理](#handle-slow-or-stalled-api-responses)を参照し、基盤となる CLI が読み取る変数については [環境変数](/docs/ja/env-vars)を参照してください。`CLAUDE_AGENT_SDK_CLIENT_APP` を設定して User-Agent ヘッダーでアプリを識別します |557| `env` | `Record<string, string \| undefined>` | `process.env` | 環境変数。設定すると、`process.env` とマージされるのではなくサブプロセスの環境を置き換えるため、`PATH` などの継承された変数を保持するには `{ ...process.env, YOUR_VAR: 'value' }` を渡してください。このパターンの例については[遅い API レスポンスや停止した API レスポンスに対処する](#handle-slow-or-stalled-api-responses)を、基盤となる CLI が読み取る変数については[環境変数](/docs/ja/env-vars)を参照してください。User-Agent ヘッダーでアプリを識別するには `CLAUDE_AGENT_SDK_CLIENT_APP` を設定します |
558| `executable` | `'bun' \| 'deno' \| 'node'` | 自動検出 | 使用する JavaScript ランタイム |558| `executable` | `'bun' \| 'deno' \| 'node'` | 自動検出 | 使用する JavaScript ランタイム |
559| `executableArgs` | `string[]` | `[]` | 実行可能ファイルに渡す引数 |559| `executableArgs` | `string[]` | `[]` | 実行ファイルに渡す引数 |
560| `extraArgs` | `Record<string, string \| null>` | `{}` | 追加引数 |560| `extraArgs` | `Record<string, string \| null>` | `{}` | 追加の引数 |
561| `fallbackModel` | `string` | `undefined` | プライマリモデルが失敗した場合に使用するモデル。カンマ区切りリストを受け入れます。順序と上限については [フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)を参照してください。ガイダンスについては [モデルを選択](/docs/ja/agent-sdk/configuration#choose-a-model)を参照してください |561| `fallbackModel` | `string` | `undefined` | プライマリモデルが失敗した場合に使用するモデル。カンマ区切りのリストを受け付けます。順序と上限については[フォールバックモデルチェーン](/docs/ja/model-config#fallback-model-chains)を参照してください。ガイダンスについては[モデルを選択する](/docs/ja/agent-sdk/configuration#choose-a-model)を参照してください |
562| `forkSession` | `boolean` | `false` | `resume` で再開する場合、元のセッション ID を続行する代わりに新しいセッション ID にフォークします |562| `forkSession` | `boolean` | `false` | `resume` で再開する際に、元のセッションを続行するのではなく新しいセッション ID にフォークします |
563| `forwardSubagentText` | `boolean` | `false` | サブエージェントのテキストと思考ブロックをアシスタントおよびユーザーメッセージとして `parent_tool_use_id` を設定して転送し、コンシューマーがネストされたトランスクリプトをレンダリングできるようにします。このオプションがない場合、Claude Code はサブエージェント `tool_use` および `tool_result` ブロックを出力しますが、テキストまたは思考は出力しません。すべてのネストの深さのサブエージェントからのメッセージは Claude Code v2.1.219 以降で転送されます。v2.1.219 より前では、深さ 1 のサブエージェントからのメッセージのみが表示されました。フォークされたスキルが生成するサブエージェントのメッセージ、およびネストされたフォークされたスキルのメッセージには v2.1.275 以降が必要です |563| `forwardSubagentText` | `boolean` | `false` | サブエージェントのテキストと思考ブロックを、`parent_tool_use_id` が設定されたアシスタントメッセージおよびユーザーメッセージとして転送し、コンシューマーがネストされたトランスクリプトをレンダリングできるようにします。このオプションがない場合、Claude Code はサブエージェントの `tool_use` ブロックと `tool_result` ブロックを出力しますが、テキストや思考は出力しません。Claude Code v2.1.219 以降では、すべてのネスト深度のサブエージェントからのメッセージが転送されます。v2.1.219 より前は、深度 1 のサブエージェントからのメッセージのみが表示されていました。フォークされたスキルが生成するサブエージェントのメッセージ、およびネストされたフォークされたスキルのメッセージには v2.1.275 以降が必要です |
564| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | イベントのフックコールバック |564| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | イベントのフックコールバック |
565| `includeHookEvents` | `boolean` | `false` | フックライフサイクルイベントをメッセージストリームに [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage)、および [`SDKHookResponseMessage`](#sdkhookresponsemessage) として含めます。`SessionStart` および `Setup` フックのライフサイクルイベントは常に含まれ、このオプションは不要です。`Notification`、`SessionEnd`、`PreCompact`、`PostCompact` などの一部のフックイベントは、このオプションを使用しても `SDKHookStartedMessage` を生成しません。これらのイベントについては、Claude Code は コマンドフックが 1 秒以上実行される場合に出力を生成する `SDKHookProgressMessage` を出力し、[バックグラウンドで実行](/docs/ja/hooks#run-hooks-in-the-background)するフックが完了した場合にのみ `SDKHookResponseMessage` を出力します |565| `includeHookEvents` | `boolean` | `false` | フックのライフサイクルイベントを [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage)、[`SDKHookResponseMessage`](#sdkhookresponsemessage) としてメッセージストリームに含めます。`SessionStart` フックと `Setup` フックのライフサイクルイベントは常に含まれるため、このオプションは不要です。`Notification`、`SessionEnd`、`PreCompact`、`PostCompact` など一部のフックイベントは、このオプションを指定しても `SDKHookStartedMessage` を生成しません。これらのイベントでも、1 秒以上実行されるコマンドフックが出力を生成している間は Claude Code は `SDKHookProgressMessage` を出力し、`SDKHookResponseMessage` は[バックグラウンドで実行される](/docs/ja/hooks#run-hooks-in-the-background)フックが終了した場合にのみ出力します |
566| `includePartialMessages` | `boolean` | `false` | 部分メッセージイベントを含めます |566| `includePartialMessages` | `boolean` | `false` | 部分メッセージイベントを含めます |
567| `loadTimeoutMs` | `number` | `60000` | *アルファ。* 再開の具体化中に各 `sessionStore.load()` および `sessionStore.listSubkeys()` 呼び出しのタイムアウト(ミリ秒)。アダプターがこのウィンドウ内で解決しない場合、クエリはハングする代わりに失敗します。`sessionStore` が設定されていない場合は無視されます |567| `loadTimeoutMs` | `number` | `60000` | *アルファ版。* 再開時のマテリアライズ中の各 `sessionStore.load()` および `sessionStore.listSubkeys()` 呼び出しのタイムアウト(ミリ秒)。アダプターがこの時間内に完了しない場合、クエリはハングせずに失敗します。`sessionStore` が設定されていない場合は無視されます |
568| `managedSettings` | `Settings` | `undefined` | ホストプロセスがスポーンされたセッションに提供するポリシー層設定。管理者がデプロイした管理設定を持つマシンでは、管理者の最優先管理ソースが `parentSettingsBehavior: 'merge'` を設定しない限り、Claude Code はこれらを無視し、[`policyHelper`](/docs/ja/settings-reference#policyhelper) が管理設定を提供している間はマージしません。マージされた値は制限のみのフィルターを通過します。[親設定を制限](/docs/ja/claude-apps-gateway#restrict-parent-settings)はフィルターが許可するものと `allowManaged*Only` ロックをカバーしています。[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定するホストには、このペイロードから直接読み取られる 3 つのキーがあります。Claude Code v2.1.222 以降の [モデル設定](/docs/ja/model-config#restrict-model-selection)、管理ソースが設定していない場合の v2.1.246 以降の [`modelPricing`](/docs/ja/settings-reference#modelpricing)、および v2.1.247 以降の `ENABLE_TOOL_SEARCH` env エントリ |568| `managedSettings` | `Settings` | `undefined` | ホストプロセスが生成されたセッションに提供するポリシー層の設定。管理者がデプロイした管理設定があるマシンでは、管理者の優先順位が最も高い管理ソースが `parentSettingsBehavior: 'merge'` を設定していない限り Claude Code はこれらを無視し、[`policyHelper`](/docs/ja/settings-reference#policyhelper) が管理設定を提供している間は決してマージしません。マージされた値は制限のみを許可するフィルターを通過します。フィルターが許可する内容と `allowManaged*Only` ロックについては[親設定を制限する](/docs/ja/claude-apps-gateway#restrict-parent-settings)で説明しています。[`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/ja/env-vars) を設定するホストでは、次の 3 つのキーが代わりにこのペイロードから直接読み取られます。Claude Code v2.1.222 以降ではその[モデル設定](/docs/ja/model-config#restrict-model-selection)、v2.1.246 以降ではどの管理ソースも設定していない場合の [`modelPricing`](/docs/ja/settings-reference#modelpricing)、v2.1.247 以降ではその `ENABLE_TOOL_SEARCH` env エントリです |
569| `maxBudgetUsd` | `number` | `undefined` | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。呼び出し自体の支出のみをカウントします。再開されたセッションから復元された合計はカウントされません。精度の注意事項とリセット動作については [コストと使用状況を追跡](/docs/ja/agent-sdk/cost-tracking)を参照してください |569| `maxBudgetUsd` | `number` | `undefined` | クライアント側のコスト見積もりがこの USD 値に達したらクエリを停止します。この呼び出し自体の支出のみがカウントされ、再開されたセッションから復元された合計はカウントされません。精度に関する注意点とリセット動作については[コストと使用量を追跡する](/docs/ja/agent-sdk/cost-tracking)を参照してください |
570| `maxThinkingTokens` | `number` | `undefined` | *非推奨:* 代わりに `thinking` を使用してください。思考プロセスの最大トークン数 |570| `maxThinkingTokens` | `number` | `undefined` | *非推奨:* 代わりに `thinking` を使用してください。思考プロセスの最大トークン数 |
571| `maxTurns` | `number` | `undefined` | 最大エージェンティックターン数(ツール使用ラウンドトリップ) |571| `maxTurns` | `number` | `undefined` | エージェントの最大ターン数(ツール使用の往復) |
572| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP サーバー設定 |572| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | MCP サーバーの設定 |
573| `model` | `string` | CLI からのデフォルト | Claude モデルエイリアスまたは完全なモデル名。[受け入れられた値とプロバイダー固有の ID](/docs/ja/model-config#available-models) を参照してください |573| `model` | `string` | CLI のデフォルト | Claude のモデルエイリアスまたは完全なモデル名。[使用可能な値とプロバイダー固有の ID](/docs/ja/model-config#available-models) を参照してください |
574| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | MCP 誘導リクエストを処理するためのコールバック。MCP サーバーがユーザー入力をリクエストし、フックが最初に処理しない場合に呼び出されます。提供されない場合、処理されない誘導リクエストは自動的に拒否されます |574| `onElicitation` | `(request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult>` | `undefined` | MCP elicitation リクエストを処理するためのコールバック。MCP サーバーがユーザー入力を要求し、どのフックも先に処理しない場合に呼び出されます。指定しない場合、処理されない elicitation リクエストは自動的に拒否されます |
575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | エージェント結果の出力形式を定義します。詳細は [構造化出力](/docs/ja/agent-sdk/structured-outputs)を参照してください |575| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | エージェントの結果の出力形式を定義します。詳細は[構造化出力](/docs/ja/agent-sdk/structured-outputs)を参照してください |
576| `outputStyle` | `string` | `undefined` | `Options` フィールドではありません。インライン [`settings`](/docs/ja/settings) オブジェクトまたは設定ファイルで `outputStyle` を設定してください。[出力スタイルを有効化](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください |576| `outputStyle` | `string` | `undefined` | `Options` のフィールドではありません。代わりに、インラインの [`settings`](/docs/ja/settings) オブジェクトまたは設定ファイルで `outputStyle` を設定してください。[出力スタイルを有効にする](/docs/ja/agent-sdk/modifying-system-prompts#activate-an-output-style)を参照してください |
577| `pathToClaudeCodeExecutable` | `string` | バンドルされたネイティブバイナリから自動解決 | Claude Code 実行可能ファイルへのパス。オプションの依存関係がインストール中にスキップされた場合、またはプラットフォームがサポートされているセットにない場合にのみ必要です |577| `pathToClaudeCodeExecutable` | `string` | バンドルされたネイティブバイナリから自動解決 | Claude Code 実行ファイルへのパス。インストール時にオプションの依存関係がスキップされた場合、またはプラットフォームがサポート対象に含まれていない場合にのみ必要です |
578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | セッションの権限モード。省略した場合、セッションはオートモードで開始できます。Claude Code がスタート権限モードを選択する方法については [権限モード](/docs/ja/agent-sdk/permissions#permission-modes)を参照してください |578| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | セッションの権限モード。省略した場合、セッションは auto モードで開始される可能性があります。Claude Code が開始時の権限モードをどのように選択するかについては[権限モード](/docs/ja/agent-sdk/permissions#permission-modes)を参照してください |
579| `permissionPromptToolName` | `string` | `undefined` | 権限プロンプトの MCP ツール名 |579| `permissionPromptToolName` | `string` | `undefined` | 権限プロンプト用の MCP ツール名 |
580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 権限プロンプトに応答する者: `'host'` はそれらを [`canUseTool`](#canusetool) コールバックまたは `permissionPromptToolName` ツールにルーティングし、`'none'` は [プロンプトが表示されるはずだった呼び出しを拒否](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)します。Claude Code v2.1.259 以降が必要です |580| `permissionPrompts` | `'host' \| 'none'` | `'host'` | 権限プロンプトに誰が応答するかを指定します。`'host'` はプロンプトを [`canUseTool`](#canusetool) コールバックまたは `permissionPromptToolName` ツールにルーティングし、`'none'` は[プロンプトを表示するはずだった呼び出しを拒否します](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)。Claude Code v2.1.259 以降が必要です |
581| `persistSession` | `boolean` | `true` | `false` の場合、ディスクへのセッション永続化を無効にします。セッションは後で再開できません |581| `persistSession` | `boolean` | `true` | `false` の場合、ディスクへのセッションの永続化を無効にします。セッションは後で再開できません |
582| `planModeInstructions` | `string` | `undefined` | プランモードのカスタムワークフロー指示。`permissionMode` が `'plan'` の場合、この文字列はデフォルトのプランモードワークフロー本体を置き換えます。CLI は引き続き読み取り専用強制プリアンブルと ExitPlanMode プロトコルフッターでラップします |582| `planModeInstructions` | `string` | `undefined` | plan モード用のカスタムワークフロー指示。`permissionMode` が `'plan'` の場合、この文字列がデフォルトの plan モードのワークフロー本文を置き換えます。CLI は引き続き、読み取り専用を強制するプリアンブルと ExitPlanMode プロトコルのフッターでこれをラップします |
583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | ローカルパスからカスタムプラグインを読み込みます。詳細は [プラグイン](/docs/ja/agent-sdk/plugins)を参照してください |583| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | ローカルパスからカスタムプラグインを読み込みます。詳細は[プラグイン](/docs/ja/agent-sdk/plugins)を参照してください |
584| `projectConfigRoot` | `string` | `undefined` | `cwd` がワークツリーである信頼できるチェックアウトの絶対パス。Claude Code はプロジェクト設定、`.mcp.json`、およびプロジェクトの `.claude/` コマンド、エージェント、スキル、ワークフロー、ルーチン、および出力スタイルをこのディレクトリから `cwd` の代わりに読み取り、`CLAUDE_PROJECT_DIR` をそれに設定します。フック、`apiKeyHelper` などのヘルパースクリプト、および stdio MCP サーバーはこのディレクトリをワーキングディレクトリとして開始します。`CLAUDE.md` ファイルと `.claude/rules/` は引き続き `cwd` から読み込まれます。Claude Code v2.1.275 以降が必要です |584| `projectConfigRoot` | `string` | `undefined` | `cwd` がその worktree となっている信頼済みチェックアウトの絶対パス。Claude Code は、プロジェクト設定、`.mcp.json`、およびプロジェクトの `.claude/` のコマンド、エージェント、スキル、ワークフロー、ルーティン、出力スタイルを `cwd` ではなくこのディレクトリから読み取り、`CLAUDE_PROJECT_DIR` をこのディレクトリに設定します。フック、`apiKeyHelper` などのヘルパースクリプト、stdio MCP サーバーは、このディレクトリを作業ディレクトリとして起動します。`CLAUDE.md` ファイルと `.claude/rules/` は引き続き `cwd` から読み込まれます。Claude Code v2.1.275 以降が必要です |
585| `promptSuggestions` | `boolean` | `false` | プロンプト提案を有効にします。ターン後、Claude Code は予測される次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。アカウントが使用制限に近い、または達している場合など、一部のターンでは Claude Code は提案を生成しません。[Claude Code が提案をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions)を参照してください |585| `promptSuggestions` | `boolean` | `false` | プロンプト候補を有効にします。ターンの後、Claude Code は予測された次のユーザープロンプトを含む `prompt_suggestion` メッセージを出力します。アカウントが使用制限に近づいているか達している間など、一部のターンでは Claude Code は候補を生成しません。[Claude Code が候補をスキップする場合](/docs/ja/interactive-mode#when-claude-code-skips-suggestions)を参照してください |
586| `resume` | `string` | `undefined` | 再開するセッション ID |586| `resume` | `string` | `undefined` | 再開するセッション ID |
587| `resumeDropsTurn` | `string` | `undefined` | `resumeSessionAt` を使用: 切り詰め再開が破棄することを意図するターンのプロンプト UUID。破棄された範囲に、吸収されたキューに入ったメッセージやタスク通知など、そのターンに帰属しないものが含まれている場合、Claude Code は再開を拒否し、拒否メッセージで `--resume-drops-turn` フラグを名前付けします。Agent SDK とプリントモード再開のみがペアを読み取ります。Claude Code v2.1.223 以降が必要です |587| `resumeDropsTurn` | `string` | `undefined` | `resumeSessionAt` と併用します。切り詰めを伴う再開で破棄しようとするターンのプロンプト UUID です。破棄される範囲に、取り込まれたキュー内のメッセージやタスク通知など、そのターンに帰属しないものが含まれている場合、Claude Code は再開を拒否し、拒否メッセージで `--resume-drops-turn` フラグを示します。このペアを読み取るのは Agent SDK と print モードの再開のみです。Claude Code v2.1.223 以降が必要です |
588| `resumeSessionAt` | `string` | `undefined` | 特定のメッセージ UUID でセッションを再開します |588| `resumeSessionAt` | `string` | `undefined` | 特定のメッセージ UUID の時点でセッションを再開します |
589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | サンドボックス動作をプログラムで設定します。詳細は [サンドボックス設定](#sandboxsettings)を参照してください |589| `sandbox` | [`SandboxSettings`](#sandboxsettings) | `undefined` | サンドボックスの動作をプログラムで設定します。詳細は[サンドボックス設定](#sandboxsettings)を参照してください |
590| `sessionId` | `string` | 自動生成 | 自動生成する代わりに特定の UUID をセッションに使用します |590| `sessionId` | `string` | 自動生成 | 自動生成する代わりに、セッションに特定の UUID を使用します |
591| `sessionStore` | [`SessionStore`](/docs/ja/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | セッショントランスクリプトを外部バックエンドにミラーリングして、別のホストがそれらを再開できるようにします。[セッションを外部ストレージに永続化](/docs/ja/agent-sdk/session-storage)を参照してください |591| `sessionStore` | [`SessionStore`](/docs/ja/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 別のホストが再開できるように、セッションのトランスクリプトを外部バックエンドにミラーリングします。[外部ストレージにセッションを永続化する](/docs/ja/agent-sdk/session-storage)を参照してください |
592| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *アルファ。* `sessionStore` のフラッシュモード。`sessionStore` が設定されていない場合は無視されます |592| `sessionStoreFlush` | `'batched' \| 'eager'` | `'batched'` | *アルファ版。* `sessionStore` のフラッシュモード。`sessionStore` が設定されていない場合は無視されます |
593| `settings` | `string \| Settings` | `undefined` | インライン [settings](/docs/ja/settings) オブジェクト、設定ファイルパス、またはインライン JSON 文字列。[優先順位](/docs/ja/settings#settings-precedence)でフラグ設定層を入力します。[`applyFlagSettings()`](#applyflagsettings) でランタイムに変更します |593| `settings` | `string \| Settings` | `undefined` | インラインの[設定](/docs/ja/settings)オブジェクト、設定ファイルのパス、またはインライン JSON 文字列。[優先順位](/docs/ja/settings#settings-precedence)におけるフラグ設定レイヤーに値を設定します。実行時に [`applyFlagSettings()`](#applyflagsettings) で変更できます |
594| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI デフォルト(すべてのソース) | どのファイルシステム設定を読み込むかを制御します。ユーザー、プロジェクト、ローカル設定を無効にするには `[]` を渡します。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms)は関係なく読み込まれます。サーバー管理設定は、セッションが [適格な設定](/docs/ja/server-managed-settings#platform-availability)で組織認証情報を使用して認証する場合に取得されます。[Claude Code 機能を使用](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照してください |594| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI のデフォルト(すべてのソース) | 読み込むファイルシステム設定を制御します。ユーザー、プロジェクト、ローカルの設定を無効にするには `[]` を渡します。[エンドポイント管理ポリシー](/docs/ja/managed-settings#delivery-mechanisms)はこの指定に関係なく読み込まれます。サーバー管理設定は、セッションが[対象となる設定](/docs/ja/server-managed-settings#platform-availability)で組織の認証情報を使って認証される場合に取得されます。[Claude Code の機能を使用する](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照してください |
595| `skills` | `string[] \| 'all'` | `undefined` | セッションで利用可能なスキル。すべての検出されたスキルを有効にするには `'all'` を渡すか、スキル名のリストを渡します。正確な名前のみを渡してください。Agent SDK v0.3.221 以降では、SDK は形式が正しくないワイルドカード形式の名前を Claude Code プロセスを開始する前にエラーで拒否します。設定すると、SDK は Skill ツールを `allowedTools` に自動的に追加します。`tools` も渡す場合は、そのリストに `'Skill'` を含めてください。[スキル](/docs/ja/agent-sdk/skills)を参照してください |595| `skills` | `string[] \| 'all'` | `undefined` | セッションで使用可能なスキル。検出されたすべてのスキルを有効にするには `'all'` を、またはスキル名のリストを渡します。正確な名前のみを渡してください。Agent SDK v0.3.221 以降では、SDK は Claude Code プロセスを開始する前に、不正な形式の名前とワイルドカード形式の名前をエラーで拒否します。設定すると、SDK は Skill ツールを自動的に `allowedTools` に追加します。`tools` も渡す場合は、そのリストに `'Skill'` を含めてください。[スキル](/docs/ja/agent-sdk/skills)を参照してください |
596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code プロセスをスポーンするカスタム関数。VM、コンテナ、またはリモート環境で Claude Code を実行するために使用します |596| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | Claude Code プロセスを生成するカスタム関数。VM、コンテナ、またはリモート環境で Claude Code を実行する場合に使用します |
597| `stderr` | `(data: string) => void` | `undefined` | stderr 出力のコールバック |597| `stderr` | `(data: string) => void` | `undefined` | stderr 出力のコールバック |
598| `strictMcpConfig` | `boolean` | `false` | `mcpServers` で渡されたサーバーのみを使用し、プロジェクト `.mcp.json`、ユーザー設定、プラグイン提供の MCP サーバー、および [claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)を無視します |598| `strictMcpConfig` | `boolean` | `false` | `mcpServers` で渡されたサーバーのみを使用し、プロジェクトの `.mcp.json`、ユーザー設定、プラグインが提供する MCP サーバー、[claude.ai コネクタ](/docs/ja/mcp#use-mcp-servers-from-claude-ai)を無視します |
599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小プロンプト) | システムプロンプト設定。カスタムプロンプトの場合は文字列を渡すか、Claude Code のシステムプロンプトを使用するには `{ type: 'preset', preset: 'claude_code' }` を渡します。エクスポートされた `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 定数を静的部分とリクエストごとの部分の間に含む文字列の配列を渡して、[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)します。プリセットオブジェクト形式を使用する場合、追加の指示で拡張するには `append` を追加し、セッションごとのコンテキストを最初のユーザーメッセージに移動するには `excludeDynamicSections: true` を設定して、[マシン間でのプロンプトキャッシュの再利用を改善](/docs/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)します。セッションが最初のリクエストで記録したプロンプトを再利用する代わりに、すべてのリクエストでプロンプトを再構築するには `snapshot: false` を設定します。カスタムプロンプトで `snapshot` を設定するには、`{ type: 'custom', prompt }` 形式を渡します。`{ type: 'custom' }` 形式と `snapshot` フィールドには TypeScript Agent SDK v0.3.257 以降が必要です |599| `systemPrompt` | `string \| string[] \| { type: 'custom'; prompt: string \| string[]; snapshot?: boolean } \| { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean; snapshot?: boolean }` | `undefined`(最小限のプロンプト) | システムプロンプトの設定。カスタムプロンプトには文字列を渡し、Claude Code のシステムプロンプトを使用するには `{ type: 'preset', preset: 'claude_code' }` を渡します。静的部分とリクエストごとの部分の間にエクスポートされた `SYSTEM_PROMPT_DYNAMIC_BOUNDARY` 定数を挟んだ文字列の配列を渡すと、[カスタムプロンプトの静的部分をキャッシュ](/docs/ja/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)できます。プリセットオブジェクト形式を使用する場合は、`append` を追加すると追加の指示で拡張でき、`excludeDynamicSections: true` を設定するとセッションごとのコンテキストを最初のユーザーメッセージに移動して[マシン間でのプロンプトキャッシュの再利用を改善](/docs/ja/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)できます。`snapshot: false` を設定すると、[セッションが最初のリクエストで記録したプロンプトを再利用する](/docs/ja/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)代わりに、リクエストごとにプロンプトを再構築します。カスタムプロンプトで `snapshot` を設定するには、`{ type: 'custom', prompt }` 形式を渡します。`{ type: 'custom' }` 形式と `snapshot` フィールドには TypeScript Agent SDK v0.3.257 以降が必要です |
600| `taskBudget` | `{ total: number }` | `undefined` | *アルファ。* API 側のタスク予算(トークン)。設定すると、モデルは残りのトークン予算を知らされるため、ツール使用のペースを調整し、制限前にラップアップできます |600| `taskBudget` | `{ total: number }` | `undefined` | *アルファ版。* トークン単位の API 側のタスク予算。設定すると、モデルに残りのトークン予算が伝えられ、モデルはツールの使用ペースを調整して上限に達する前に作業をまとめられるようになります |
601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | サポートされているモデルの場合 `{ type: 'adaptive' }` | Claude の思考/推論動作を制御します。オプションについては [`ThinkingConfig`](#thinkingconfig)を参照してください |601| `thinking` | [`ThinkingConfig`](#thinkingconfig) | サポートされているモデルでは `{ type: 'adaptive' }` | Claude の思考/推論の動作を制御します。オプションについては [`ThinkingConfig`](#thinkingconfig) を参照してください |
602| `title` | `string` | `undefined` | セッションの表示タイトル。`resume` または `continue` で再開する場合、再開されたセッションの永続化されたタイトルが優先されます。既存のセッションを再タイトルするには [`renameSession()`](#renamesession) を使用してください |602| `title` | `string` | `undefined` | セッションの表示タイトル。`resume` または `continue` で再開する場合は、再開されたセッションに保存されているタイトルが優先されます。既存のセッションのタイトルを変更するには [`renameSession()`](#renamesession) を使用します |
603| `toolAliases` | `Record<string, string>` | `undefined` | 組み込みツール名を MCP ツール名にマップして、Claude が組み込みの代わりに MCP 実装を呼び出すようにします。例えば、`{ Bash: 'mcp__workspace__bash' }` |603| `toolAliases` | `Record<string, string>` | `undefined` | 組み込みツール名を MCP ツール名にマッピングし、Claude が組み込みツールの代わりに MCP 実装を呼び出すようにします。例: `{ Bash: 'mcp__workspace__bash' }` |
604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 組み込みツール動作の設定。詳細は [`ToolConfig`](#toolconfig)を参照してください |604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 組み込みツールの動作の設定。詳細は [`ToolConfig`](#toolconfig) を参照してください |
605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | ツール設定。ツール名の配列を渡すか、プリセットを使用して Claude Code のデフォルトツールを取得します |605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | ツールの設定。ツール名の配列を渡すか、プリセットを使用して Claude Code のデフォルトツールを取得します |
606| `verbatimPrompts` | `boolean` | `false` | すべてのプロンプトを書かれたとおりに配信します。SDK は各ユーザーメッセージを `client_composed: true` で送信します。Claude Code がこれらのメッセージでスキップするものについては [`client_composed`](#sdkusermessage)を参照してください。プロンプトテキストにエンドユーザーが入力しなかったコンテンツが含まれている場合にこのオプションを使用します。ターンごとの制御については、これをオフのままにして、代わりにストリーミングされたメッセージで個別に `client_composed` を設定してください。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。これらの SDK バージョンにバンドルされている Claude Code バージョンは Claude Code 要件を満たしています |606| `verbatimPrompts` | `boolean` | `false` | すべてのプロンプトを記述されたとおりに配信します。SDK は各ユーザーメッセージを `client_composed: true` 付きで送信します。これらのメッセージで Claude Code がスキップする処理については [`client_composed`](#sdkusermessage) を参照してください。プロンプトテキストにエンドユーザーが入力していないコンテンツが含まれる場合にこのオプションを使用します。ターンごとに制御するには、このオプションをオフのままにして、代わりに個々のストリーミングされるメッセージで `client_composed` を設定します。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。これらの SDK バージョンにバンドルされている Claude Code のバージョンは Claude Code の要件を満たしています |
607 607
608<h4 id="handle-slow-or-stalled-api-responses">608<h4 id="handle-slow-or-stalled-api-responses">
609 遅いまたは停止した API レスポンスを処理609 遅い API レスポンスや停止した API レスポンスに対処する
610</h4>610</h4>
611 611
612CLI サブプロセスは、API タイムアウトと停止検出を制御するいくつかの環境変数を読み取ります。`env` オプションを通じてそれらを渡します:612CLI サブプロセスは、API のタイムアウトと停止検出を制御するいくつかの環境変数を読み取ります。これらは `env` オプションを通じて渡します。
613 613
614```typescript theme={null}614```typescript theme={null}
615import { query } from "@anthropic-ai/claude-agent-sdk";615import { query } from "@anthropic-ai/claude-agent-sdk";
627});627});
628```628```
629 629
630* `API_TIMEOUT_MS`: Anthropic クライアントのリクエストごとのタイムアウト(ミリ秒)。デフォルト `600000`。メインループとすべてのサブエージェントに適用されます。630* `API_TIMEOUT_MS`: Anthropic クライアントのリクエストごとのタイムアウト(ミリ秒)。デフォルトは `600000` です。メインループとすべてのサブエージェントに適用されます。
631* `CLAUDE_CODE_MAX_RETRIES`: 最大 API リトライ数。デフォルト `10`、上限 `15`。各リトライは独自の `API_TIMEOUT_MS` ウィンドウを取得するため、最悪の場合の壁時間は大約 `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` プラスバックオフです。無人実行で長いアウタージを待つ必要がある場合は、[`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ja/errors#tune-retry-behavior) を設定します。一時的な容量エラーを無限に再試行し、Claude Code v2.1.199 以降では、他の一時的なエラーのデフォルトを `300` に引き上げ、この変数の上限を削除します。631* `CLAUDE_CODE_MAX_RETRIES`: API の最大再試行回数。デフォルトは `10` で、上限は `15` です。各再試行にはそれぞれ `API_TIMEOUT_MS` の時間枠が与えられるため、最悪の場合の経過時間はおおよそ `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` にバックオフを加えた値になります。より長い障害を待ち続ける必要がある無人実行では、[`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/ja/errors#tune-retry-behavior) を設定してください。これにより一時的な容量エラーが無期限に再試行され、Claude Code v2.1.199 以降ではその他の一時的なエラーのデフォルトが `300` に引き上げられ、この変数の上限が撤廃されます。
632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: サブエージェントの停止ウォッチドッグ。ストリームウォッチドッグがオンの場合、デフォルトは `CLAUDE_STREAM_IDLE_TIMEOUT_MS` プラス 5 分で、その変数を引き上げない限り `600000` になります。ストリームウォッチドッグがオフの場合、デフォルトは `600000` です。v2.1.257 より前では、デフォルトは常に `600000` でした。632* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: サブエージェントの停止ウォッチドッグ。ストリームウォッチドッグが有効な間、デフォルトは `CLAUDE_STREAM_IDLE_TIMEOUT_MS` に 5 分を加えた値で、その変数を引き上げない限り `600000` になります。ストリームウォッチドッグが無効の場合、デフォルトは `600000` です。v2.1.257 より前は、デフォルトは常に `600000` でした。
633 633
634 タイマーは各ストリームイベントでリセットされます。停止時、Claude Code はサブエージェントを中止し、停止を親に報告します。バックグラウンドサブエージェントの場合、タスクも失敗とマークし、部分的な結果を添付します。634 タイマーはストリームイベントのたびにリセットされます。停止が発生すると、Claude Code はサブエージェントを中止し、停止を親に報告します。バックグラウンドのサブエージェントの場合は、さらにタスクを失敗としてマークし、部分的な結果があれば添付します。
635* `CLAUDE_ENABLE_STREAM_WATCHDOG` と `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: ヘッダーが到着したがレスポンスボディがストリーミングを停止したときにリクエストを中止するストリームウォッチドッグ。ウォッチドッグはすべてのプロバイダーでデフォルトでオンです。無効にするには `CLAUDE_ENABLE_STREAM_WATCHDOG=0` を設定します。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` はデフォルト `300000` で、その最小値にクランプされます。中止後、[自動リトライ](/docs/ja/errors#automatic-retries)は Claude Code が何をするかをカバーしており、レスポンスがどこまで進んだかに基づいています。635* `CLAUDE_ENABLE_STREAM_WATCHDOG` と `CLAUDE_STREAM_IDLE_TIMEOUT_MS`: ヘッダーは到着したもののレスポンスボディのストリーミングが停止した場合にリクエストを中止するストリームウォッチドッグ。ウォッチドッグはすべてのプロバイダーでデフォルトで有効です。無効にするには `CLAUDE_ENABLE_STREAM_WATCHDOG=0` を設定します。`CLAUDE_STREAM_IDLE_TIMEOUT_MS` のデフォルトは `300000` で、この値が最小値として適用されます。中止後に Claude Code がレスポンスの進行状況に応じて何を行うかについては、[自動再試行](/docs/ja/errors#automatic-retries)で説明しています。
636 636
637 ウォッチドッグが `ANTHROPIC_BASE_URL` の背後にあるゲートウェイが保持するレスポンスを待っている間、キープアライブピングで、`includePartialMessages` を設定するホストは引き続き `ping` [ストリームイベント](#sdkpartialassistantmessage)を受け取るため、これらのフレームを沈黙でセッションをタイムアウトするのではなく活性度として読み取ってください。v2.1.257 より前では、フレームは最後の実際のストリームイベントから 5 分後に停止しました。637 `ANTHROPIC_BASE_URL` の背後にあるゲートウェイがキープアライブ ping でレスポンスを開いたままにしている間、ウォッチドッグはそのレスポンスを待ち続けます。その間も `includePartialMessages` を設定しているホストは `ping` [ストリームイベント](#sdkpartialassistantmessage)を受信し続けるため、無通信を理由にセッションをタイムアウトさせるのではなく、これらのフレームを生存確認として扱ってください。v2.1.257 より前は、最後の実際のストリームイベントから 5 分後にフレームが停止していました。
638 638
639<h3 id="query-object">639<h3 id="query-object">
640 `Query` オブジェクト640 `Query` オブジェクト
641</h3>641</h3>
642 642
643`query()` 関数によって返されるインターフェース。643`query()` 関数が返すインターフェースです。
644 644
645```typescript theme={null}645```typescript theme={null}
646interface Query extends AsyncGenerator<SDKMessage, void> {646interface Query extends AsyncGenerator<SDKMessage, void> {
696 696
697| メソッド | 説明 |697| メソッド | 説明 |
698| :- | :- |698| :- | :- |
699| `interrupt()` | クエリを中断します。ストリーミング入力モードでのみ利用可能です。CLI が [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` 機能をアドバタイズする場合、中断が到着したときに保留中だったメッセージをリストする [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) で解決します。v2.1.205 より前の CLI では `undefined` で解決します |699| `interrupt()` | クエリを中断します。ストリーミング入力モードでのみ使用できます。CLI が [`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` ケイパビリティを通知している場合、中断が到着した時点で保留中だったメッセージを一覧にした [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) で解決されます。v2.1.205 より前の CLI では `undefined` で解決されます |
700| `rewindFiles(userMessageId, options?)` | ファイルを指定されたユーザーメッセージの状態に復元します。`{ dryRun: true }` を渡して変更をプレビューします。`enableFileCheckpointing: true` が必要です。[ファイルチェックポイント](/docs/ja/agent-sdk/file-checkpointing)を参照してください |700| `rewindFiles(userMessageId, options?)` | 指定したユーザーメッセージ時点の状態にファイルを復元します。変更をプレビューするには `{ dryRun: true }` を渡します。`enableFileCheckpointing: true` が必要です。[ファイルチェックポイント機能](/docs/ja/agent-sdk/file-checkpointing)を参照してください |
701| `setPermissionMode()` | 権限モードを変更します(ストリーミング入力モードでのみ利用可能) |701| `setPermissionMode()` | 権限モードを変更します(ストリーミング入力モードでのみ使用可能) |
702| `setModel()` | モデルを変更します(ストリーミング入力モードでのみ利用可能)。`undefined` または文字列 `"default"` を渡すと、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます |702| `setModel()` | モデルを変更します(ストリーミング入力モードでのみ使用可能)。`undefined` または文字列 `"default"` を渡すと、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます |
703| `setMaxThinkingTokens()` | *非推奨:* 代わりに `thinking` オプションを使用してください。最大思考トークンを変更します。`null` を渡すと、思考をセッションデフォルトにリセットします。セッション中のオーバーライドはクリアされ、思考が無効になっているセッションでは思考はオフのままです |703| `setMaxThinkingTokens()` | *非推奨:* 代わりに `thinking` オプションを使用してください。最大思考トークン数を変更します。`null` を渡すと思考がセッションのデフォルトにリセットされます。セッション途中の上書きはクリアされ、思考が無効になっているセッションでは思考は無効のままです |
704| `applyFlagSettings(settings)` | ランタイムでセッションのフラグ設定層に設定をマージします(ストリーミング入力モードでのみ利用可能)。[`applyFlagSettings()`](#applyflagsettings)を参照してください |704| `applyFlagSettings(settings)` | 実行時にセッションのフラグ設定レイヤーに設定をマージします(ストリーミング入力モードでのみ使用可能)。[`applyFlagSettings()`](#applyflagsettings) を参照してください |
705| `updateSettings(source, settings)` | プロジェクトのローカル設定ファイルまたはユーザー設定ファイルに 1 つのホワイトリストキーを書き込み、値が後のセッションで永続化されるようにします。[`updateSettings()`](#updatesettings)を参照してください。TypeScript SDK v0.3.257 以降が必要で、Claude Code v2.1.257 をバンドルしています |705| `updateSettings(source, settings)` | 許可リストに含まれる 1 つのキーをプロジェクトのローカル設定ファイルまたはユーザー設定ファイルに書き込み、その値を以降のセッションにも保持します。[`updateSettings()`](#updatesettings) を参照してください。TypeScript SDK v0.3.257 以降が必要です(Claude Code v2.1.257 がバンドルされています) |
706| `initializationResult()` | サポートされているコマンド、モデル、アカウント情報、および出力スタイル設定を含む完全な初期化結果を返します |706| `initializationResult()` | サポートされているコマンド、モデル、アカウント情報、出力スタイルの設定を含む完全な初期化結果を返します |
707| `reinitialize()` | 実行中の CLI に `initialize` 制御リクエストを再送信し、キャッシュされた最初の接続結果の代わりに新しい結果を返します。トランスポートギャップ後(セッションを切断後に再接続するなど)に使用して、保留中の権限リクエストが `canUseTool` コールバックに再度到達するようにします。リクエスト ID ごとにコールバックをべき等にしてください。応答が失われたリクエストは再度ディスパッチされるためです。Claude Code v2.1.195 以降が必要です |707| `reinitialize()` | 実行中の CLI に `initialize` コントロールリクエストを再送信し、キャッシュされた初回接続時の結果ではなく新しい結果を返します。切断後にセッションに再接続する場合など、トランスポートの途絶後に使用すると、保留中の権限リクエストが再び `canUseTool` コールバックに届きます。レスポンスが失われたリクエストは再度ディスパッチされるため、コールバックはリクエスト ID ごとに冪等にしてください。Claude Code v2.1.195 以降が必要です |
708| `supportedCommands()` | 利用可能なコマンドを返します。Agent SDK v0.3.216 からリストはセッション中のコマンド変更を反映します。[`SDKCommandsChangedMessage`](#sdkcommandschangedmessage)を参照してください |708| `supportedCommands()` | 使用可能なコマンドを返します。Agent SDK v0.3.216 以降、このリストにはセッション途中のコマンドの変更が反映されます。[`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) を参照してください |
709| `supportedModels()` | 表示情報を含む利用可能なモデルを返します |709| `supportedModels()` | 表示情報付きで使用可能なモデルを返します |
710| `supportedAgents()` | 利用可能なサブエージェントを [`AgentInfo`](#agentinfo)`[]` として返します |710| `supportedAgents()` | 使用可能なサブエージェントを [`AgentInfo`](#agentinfo)`[]` として返します |
711| `mcpServerStatus()` | 接続された MCP サーバーのステータスを [`McpServerStatus`](#mcpserverstatus)`[]` として返します |711| `mcpServerStatus()` | 接続されている MCP サーバーのステータスを [`McpServerStatus`](#mcpserverstatus)`[]` として返します |
712| `getContextUsage(opts?)` | セッションのコンテキストウィンドウ使用状況をカテゴリ、スキル、ツール別に分類する [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse)を返します。デフォルト `detail` では、対話型セッションで `/context` が表示するのと同じデータで、メッセージストリームに表示されないトークンカウント API リクエストで計算されます。[これらのリクエストがどのように処理されるか](#sdkcontrolgetcontextusageresponse)を参照してください。[`detail` オプション](#sdkcontrolgetcontextusageresponse)には Agent SDK v0.3.257 以降が必要です |712| `getContextUsage(opts?)` | セッションのコンテキストウィンドウの使用量をカテゴリ、スキル、ツールごとに分類した [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) を返します。デフォルトの `detail` では、インタラクティブセッションで `/context` が表示するものと同じデータで、メッセージストリームに現れないトークンカウント API リクエストを使って計算されます。[これらのリクエストの扱い](#sdkcontrolgetcontextusageresponse)を参照してください。[`detail` オプション](#sdkcontrolgetcontextusageresponse)には Agent SDK v0.3.257 以降が必要です |
713| `readFile(path, options?)` | セッションのファイルシステムからファイルを読み取ります。Claude Code はパスを `cwd` に対して解決します。[`readFile()` が読み取れるもの](#what-readfile-can-read)は提供するファイルをリストします。`{ maxBytes }` を渡して読み取りキャップを変更し(デフォルト 1 MB、上限 10 MB)、`{ encoding: 'base64' }` を画像などのバイナリファイルに渡します。[`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse)で解決するか、権限拒否、ファイルの欠落、またはトランスポートエラーで `null` で解決します。TypeScript SDK v0.2.121 以降が必要です |713| `readFile(path, options?)` | セッションのファイルシステムからファイルを読み取ります。Claude Code はパスを `cwd` に対して解決します。提供されるファイルについては [`readFile()` が読み取れるもの](#what-readfile-can-read)に記載しています。読み取り上限(デフォルト 1 MB、最大 10 MB)を変更するには `{ maxBytes }` を、画像などのバイナリファイルには `{ encoding: 'base64' }` を渡します。[`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) で解決されるか、権限の拒否、ファイルが存在しない場合、またはトランスポートエラーの場合は `null` で解決されます。TypeScript SDK v0.2.121 以降が必要です |
714| `reloadPlugins(options?)` | ディスクからプラグインを再読み込みして、セッション中にインストールまたは編集したプラグインが実行中のセッションに到達するようにします。セッションのコマンド、サブエージェント、プラグイン、および MCP サーバーステータスをリストする [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse)で解決します。Agent SDK v0.2.85 以降が必要です。[`holdOnCacheImpact` オプション](#sdkcontrolreloadpluginsresponse)には Agent SDK v0.3.268 以降が必要です |714| `reloadPlugins(options?)` | ディスクからプラグインを再読み込みし、セッション途中にインストールまたは編集したプラグインを実行中のセッションに反映させます。セッションのコマンド、サブエージェント、プラグイン、MCP サーバーのステータスを一覧にした [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) で解決されます。Agent SDK v0.2.85 以降が必要です。[`holdOnCacheImpact` オプション](#sdkcontrolreloadpluginsresponse)には Agent SDK v0.3.268 以降が必要です |
715| `reloadSkills()` | ディスクからスキルを再読み込みして、セッション中に追加または編集したスキルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスキルをリストする [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse)で解決します。Agent SDK v0.3.163 以降が必要です |715| `reloadSkills()` | ディスクからスキルを再読み込みし、セッション途中に追加または編集したスキルを実行中のセッションで使用できるようにします。再読み込み後に使用可能なスキルを一覧にした [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) で解決されます。Agent SDK v0.3.163 以降が必要です |
716| `reloadOutputStyles()` | ディスクから [出力スタイル](/docs/ja/output-styles)を再読み込みして、セッション中に追加または編集したスタイルファイルが実行中のセッションで利用可能になるようにします。再読み込み後に利用可能なスタイル名をリストする [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse)で解決します。Agent SDK v0.3.261 以降が必要です |716| `reloadOutputStyles()` | ディスクから[出力スタイル](/docs/ja/output-styles)を再読み込みし、セッション途中に追加または編集したスタイルファイルを実行中のセッションで使用できるようにします。再読み込み後に使用可能なスタイル名を一覧にした [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) で解決されます。Agent SDK v0.3.261 以降が必要です |
717| `accountInfo()` | アカウント情報を返します |717| `accountInfo()` | アカウント情報を返します |
718| `reconnectMcpServer(serverName)` | MCP サーバーを名前で再接続します。名前が `.mcp.json` または `~/.claude.json` などの設定ファイルのエントリとも一致する場合、Claude Code は設定ファイルエントリではなく、[`mcpServers`](#options)または `setMcpServers()` を通じて設定したサーバーを再接続します。その解決順序には Claude Code v2.1.257 以降が必要です |718| `reconnectMcpServer(serverName)` | 名前を指定して MCP サーバーに再接続します。その名前が `.mcp.json` や `~/.claude.json` などの設定ファイル内のエントリにも一致する場合、Claude Code は設定ファイルのエントリではなく、[`mcpServers`](#options) または `setMcpServers()` で設定したサーバーに再接続します。この解決順序には Claude Code v2.1.257 以降が必要です |
719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()` と同じ名前解決で、名前を指定して MCP サーバーを有効または無効にします。サーバーを無効にすると、接続が切断され、そのツールが削除されます。サーバーの種類ごとに必要な Claude Code のバージョンについては [`toggleMcpServer()`](#togglemcpserver) を参照してください |719| `toggleMcpServer(serverName, enabled)` | `reconnectMcpServer()` と同じ名前解決で、名前を指定して MCP サーバーを有効化または無効化します。サーバーを無効にすると、接続が切断され、そのツールが削除されます。サーバーの種類ごとに必要な Claude Code のバージョンについては [`toggleMcpServer()`](#togglemcpserver) を参照してください |
720| `setMcpServers(servers)` | このセッションの MCP サーバーセットを動的に置き換えます。追加および削除されたサーバーと任意のエラーを名前付けする [`McpSetServersResult`](#mcpsetserversresult)で解決します |720| `setMcpServers(servers)` | このセッションの MCP サーバーのセットを動的に置き換えます。追加および削除されたサーバーとエラーを示す [`McpSetServersResult`](#mcpsetserversresult) で解決されます |
721| `readMcpResource(serverName, uri)` | *アルファ。* 接続された MCP サーバーから 1 つの MCP Apps `ui://` リソースを読み取り、アプリケーションがツールのウィジェットをレンダリングできるようにします。[`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse)で解決します。TypeScript Agent SDK v0.3.280 以降が必要です |721| `readMcpResource(serverName, uri)` | *アルファ版。* アプリケーションがツールのウィジェットをレンダリングできるように、接続されている MCP サーバーから MCP Apps の `ui://` リソースを 1 つ読み取ります。[`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse) で解決されます。TypeScript Agent SDK v0.3.280 以降が必要です |
722| `streamInput(stream)` | マルチターン会話のためにクエリにメッセージをストリーミングします |722| `streamInput(stream)` | マルチターンの会話のために、入力メッセージをクエリにストリーミングします |
723| `stopTask(taskId)` | ID でバックグラウンドタスクを実行中に停止します |723| `stopTask(taskId)` | 実行中のバックグラウンドタスクを ID で停止します |
724| `close()` | クエリを閉じ、基盤となるプロセスを終了します。クエリを強制的に終了し、すべてのリソースをクリーンアップします |724| `close()` | クエリを閉じ、基盤となるプロセスを終了します。クエリを強制的に終了し、すべてのリソースをクリーンアップします |
725 725
726<h4 id="applyflagsettings">726<h4 id="applyflagsettings">
727 `applyFlagSettings()`727 `applyFlagSettings()`
728</h4>728</h4>
729 729
730実行中のセッションで [設定](/docs/ja/settings)を変更し、クエリを再開しません。セッション中に変更が必要な専用セッターがない設定(信頼できない入力を読み取った後に `permissions` を厳しくするなど)を使用する場合に使用します。`setModel()` と `setPermissionMode()` はこれら 2 つのキーの専用セッターです。`applyFlagSettings()` は `model` をここに渡すと `setModel()` と同じように動作する一般的な形式です。730クエリを再起動せずに、実行中のセッションの[設定](/docs/ja/settings)を変更します。エージェントが信頼できない入力を読み取った後に `permissions` を厳しくする場合など、専用のセッターがない設定項目をセッション途中で変更する必要があるときに使用します。`setModel()` と `setPermissionMode()` はそれぞれのキー専用のセッターです。`applyFlagSettings()` は設定キーの任意のサブセットを受け付ける汎用的な形式で、ここで `model` を渡すと `setModel()` と同じように動作します。
731 731
732一部のキーのみがセッション中に有効になります:732セッション途中で有効になるのは一部のキーのみです。
733 733
734* **次のターンで適用**: `effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。`agent` を切り替えると、そのエージェントのモデルオーバーライドとフックも次のターンで適用されます。そのシステムプロンプトは次のターンで、または [記録されたシステムプロンプトを再利用](/docs/ja/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)するセッションではセッションがコンパクト化されると適用されます。734* **次のターンで適用**: `effortLevel`、`ultracode`、`permissions`、`hooks`、`skillOverrides`、`fastMode`、`agent`。`agent` を切り替えると、そのエージェントのモデルの上書きとフックも次のターンで適用されます。そのシステムプロンプトは次のターンで適用されますが、[記録されたシステムプロンプトを再利用する](/docs/ja/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session)セッションでは、セッションが圧縮された時点で適用されます。
735* **現在のターン中に適用**: `model`。Claude がターンで作業している間に `model` を切り替えると、Claude が既に生成しているレスポンスは古いモデルで完了し、ターンの残り(Claude Code がモデルに対して行う次の呼び出しから開始)は新しいモデルを使用します。サブエージェントは独自のモデルを保持します。v2.1.212 より前では、セッション中の切り替えは次のターンを待ちました。735* **現在のターン中に適用**: `model`。Claude がターンの作業中に `model` を切り替えると、Claude がすでに生成中の応答は古いモデルで完了し、Claude Code が次にモデルを呼び出すところから始まるターンの残りの部分では新しいモデルが使用されます。サブエージェントは独自のモデルを維持します。v2.1.212 より前は、ターン途中の切り替えは次のターンまで待機していました。
736* **セッション中に効果なし**: システムプロンプトオプション。これらはスタートアップで 1 回解決されるため、実行中のセッションは呼び出しが成功しても元の値を保持します。それらを変更するには、新しいセッションを開始してください。736* **セッション途中では効果なし**: システムプロンプトのオプション。これらは起動時に 1 回だけ解決されるため、呼び出しが成功しても実行中のセッションは元の値を保持します。変更するには、新しいセッションを開始してください。
737 737
738`effortLevel` は [努力レベル](/docs/ja/model-config#adjust-effort-level)名を受け入れます。また、`"ultracode"` も受け入れます。これは [ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode)をオンにして `xhigh` 努力をリクエストします。`applyFlagSettings()` はその値なしで `effortLevel` を宣言するため、TypeScript では同じ結果に対して `{ ultracode: true, effortLevel: "xhigh" }` を渡すか、[`ultracode`](/docs/ja/settings-reference#ultracode)キーのみを渡して ultracode をセッションの現在の努力レベルでオンにします。`ultracode` 値には Claude Code v2.1.203 以降が必要で、設定ファイルの `effortLevel` キーではなく `applyFlagSettings()` によってのみ受け入れられます。v2.1.284 より前では、`ultracode` キーのみもレベルを `xhigh` に設定しました。738`effortLevel` は [effort レベル](/docs/ja/model-config#adjust-effort-level)の名前を受け付けます。また、[ultracode](/docs/ja/workflows#let-claude-decide-with-ultracode) をオンにした状態で `xhigh` の effort を要求する `"ultracode"` も受け付けます。`applyFlagSettings()` は `effortLevel` をこの値なしで宣言しているため、TypeScript で同じ結果を得るには `{ ultracode: true, effortLevel: "xhigh" }` を渡すか、セッションの現在の effort レベルのまま ultracode をオンにするには [`ultracode`](/docs/ja/settings-reference#ultracode) キーのみを渡します。`ultracode` 値には Claude Code v2.1.203 以降が必要で、`applyFlagSettings()` でのみ受け付けられ、設定ファイルの `effortLevel` キーでは受け付けられません。v2.1.284 より前は、`ultracode` キーのみを指定した場合もレベルが `xhigh` に設定されていました。
739 739
740値はフラグ設定層に書き込まれ、`query()` の `settings` オプションがスタートアップで設定したものにマージされます。これは [ページ上の優先順位セクション](#settings-precedence)がプログラムオプションと呼ぶのと同じ層です。740値はフラグ設定レイヤーに書き込まれ、起動時に `query()` のインライン `settings` オプションで設定された内容の上にマージされます。これは[このページの優先順位セクション](#settings-precedence)でプログラムによるオプションと呼んでいるのと同じ層です。
741 741
742連続した呼び出しは最上位キーを浅くマージします。`{ permissions: {...} }` を含む 2 番目の呼び出しは、前の呼び出しから `permissions` オブジェクト全体を置き換えるのではなく、深くマージします。742連続した呼び出しでは、トップレベルのキーが浅くマージされます。`{ permissions: {...} }` を指定した 2 回目の呼び出しは、前回の呼び出しの `permissions` オブジェクトに深くマージされるのではなく、オブジェクト全体を置き換えます。
743 743
744`applyFlagSettings()` で設定したキーをクリアするには、そのキーに `null` を渡します。ほとんどのキーは、最初に `query()` の `settings` オプションで設定された値にフォールバックし、次に低優先度のソースにフォールバックします。クリアされた `model` は、設定ファイルが `model` を設定している場合でも、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます。`undefined` を渡すと JSON シリアル化がそれをドロップするため効果がありません。744`applyFlagSettings()` で設定したキーをクリアするには、そのキーに `null` を渡します。ほとんどのキーはその後、まず起動時に `query()` の `settings` オプションで設定された値に、次に優先順位の低いソースにフォールバックします。クリアされた `model` は、設定ファイルで `model` が設定されている場合でも、[Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットされます。`undefined` を渡しても、JSON シリアライズで削除されるため効果はありません。
745 745
746`model` 以外の 3 つのキーはフォールバックする代わりにセッション状態をリセットします:746`model` 以外に、フォールバックする代わりにセッションの状態をリセットするキーが 3 つあります。
747 747
748* `effortLevel: null` は、`query()` の `effort` オプションまたは設定ファイルの `effortLevel` ではなく、セッションをモデルのデフォルト努力レベルに戻します。748* `effortLevel: null` は、`query()` の `effort` オプションや設定ファイルの `effortLevel` ではなく、セッションをモデルのデフォルトの effort レベルに戻します。
749* `agent: null` は、`query()` の `agent` オプションまたは設定ファイルの `agent` を復元するのではなく、次のターンから専用エージェントなしでメインスレッドを実行します。クリアされたエージェントが独自のモデルを適用していた場合、セッションはスタートアップで解決したモデルに戻ります。749* `agent: null` は、`query()` の `agent` オプションや設定ファイルの `agent` を復元するのではなく、次のターンからエージェントなしでメインスレッドを実行します。クリアされたエージェントが独自のモデルを適用していた場合、セッションは起動時に解決されたモデルに戻ります。
750* `ultracode: null` は `false` と同様に ultracode をオフにし、設定ファイルから `ultracode` 値を復元するのではなく。セッションは現在の努力レベルを保持するため、同じ呼び出しで `effortLevel` を渡して変更します。750* `ultracode: null` は、設定ファイルの `ultracode` 値を復元するのではなく、`false` と同様に ultracode をオフにします。セッションは現在の effort レベルを維持するため、変更するには同じ呼び出しで `effortLevel` を渡してください。
751 751
752ストリーミング入力モードでのみ利用可能で、`setModel()` と `setPermissionMode()` と同じ制約があります。752`setModel()` や `setPermissionMode()` と同じ制約で、ストリーミング入力モードでのみ使用できます。
753 753
754以下の例は、セッション中にアクティブなモデルを切り替え、その後オーバーライドをクリアして、モデルを [Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットします。754以下の例では、セッション途中でアクティブなモデルを切り替え、その後上書きをクリアしてモデルを [Claude Code のデフォルトモデル](/docs/ja/model-config)にリセットします。
755 755
756```typescript theme={null}756```typescript theme={null}
757import { query } from "@anthropic-ai/claude-agent-sdk";757import { query } from "@anthropic-ai/claude-agent-sdk";
758 758
759const q = query({ prompt: messageStream });759const q = query({ prompt: messageStream });
760 760
761// セッションの残りの期間、モデルをオーバーライドします761// Override the model for the rest of the session
762await q.applyFlagSettings({ model: "claude-opus-4-6" });762await q.applyFlagSettings({ model: "claude-opus-4-6" });
763 763
764// 後で: オーバーライドをクリアします。モデルは Claude Code のデフォルトにリセットされます764// Later: clear the override; the model resets to Claude Code's default
765await q.applyFlagSettings({ model: null });765await q.applyFlagSettings({ model: null });
766```766```
767 767
768<Note>768<Note>
769 `applyFlagSettings()` は TypeScript のみです。Python SDK は同等のメソッドを公開していません。769 `applyFlagSettings()` は TypeScript のみで使用できます。Python SDK には同等のメソッドはありません。
770</Note>770</Note>
771 771
772<h4 id="updatesettings">772<h4 id="updatesettings">
773 `updateSettings()`773 `updateSettings()`
774</h4>774</h4>
775 775
776設定ファイルをディスクに書き込み、値が後のセッションで永続化されるようにします。各ソースは 1 つのキーを受け入れ、文字列値を持ちます:776許可リストに含まれる 1 つのキーをディスク上の設定ファイルに書き込み、そのソースを読み込む以降のセッションにも値を保持します。各ソースは文字列値を持つ 1 つのキーを受け付けます。
777 777
778* **`"localSettings"`**: `outputStyle` を受け入れ、プロジェクトのローカル設定ファイル `.claude/settings.local.json` にマージします。新しいスタイルはセッションの次のリクエストで有効になります。778* **`"localSettings"`**: `outputStyle` を受け付け、プロジェクトのローカル設定ファイル `.claude/settings.local.json` にマージします。新しいスタイルはセッションの次のリクエストから有効になります。
779* **`"userSettings"`**: `effortLevel` を受け入れ、セッションの現在のモデルのデフォルト [努力レベル](/docs/ja/model-config#adjust-effort-level)としてユーザー設定ファイルの [`modelSettings`](/docs/ja/settings-reference#modelsettings) の下に保存します。`max` を渡すと、`max` はセッションのみであるため何も書き込みません。実行中のセッションはいずれにせよ現在の努力レベルを保持するため、それも変更する場合は [`applyFlagSettings()`](#applyflagsettings)を呼び出してください。このソースには TypeScript SDK v0.3.277 以降が必要で、Claude Code v2.1.277 をバンドルしています。779* **`"userSettings"`**: `effortLevel` を受け付け、セッションの現在のモデルのデフォルトの [effort レベル](/docs/ja/model-config#adjust-effort-level)として、ユーザー設定ファイルの [`modelSettings`](/docs/ja/settings-reference#modelsettings) の下に保存します。`max` はセッション限定であるため、`max` を渡しても何も書き込まれません。いずれの場合も実行中のセッションは現在の effort レベルを維持するため、それも変更したい場合は [`applyFlagSettings()`](#applyflagsettings) を呼び出してください。このソースには TypeScript SDK v0.3.277 以降が必要です(Claude Code v2.1.277 がバンドルされています)。
780 780
781呼び出しは、リクエストが他のキーを含む場合、セッションがリモートトランスポートで実行される場合、およびセッションの [`settingSources`](#options)が名前を付けたソースを除外する場合に拒否されます。キーの削除はサポートされていません。781リクエストにその他のキーが含まれている場合、セッションがリモートトランスポート上で実行されている場合、およびセッションの [`settingSources`](#options) が指定したソースを除外している場合、呼び出しは拒否されます。キーの削除はサポートされていません。
782 782
783<h4 id="togglemcpserver">783<h4 id="togglemcpserver">
784 `toggleMcpServer()`784 `toggleMcpServer()`
785</h4>785</h4>
786 786
787サーバーを無効にすると、接続が切断され、そのツールがセッションから削除されます。セッション中に追加したサーバーとインプロセスサーバーについては、これは Claude Code のバージョンに依存します:787サーバーを無効にすると、接続が切断され、そのツールがセッションから削除されます。セッション途中で追加したサーバーとインプロセスサーバーについては、Claude Code のバージョンによって次のように異なります。
788 788
789* セッション中に `setMcpServers()` で追加した stdio、SSE、または HTTP サーバー:そのツールの削除には Claude Code v2.1.285 以降が必要です。789* `setMcpServers()` でセッション途中に追加した stdio、SSE、または HTTP サーバー: ツールの削除には Claude Code v2.1.285 以降が必要です。
790* [`createSdkMcpServer()`](#createsdkmcpserver) で作成したインプロセスサーバー(`mcpServers` で渡したか `setMcpServers()` で渡したかを問いません):切断とツールの削除には Claude Code v2.1.286 以降が必要です。無効にすると、まだ実行中のツール呼び出しも失敗するため、Claude はハンドラーが戻るのを待たずに、それぞれについて即座にエラー結果を受け取ります。790* [`createSdkMcpServer()`](#createsdkmcpserver) で作成したインプロセスサーバー(`mcpServers` で渡したか `setMcpServers()` で渡したかを問わない): 接続の切断とツールの削除には Claude Code v2.1.286 以降が必要です。また、無効にすると実行中のツール呼び出しも失敗するため、Claude はハンドラーが戻るのを待たずに、それぞれについてエラー結果を即座に受け取ります。
791 791
792<h3 id="warmquery">792<h3 id="warmquery">
793 `WarmQuery`793 `WarmQuery`
794</h3>794</h3>
795 795
796[`startup()`](#startup)によって返されるハンドル。サブプロセスは既にスポーンおよび初期化されているため、このハンドルで `query()` を呼び出すと、スタートアップレイテンシーなしで準備完了プロセスにプロンプトを直接書き込みます。796[`startup()`](#startup) が返すハンドルです。サブプロセスはすでに生成および初期化されているため、このハンドルで `query()` を呼び出すと、起動の遅延なしに準備済みのプロセスへプロンプトが直接書き込まれます。
797 797
798```typescript theme={null}798```typescript theme={null}
799interface WarmQuery extends AsyncDisposable {799interface WarmQuery extends AsyncDisposable {
808 808
809| メソッド | 説明 |809| メソッド | 説明 |
810| :- | :- |810| :- | :- |
811| `query(prompt)` | 事前ウォーミングされたサブプロセスにプロンプトを送信し、[`Query`](#query-object)を返します。`WarmQuery` ごとに 1 回のみ呼び出すことができます |811| `query(prompt)` | 事前にウォームアップされたサブプロセスにプロンプトを送信し、[`Query`](#query-object) を返します。`WarmQuery` ごとに 1 回だけ呼び出せます |
812| `close()` | プロンプトを送信せずにサブプロセスを閉じます。不要になった warm query を破棄するために使用します |812| `close()` | プロンプトを送信せずにサブプロセスを閉じます。不要になったウォームクエリを破棄する場合に使用します |
813 813
814`WarmQuery` は `AsyncDisposable` を実装するため、自動クリーンアップのために `await using` で使用できます。814`WarmQuery` は `AsyncDisposable` を実装しているため、`await using` と組み合わせて自動クリーンアップに使用できます。
815 815
816<h3 id="spareprocess">816<h3 id="spareprocess">
817 `SpareProcess`817 `SpareProcess`
818</h3>818</h3>
819 819
820*アルファ。* [`prewarm()`](#prewarm)によって返されるハンドル: セッションにまだバインドされていない開始された Claude Code プロセスで、1 回クレームできます。TypeScript Agent SDK v0.3.282 以降が必要です。820*アルファ版。* [`prewarm()`](#prewarm) が返すハンドルで、まだセッションにバインドされておらず、1 回だけ取得(claim)できる起動済みの Claude Code プロセスです。TypeScript Agent SDK v0.3.282 以降が必要です。
821 821
822```typescript theme={null}822```typescript theme={null}
823interface SpareProcess extends AsyncDisposable {823interface SpareProcess extends AsyncDisposable {
837 837
838| メンバー | 説明 |838| メンバー | 説明 |
839| :- | :- |839| :- | :- |
840| `claim({ prompt, options })` | スペアを `options.cwd` のセッションにバインドし、最初のメッセージを送信します。`query()` と同様に [`Query`](#query-object)を同期的に返します。1 回のみ呼び出すことができます |840| `claim({ prompt, options })` | スペアを `options.cwd` 内のセッションにバインドし、最初のメッセージを送信します。`query()` と同様に [`Query`](#query-object) を同期的に返します。1 回だけ呼び出せます |
841| `claimed` | Claude Code がクレームを受け入れると、セッションのワーキングディレクトリと ID で解決します。Claude Code がクレームを拒否する場合、プロセスが終了または最初に閉じられた場合、および `option_not_applied` で始まるメッセージを含む場合に拒否します。要求した `model` または `maxThinkingTokens` なしでセッションが実行されている場合 |841| `claimed` | Claude Code が claim を受け入れると、セッションの作業ディレクトリと ID で解決されます。Claude Code が claim を拒否した場合、プロセスが先に終了したか閉じられた場合、およびセッションが要求した `model` または `maxThinkingTokens` なしで実行されている場合(`option_not_applied` で始まるメッセージ)に拒否されます |
842| `exited` | プロセスが終了すると解決します。クレーム前に終了するスペアを置き換えます |842| `exited` | claim されたかどうかにかかわらず、プロセスが終了すると確定します。claim する前に終了したスペアは置き換えてください |
843| `close()` | プロセスを終了します。クレーム前にこれはスペアを破棄し、`claimed` を拒否します |843| `close()` | プロセスを終了します。claim 前の場合はスペアを破棄し、`claimed` を拒否します |
844 844
845`options.cwd` は必須です。クレームは `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` のフラグ設定オーバーレイ、`appendSystemPrompt`、`title`、`agents`、および `env` のセッションごとのトークンも設定できます。845`options.cwd` は必須です。claim では、`additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` でのフラグ設定オーバーレイ、`appendSystemPrompt`、`title`、`agents`、`env` でのセッションごとのトークンも設定できます。
846 846
847Claude Code はクレームを拒否できます。例えば、存在しないフォルダまたはプロジェクト設定が `env`、`agent`、または `model` を設定するフォルダの場合。`claimed` が `option_not_applied` で始まるメッセージで拒否する場合、セッションは要求した `model` または `maxThinkingTokens` なしで実行されています。他の拒否の場合、プロンプトは実行されていないため、代わりに `query()` でセッションを開始してください。847Claude Code は、存在しないフォルダーや、プロジェクト設定で `env`、`agent`、または `model` が設定されているフォルダーなどの場合に claim を拒否することがあります。`claimed` が `option_not_applied` で始まるメッセージで拒否された場合、セッションは要求した `model` または `maxThinkingTokens` なしで実行されています。その他の拒否の場合はプロンプトが実行されていないため、代わりに `query()` でセッションを開始してください。
848 848
849<h3 id="sdkcontrolinitializeresponse">849<h3 id="sdkcontrolinitializeresponse">
850 `SDKControlInitializeResponse`850 `SDKControlInitializeResponse`
851</h3>851</h3>
852 852
853`initializationResult()` の戻り値の型。セッション初期化データを含みます。853`initializationResult()` の戻り値の型です。セッションの初期化データを含みます。
854 854
855```typescript theme={null}855```typescript theme={null}
856type SDKControlInitializeResponse = {856type SDKControlInitializeResponse = {
863 fast_mode_state?: "off" | "cooldown" | "on";863 fast_mode_state?: "off" | "cooldown" | "on";
864 fast_mode_disabled_reason?: FastModeDisabledReason;864 fast_mode_disabled_reason?: FastModeDisabledReason;
865 hooks_applied?: boolean;865 hooks_applied?: boolean;
866 sdk_mcp_manifests_parked?: Record<
867 string,
868 | "parked"
869 | "already_connected"
870 | "protocol_version_mismatch"
871 | "malformed"
872 | "not_honoured"
873 >;
866};874};
867```875```
868 876
869`hooks_applied` は Claude Code が `initialize` リクエストが実行した `hooks` を登録したかどうかを報告します。SDK はセッションが開始されるときにそのリクエストを 1 回送信し、各 [`reinitialize()`](#query-object)呼び出しで再度送信します。フィールドには Agent SDK v0.3.238 以降が必要です。877`hooks_applied` は、`initialize` リクエストに含まれていた `hooks` を Claude Code が登録したかどうかを示します。SDK はこのリクエストをセッション開始時に 1 回送信し、[`reinitialize()`](#query-object) を呼び出すたびに再度送信します。このフィールドには Agent SDK v0.3.238 以降が必要です。
878
879リクエストにフックが含まれていなかった場合、Claude Code はこのフィールドを省略します。リクエストにフックが含まれていた場合、値はそのリクエストがセッションの最初の initialize かどうか、また繰り返しの initialize の場合はどのようにセッションに到達したかによって決まります。
870 880
871Claude Code はリクエストがフックを実行しなかった場合、フィールドを省略します。リクエストがフックを実行した場合、値はリクエストがセッションの最初の初期化であるかどうか、および繰り返されるものの場合、セッションに到達した方法に依存します:881* `true`: Claude Code がフックを登録しました。セッションの最初の initialize はこの値を返します。CLI の stdin を介して送信された繰り返しの initialize も `true` を返します。その場合、新しいリクエストのフックが以前に登録されたフックを置き換えます。
882* `false`: Claude Code はフックを無視しました。リモートセッションに送信された繰り返しの initialize はこの値を返すため、セッションに参加した 2 番目のクライアントは、最初のクライアントが登録したフックを置き換えることができません。
872 883
873* `true`: Claude Code はフックを登録しました。セッションの最初の初期化はこの値を返します。CLI の stdin を通じて送信された繰り返し初期化もこの値を返します。その場合、新しいリクエストのフックは以前に登録されたフックを置き換えます。884Agent SDK v0.3.238 より前は、レスポンスにこのフィールドは含まれず、Claude Code は繰り返しのすべての initialize で `hooks` を無視していました。
874* `false`: Claude Code はフックを無視しました。リモートセッションに送信された繰り返し初期化はこの値を返すため、セッションに参加する 2 番目のクライアントは最初のクライアントが登録したフックを置き換えることはできません。
875 885
876Agent SDK v0.3.238 より前では、レスポンスはフィールドを実行しなかったため、Claude Code はすべての繰り返し初期化でフックを無視しました。886リクエストの `sdkMcpServerManifests` フィールドとレスポンスの `sdk_mcp_manifests_parked` フィールドは、[`createSdkMcpServer()`](#createsdkmcpserver) で作成したインプロセスの [SDK MCP サーバー](/docs/ja/agent-sdk/custom-tools)のためのものです。アプリケーションがどちらのフィールドを設定したり読み取ったりすることもありません。
877 887
878レスポンスは常に `fast_mode_state` を報告し、何かが [fast mode](/docs/ja/fast-mode)をブロックする場合、`fast_mode_disabled_reason` はブロックされた状態を説明できるように理由コードを含みます。両方の動作には Claude Code v2.1.219 以降が必要です。v2.1.219 より前では、fast mode が利用可能でない場合、レスポンスは `fast_mode_state` を省略し、理由を実行しませんでした。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage)を参照してください。888レスポンスは常に `fast_mode_state` を報告し、何かが [fast mode](/docs/ja/fast-mode) をブロックしている場合は `fast_mode_disabled_reason` がその理由コードを併せて伝えるため、可用性を再導出することなくブロックされた状態を説明できます。どちらの動作にも Claude Code v2.1.219 以降が必要です。v2.1.219 より前は、fast mode が利用できない場合にレスポンスは `fast_mode_state` を省略し、理由を含むことはありませんでした。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。
879 889
880成功した `initialize` の制御レスポンスラッパーは `pending_permission_requests` 配列も実行します。フィールドは上記の `SDKControlInitializeResponse` ペイロード内ではなく、レスポンスラッパー自体にあります。各エントリは、セッションが実行中にストリーミングする権限リクエストと同じ `{ type: "control_request", request_id, request }` 形状を持つ完全な `control_request` メッセージです。890成功した `initialize` のコントロールレスポンスのラッパーには、`pending_permission_requests` 配列も含まれます。このフィールドはレスポンスラッパー自体にあり、上記の `SDKControlInitializeResponse` ペイロード内にはありません。各エントリは完全な `control_request` メッセージで、実行中にセッションが権限リクエストとしてストリーミングするのと同じ `{ type: "control_request", request_id, request }` の形をしています。
881 891
882配列は、この Claude Code プロセスが発行し、まだ解決していない権限リクエストをリストします。SDK はあなたのために配列を読み取り、各エントリを [`canUseTool`](#canusetool)コールバックにディスパッチします。これは [`reinitialize()`](#query-object)がトランスポートギャップ後にトリガーするのと同じ再配信です。繰り返されたリクエスト ID をべき等に処理してください。エントリは、接続が切断される前にコールバックが既に受け取ったリクエストを繰り返すことができるためです。892この配列には、この Claude Code プロセスが発行してまだ解決されていない権限リクエストが一覧表示されます。SDK はこの配列を読み取り、各エントリを [`canUseTool`](#canusetool) コールバックにディスパッチします。これは、トランスポートの途絶後に [`reinitialize()`](#query-object) がトリガーするのと同じ再配信です。エントリは、接続が切断される前にコールバックがすでに受け取ったリクエストを繰り返す場合があるため、繰り返されるリクエスト ID は冪等に処理してください。
883 893
884配列は成功した `initialize` レスポンスで常に存在し、このプロセスに未解決の権限リクエストがない場合は空です。Claude Code v2.1.268 以降が必要です。以前のバージョンはフィールドを省略できるため、ワイヤプロトコルを自分で解析する場合、欠落しているフィールドを古い CLI として扱い、何も保留中でないという証拠ではなく扱ってください。894この配列は成功した `initialize` レスポンスに常に存在し、このプロセスに未解決の権限リクエストがない場合は空になります。Claude Code v2.1.268 以降が必要です。以前のバージョンではこのフィールドが省略される場合があるため、ワイヤープロトコルを自分で解析する場合は、フィールドがないことを保留中のものがない証拠としてではなく、古い CLI であることの表れとして扱ってください。
885 895
886<h3 id="sdkcontrolinterruptresponse">896<h3 id="sdkcontrolinterruptresponse">
887 `SDKControlInterruptResponse`897 `SDKControlInterruptResponse`
888</h3>898</h3>
889 899
890中断レシート: [`interrupt()`](#query-object)が [`SDKSystemMessage.capabilities`](#sdksystemmessage)で `interrupt_receipt_v1` 機能をアドバタイズする CLI で解決する値。Claude Code v2.1.205 以降が必要です。以前の CLI は空の成功ペイロードで中断に応答するため、`interrupt()` は `undefined` で解決します。900中断の受領通知です。[`SDKSystemMessage.capabilities`](#sdksystemmessage) で `interrupt_receipt_v1` ケイパビリティを通知している CLI で、[`interrupt()`](#query-object) が解決される値です。Claude Code v2.1.205 以降が必要です。それ以前の CLI は空の成功ペイロードで中断に応答するため、`interrupt()` は `undefined` に解決されます。
891 901
892```typescript theme={null}902```typescript theme={null}
893type SDKControlInterruptResponse = {903type SDKControlInterruptResponse = {
896};906};
897```907```
898 908
899`still_queued` は、中断が到着したときに保留中だったユーザーメッセージの UUID をリストします。キューに入ったままのメッセージ、および Claude Code が既に次のターンのキューから取り出したメッセージ。セッションの最初のターンが開始されると、Claude Code は中断しない限り、リストされたメッセージを処理します。最初のターンが開始される前に中断する場合、Claude Code はそのターンが開始されるとすぐに中止し、そのターンのリストされたメッセージはレスポンスを取得しません。909`still_queued` は、中断が到着した時点で保留中だったユーザーメッセージの UUID を一覧表示します。これには、まだキューにあるメッセージと、Claude Code が次のターンのためにすでにキューから取り出していたメッセージが含まれます。セッションの最初のターンが開始された後は、先にキャンセルしない限り、Claude Code は一覧にあるメッセージを中断後に処理し、複数のメッセージを 1 つのターンにまとめることがあります。最初のターンが開始される前に中断した場合、Claude Code はそのターンが開始されるとすぐに中止し、そのターン内の一覧にあるメッセージには応答がありません。
900 910
901レシートを使用して、何を再送信するかを決定します。リストされたメッセージで キャンセルしないものは、レスポンスを取得するかどうかに関わらず会話に入るため、それを再送信すると Claude に 2 回配信されます。911受領通知を使用して、何かを再送信するかどうかを判断してください。キャンセルしなかった一覧のメッセージは、応答があるかどうかにかかわらず会話に入るため、再送信すると Claude に 2 回配信されることになります。
902 912
903これらの注意事項でリストを解釈します:913一覧を解釈する際は、次の注意点に留意してください。
904 914
905* UUID で登録されたメッセージのみが表示されます。空の配列は他に何も実行されないことを意味しません。915* UUID 付きでキューに入れられたメッセージのみが表示されます。空の配列は、他に何も実行されないことを意味するわけではありません。
906* メインスレッドメッセージのみがリストされます。サブエージェントに対処されたメッセージはスコープ外です。916* メインスレッドのメッセージのみが一覧表示されます。サブエージェント宛てのメッセージは対象外です。
907* リストには、[スケジュール済みタスク](/docs/ja/scheduled-tasks)トリガーなど、クライアントが送信しなかった UUID が含まれる場合があります。認識しない UUID を無視し、エラーとして扱わないでください。917* 一覧には、[スケジュールタスク](/docs/ja/scheduled-tasks)のトリガーなど、クライアントが送信していない UUID が含まれる場合があります。認識できない UUID はエラーとして扱わず、無視してください。
908 918
909CLI の制御プロトコルを `interrupt()` ではなく直接駆動するクライアントは、`interrupt` 制御リクエストで `cancel_queued: true` を設定できます。Claude Code v2.1.219 以降は [`SDKSystemMessage.capabilities`](#sdksystemmessage)で `interrupt_cancel_queued_v1` 機能でサポートをアドバタイズします。以前の CLI はフィールドを無視し、キューに入ったメッセージを通常どおり実行したままにします。そのような中断はリストされるはずだったすべてのメッセージをキャンセルします: レシートはそれらを `cancelled` の下にリストし、`still_queued` は空で、それらのどれも実行されません。919`interrupt()` を介さずに CLI のコントロールプロトコルを直接操作するクライアントは、`interrupt` コントロールリクエストに `cancel_queued: true` を設定できます。Claude Code v2.1.219 以降は、[`SDKSystemMessage.capabilities`](#sdksystemmessage) の `interrupt_cancel_queued_v1` ケイパビリティでサポートを通知します。古い CLI はこのフィールドを無視し、キュー内のメッセージは通常どおり実行されます。このような中断は、本来 `still_queued` に一覧表示されるはずのすべてのメッセージもキャンセルします。受領通知ではそれらが代わりに `cancelled` に一覧表示され、`still_queued` は空になり、いずれも実行されません。
910 920
911`cancelled` リストは `still_queued` と同じ注意事項を実行します。`interrupt()` メソッドは `cancel_queued` を送信しないため、それが解決するレシートは `cancelled` を実行しません。921`cancelled` の一覧にも `still_queued` と同じ注意点があります。`interrupt()` メソッドは `cancel_queued` を送信しないため、このメソッドが解決する受領通知には `cancelled` は含まれません。
912 922
913レシートは中断が処理される瞬間に撮られたスナップショットで、クリーンな中断では中断されたターンの [`SDKResultMessage`](#sdkresultmessage)の前に到着します。そのレシートの後のレシートを読み取るのではなく、キューを検査してください: ループは次のキューに入ったターンをすぐに開始するため、レシートの後に検査するキューは既に変更されています。923受領通知は中断が処理された時点で取得されたスナップショットであり、正常な中断の場合は中断されたターンの [`SDKResultMessage`](#sdkresultmessage) より前に到着します。その結果の後にキューを調べるのではなく、受領通知を読み取ってください。ループは次のキュー内のターンをすぐに開始するため、結果の後に調べるキューはすでに変化しています。
914 924
915<h3 id="sdkcontrolgetcontextusageresponse">925<h3 id="sdkcontrolgetcontextusageresponse">
916 `SDKControlGetContextUsageResponse`926 `SDKControlGetContextUsageResponse`
917</h3>927</h3>
918 928
919[`getContextUsage()`](#query-object)の戻り値の型。デフォルト `detail` では、これは Claude Code が対話型セッションで `/context` コマンドに対してレンダリングするのと同じペイロードで、トークンカウントと共に `color` および `gridRows` などの表示フィールドを実行します。Claude Code は `/context` 使用グリッドを描画するために使用します。929[`getContextUsage()`](#query-object) の戻り値の型です。デフォルトの `detail` では、インタラクティブセッションで Claude Code が `/context` コマンドに対してレンダリングするものと同じペイロードであるため、トークン数に加えて、Claude Code が `/context` の使用量グリッドを描画するために使用する `color` や `gridRows` などの表示用フィールドも含まれます。
920 930
921メソッドのオプション `detail` 引数は、Claude Code が各カテゴリをカウントする方法を選択します。`detail` 引数には Agent SDK v0.3.257 以降が必要です。931メソッドのオプションの `detail` 引数で、Claude Code が各カテゴリをどのようにカウントするかを選択します。`detail` 引数には Agent SDK v0.3.257 以降が必要です。
922 932
923* **`'full'`**: デフォルト。Claude Code は [トークンカウント](https://platform.claude.com/docs/en/build-with-claude/token-counting) API リクエストで各カテゴリをカウントします。これらのリクエストはメッセージストリームに表示されないため、ストリームを読み取るコスト追跡はそれらを表示しません。Anthropic API では、トークンカウントは請求されません。933* **`'full'`**: デフォルトです。Claude Code は[トークンカウント](https://platform.claude.com/docs/en/build-with-claude/token-counting) API リクエストを使って各カテゴリをカウントします。これらのリクエストはメッセージストリームに現れないため、ストリームを読み取るコスト追跡では把握できません。Anthropic API では、トークンカウントは課金されません。
924* **`'summary'`**: `{ detail: 'summary' }` を渡して、最後のレスポンスの使用状況とローカル推定から答えを取得します。トークンカウントリクエストは送信されず、カテゴリごとの数値は概算です。934* **`'summary'`**: `{ detail: 'summary' }` を渡すと、代わりに最後のレスポンスの使用量とローカルの見積もりから回答を得られます。トークンカウントのリクエストは送信されず、カテゴリごとの数値は概算になります。
925 935
926代わりにメソッドを呼び出す場合、`/context` をプロンプトとして送信すると、Claude Code は結果を配信するアシスタントメッセージの `context_usage` フィールドに [`SDKContextUsage`](#sdkcontextusage)ペイロードを添付します。そのフィールドには Agent SDK v0.3.232 以降が必要です。936メソッドを呼び出す代わりに `/context` をプロンプトとして送信すると、Claude Code は結果を伝えるアシスタントメッセージの `context_usage` フィールドに [`SDKContextUsage`](#sdkcontextusage) ペイロードを添付します。このフィールドには Agent SDK v0.3.232 以降が必要です。
927 937
928```typescript theme={null}938```typescript theme={null}
929type SDKControlGetContextUsageResponse = {939type SDKControlGetContextUsageResponse = {
1020};1030};
1021```1031```
1022 1032
1023トークン属性をコレクションフィールドから読み取ります:1033トークンの内訳はコレクションフィールドから読み取ります。
1024 1034
1025* `categories` はカテゴリごとの合計を保持します。各エントリの `kind` は [`SDKContextUsageCategory`](#sdkcontextusagecategory)と同じ値で行を分類します。表示 `name` ではなく、それで行を分類します。フィールドには Agent SDK v0.3.268 以降が必要です。1035* `categories` はカテゴリごとの合計を保持します。各エントリの `kind` は、[`SDKContextUsageCategory`](#sdkcontextusagecategory) と同じ値で行を分類します。表示用の `name` ではなく、このフィールドに基づいて行を分類してください。このフィールドには Agent SDK v0.3.268 以降が必要です。
1026* `mcpTools` および `agents` は個々の MCP ツールおよびサブエージェントにトークンを属性付けします。1036* `mcpTools` と `agents` は、トークンを個々の MCP ツールとサブエージェントに割り当てます。
1027* `memoryFiles` は読み込まれた各メモリファイルをそのコストと共にリストします。1037* `memoryFiles` は、読み込まれた各メモリファイルとそのコストを一覧表示します。
1028* `skills.skillFrontmatter` は各含まれるスキルにスキルリストのトークンを属性付けします。スキルごとの数値は、Claude Code が実際に送信するスキルのリストエントリを測定します。これはスキルの完全なフロントマターより短くなる可能性があります。`skills.totalSkills` を `skills.includedSkills` と比較して、すべての検出されたスキルがリストに含まれているかどうかを確認します。1038* `skills.skillFrontmatter` は、スキル一覧のトークンを含まれている各スキルに割り当てます。スキルごとのカウントは、Claude Code が実際に送信する各スキルの一覧エントリを測定したもので、スキルの完全なフロントマターより短い場合があります。`skills.totalSkills` と `skills.includedSkills` を比較すると、検出されたすべてのスキルが一覧に含まれたかどうかを確認できます。
1029 1039
1030`totalTokens` はセッションの現在のコンテキスト使用状況で、`maxTokens` はその使用状況が測定されるウィンドウです。そのウィンドウはモデルのコンテキストウィンドウ、または自動コンパクション ウィンドウが適用される場合はより低いウィンドウです。`rawMaxTokens` は `maxTokens` と同じ値を実行し、`percentage` は `totalTokens` をそのウィンドウのパーセンテージとして丸めたものです。`apiUsage` は、セッションの実行合計ではなく、最新の API レスポンスからの使用状況を保持します。1040`totalTokens` はセッションの現在のコンテキスト使用量で、`maxTokens` はその使用量を測定する基準となるウィンドウです。このウィンドウはモデルのコンテキストウィンドウ、または自動圧縮のウィンドウが適用される場合はそれより小さいそのウィンドウです。`rawMaxTokens` は `maxTokens` と同じ値を持ち、`percentage` はそのウィンドウに対する `totalTokens` の割合を丸めた値です。`apiUsage` は最新の API レスポンスの使用量を保持し、セッションの累計ではありません。
1031 1041
1032Claude Code はオプション `deferredBuiltinTools`、`systemTools`、および `systemPromptSections` 診断を設定しないため、型が宣言していても存在しないことを期待してください。1042Claude Code はオプションの診断フィールドである `deferredBuiltinTools`、`systemTools`、`systemPromptSections` を設定しないため、型で宣言されていてもこれらは存在しないものと想定してください。
1033 1043
1034<h3 id="sdkcontrolreadfileresponse">1044<h3 id="sdkcontrolreadfileresponse">
1035 `SDKControlReadFileResponse`1045 `SDKControlReadFileResponse`
1036</h3>1046</h3>
1037 1047
1038[`readFile()`](#query-object)の戻り値の型。1048[`readFile()`](#query-object) の戻り値の型です。
1039 1049
1040```typescript theme={null}1050```typescript theme={null}
1041type SDKControlReadFileResponse = {1051type SDKControlReadFileResponse = {
1046};1056};
1047```1057```
1048 1058
1049`contents` はファイルテキスト、または `encoding: 'base64'` をリクエストした場合は base64 データを保持します。レスポンスの `encoding` フィールドはその場合 `'base64'` に設定されます。`absPath` は解決された絶対パスです。`truncated` は、ファイルが `maxBytes` キャップより長く、コンテンツがその制限で切り詰められた場合に設定されます。1059`contents` はファイルのテキスト、または `encoding: 'base64'` を要求した場合は base64 データを保持します。その場合、レスポンスの `encoding` フィールドは `'base64'` に設定されます。`absPath` は解決された絶対パスです。`truncated` は、ファイルが `maxBytes` の上限より長く、内容がその上限で切り詰められた場合に設定されます。
1050 1060
1051<h4 id="what-readfile-can-read">1061<h4 id="what-readfile-can-read">
1052 `readFile()` が読み取れるもの1062 `readFile()` が読み取れるもの
1053</h4>1063</h4>
1054 1064
1055`readFile()` は Read ツールより狭いファイルセットを提供します:1065`readFile()` が提供するファイルの範囲は Read ツールより狭くなっています。
1056 1066
1057* `cwd` および `additionalDirectories` などのセッションのワーキングディレクトリ内の通常ファイル1067* `cwd` や `additionalDirectories` など、セッションの作業ディレクトリのいずれかに含まれる通常のファイル
1058* ツール結果などのセッションの Claude Code 独自ファイルのいくつか1068* ツールの結果など、そのセッションに関する Claude Code 自身のファイルの一部
1059 1069
1060Read 拒否および質問ルールは引き続き一致するパスをブロックし、広い Read 許可ルールは `readFile()` に残りのファイルシステムを開きません。他のすべてについて、呼び出しは `null` で解決します。1070`Read` の拒否ルールと確認ルールは引き続き一致するパスをブロックし、広範な `Read` の許可ルールがあっても、ファイルシステムの残りの部分が `readFile()` に開放されることはありません。それ以外のものについては、呼び出しは `null` で解決されます。
1061 1071
1062<h3 id="sdkcontrolreloadpluginsresponse">1072<h3 id="sdkcontrolreloadpluginsresponse">
1063 `SDKControlReloadPluginsResponse`1073 `SDKControlReloadPluginsResponse`
1064</h3>1074</h3>
1065 1075
1066[`reloadPlugins()`](#query-object)の戻り値の型。1076[`reloadPlugins()`](#query-object) の戻り値の型です。
1067 1077
1068```typescript theme={null}1078```typescript theme={null}
1069type SDKControlReloadPluginsResponse = {1079type SDKControlReloadPluginsResponse = {
1086};1096};
1087```1097```
1088 1098
1089コレクションフィールドは呼び出し後のセッションを説明します:1099コレクションフィールドは、呼び出し後のセッションを表します。
1090 1100
1091* `commands`、`agents`、および `mcpServers`: セッションのコマンド、サブエージェント、および MCP サーバーステータス。`supportedCommands()`、`supportedAgents()`、および `mcpServerStatus()` が返すのと同じ形状。`supportedAgents()` は初期化でキャプチャされたリストを返し続けるため、再読み込み後のセットについてはここで `agents` を読み取ります1101* `commands`、`agents`、`mcpServers`: セッションのコマンド、サブエージェント、MCP サーバーのステータスで、`supportedCommands()`、`supportedAgents()`、`mcpServerStatus()` が返すのと同じ形式です。`supportedAgents()` は初期化時に取得されたリストを返し続けるため、再読み込み後のセットについてはここの `agents` を読み取ってください
1092* `plugins`: 各読み込まれたプラグインとそのインストール `path`。`version` はプラグインのマニフェストが宣言するものを繰り返し、プラグイン作成者が制御するため、信頼する前に検証してください。マニフェストが宣言しない場合は省略されます1102* `plugins`: 読み込まれた各プラグインとその `name` およびインストール先の `path`。`version` はプラグインのマニフェストが宣言している内容をそのまま示すもので、プラグインの作成者が制御するため、信頼する前に検証してください。マニフェストが何も宣言していない場合は省略されます
1093* `error_count`: プラグイン読み込みからのエラー数1103* `error_count`: プラグインの読み込みで発生したエラーの数
1094 1104
1095`reloadPlugins()` に `{ holdOnCacheImpact: true }` を渡して、会話のプロンプトキャッシュを無効にする再読み込みを保持し、適用する代わりに保持します。Claude Code は対話型 `/reload-plugins` コマンドが [キャッシュコストについて警告](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)する前に行うチェックを実行します。オプションには Agent SDK v0.3.268 以降が必要です。`pathToClaudeCodeExecutable` が指す v2.1.268 より前の Claude Code 実行可能ファイルはオプションを無視し、再読み込みを適用します。1105`reloadPlugins()` に `{ holdOnCacheImpact: true }` を渡すと、会話のプロンプトキャッシュを無効にするような再読み込みを適用せずに保留できます。Claude Code は、インタラクティブな `/reload-plugins` コマンドが[キャッシュのコストについて警告する](/docs/ja/prompt-caching#enabling-or-disabling-a-plugin)前に行うチェックを実行します。このオプションには Agent SDK v0.3.268 以降が必要です。`pathToClaudeCodeExecutable` で指定したものなど、v2.1.268 より古い Claude Code 実行ファイルはこのオプションを無視して再読み込みを適用します。
1096 1106
1097オプションを渡すと、`held` を読み取って何が起こったかを学びます:1107このオプションを渡した場合は、`held` を読み取って何が起きたかを確認します。
1098 1108
1099* `true`: 再読み込みは適用されず、コレクションフィールドはセッションをそのまま説明します。`cache_impact` は適用が変更するものを言います。とにかく適用するには、オプションなしで `reloadPlugins()` を再度呼び出します。1109* `true`: 再読み込みは適用されておらず、コレクションフィールドは現在のままのセッションを表します。`cache_impact` は、適用した場合に何が変わるかを示します。それでも適用するには、オプションなしで `reloadPlugins()` を再度呼び出します。
1100* `false`: チェックはキャッシュ影響を見つけず、再読み込みが適用されました。1110* `false`: チェックでキャッシュへの影響が見つからず、再読み込みが適用されました。
1101* 不在: オプションを渡さなかったか、Claude Code 実行可能ファイルが v2.1.268 より前で再読み込みを適用しました。1111* 存在しない: オプションを渡さなかったか、Claude Code 実行ファイルが v2.1.268 より古く、再読み込みを適用しました。
1102 1112
1103`cache_impact` は `held: true` と共にのみ存在します。`mcp_servers_added` および `mcp_servers_removed` は再読み込みが登録または削除するプラグイン MCP サーバーをスコープ付き `plugin:<plugin>:<server>` 名として名前付けます。名前はプラグイン作成者が作成するため、表示する前に検証してください。`lsp_tool_change` は適用が LSP ツールを追加または削除するかどうかを言うか、どちらでもない場合は `null`。`may-` 形式は、チェックが保留中のプラグインセットを完全に見ることができなかったことを意味します。1113`cache_impact` は `held: true` と併せてのみ存在します。`mcp_servers_added` と `mcp_servers_removed` は、再読み込みによって登録または削除されるプラグインの MCP サーバーを、スコープ付きの `plugin:<plugin>:<server>` 名で示します。これらの名前はプラグインの作成者が付けたものであるため、表示する前に検証してください。`lsp_tool_change` は、適用によって LSP ツールが追加されるか削除されるかを示し、どちらでもない場合は `null` です。`may-` 形式は、チェックで保留中のプラグインセットを完全には把握できなかったことを意味します。
1104 1114
1105<h3 id="sdkcontrolreloadskillsresponse">1115<h3 id="sdkcontrolreloadskillsresponse">
1106 `SDKControlReloadSkillsResponse`1116 `SDKControlReloadSkillsResponse`
1107</h3>1117</h3>
1108 1118
1109[`reloadSkills()`](#query-object)の戻り値の型。1119[`reloadSkills()`](#query-object) の戻り値の型です。
1110 1120
1111```typescript theme={null}1121```typescript theme={null}
1112type SDKControlReloadSkillsResponse = {1122type SDKControlReloadSkillsResponse = {
1114};1124};
1115```1125```
1116 1126
1117`skills` は再読み込み後に利用可能なスキルをリストし、`supportedCommands()` が返すのと同じ [`SlashCommand`](#slashcommand)形状です。1127`skills` は、再読み込み後に使用可能なスキルを、`supportedCommands()` が返すのと同じ [`SlashCommand`](#slashcommand) の形式で一覧表示します。
1118 1128
1119<h3 id="sdkcontrolreloadoutputstylesresponse">1129<h3 id="sdkcontrolreloadoutputstylesresponse">
1120 `SDKControlReloadOutputStylesResponse`1130 `SDKControlReloadOutputStylesResponse`
1121</h3>1131</h3>
1122 1132
1123[`reloadOutputStyles()`](#query-object)の戻り値の型。1133[`reloadOutputStyles()`](#query-object) の戻り値の型です。
1124 1134
1125```typescript theme={null}1135```typescript theme={null}
1126type SDKControlReloadOutputStylesResponse = {1136type SDKControlReloadOutputStylesResponse = {
1128};1138};
1129```1139```
1130 1140
1131`available_output_styles` は再読み込み後に利用可能な組み込みおよびカスタム出力スタイルの名前をリストします。1141`available_output_styles` は、再読み込み後に使用可能な組み込みおよびカスタムの出力スタイルの名前を一覧表示します。
1132 1142
1133<h3 id="sdkcontrolmcpreadresourceresponse">1143<h3 id="sdkcontrolmcpreadresourceresponse">
1134 `SDKControlMcpReadResourceResponse`1144 `SDKControlMcpReadResourceResponse`
1135</h3>1145</h3>
1136 1146
1137[`readMcpResource()`](#query-object)の戻り値の型。MCP サーバーの `resources/read` 結果を実行します。TypeScript Agent SDK v0.3.280 以降が必要です。1147[`readMcpResource()`](#query-object) の戻り値の型で、MCP サーバーの `resources/read` の結果を保持します。TypeScript Agent SDK v0.3.280 以降が必要です。
1138 1148
1139```typescript theme={null}1149```typescript theme={null}
1140type SDKControlMcpReadResourceResponse = {1150type SDKControlMcpReadResourceResponse = {
1148};1158};
1149```1159```
1150 1160
1151`readMcpResource()` にサーバー名を `mcpServerStatus()` が報告するのと同じように、および `ui://` URI(ツールが [`_meta`](#mcpserverstatus)で宣言する `ui.resourceUri` など)を渡します。呼び出しは他の URI スキーム、アプリケーションが自分でホストする [SDK MCP サーバー](#createsdkmcpserver)、および接続されていないサーバーに対して拒否します。初期化メッセージの [`capabilities`](#sdksystemmessage)に `mcp_read_resource_v1` が含まれている場合に利用可能です。1161`readMcpResource()` には、`mcpServerStatus()` が報告するサーバー名と、ツールが [`_meta`](#mcpserverstatus) で宣言する `ui.resourceUri` などの `ui://` URI を渡します。その他の URI スキームの場合、アプリケーション自身がホストする [SDK MCP サーバー](#createsdkmcpserver)の場合、および接続されていないサーバーの場合、呼び出しは拒否されます。init メッセージの [`capabilities`](#sdksystemmessage) に `mcp_read_resource_v1` が含まれている場合に使用できます。
1152 1162
1153各 `contents` エントリは、`com.anthropic/` プレフィックスの下の `_meta` キーを除いて、サーバーが送信した 1 つのコンテンツアイテムです。これは Claude Code 用に予約されています。`blob` はバイナリアイテムの base64 データを保持し、`_meta` はアイテム自体の `_meta` で、MCP Apps サーバーはリソースの `ui.csp` および `ui.permissions` を配置します。1163各 `contents` エントリは、サーバーが送信したとおりの 1 つのコンテンツ項目ですが、Claude Code 用に予約されている `com.anthropic/` プレフィックス以下の `_meta` キーは除かれます。`blob` はバイナリ項目の base64 データを保持し、`_meta` はその項目自身の `_meta` で、MCP Apps サーバーはリソースの `ui.csp` と `ui.permissions` をここに配置します。
1154 1164
1155コンテンツは信頼できない第三者の HTML であるため、サンドボックスでレンダリングしてください。1165コンテンツは信頼できないサードパーティの HTML であるため、サンドボックス内でレンダリングしてください。
1156 1166
1157<h3 id="agentdefinition">1167<h3 id="agentdefinition">
1158 `AgentDefinition`1168 `AgentDefinition`
1159</h3>1169</h3>
1160 1170
1161プログラムで定義されたサブエージェントの設定。1171プログラムで定義されたサブエージェントの設定です。
1162 1172
1163```typescript theme={null}1173```typescript theme={null}
1164type AgentDefinition = {1174type AgentDefinition = {
1182 1192
1183| フィールド | 必須 | 説明 |1193| フィールド | 必須 | 説明 |
1184| :- | :- | :- |1194| :- | :- | :- |
1185| `description` | はい | このエージェントをいつ使用するかの自然言語説明 |1195| `description` | はい | このエージェントをいつ使用するかを自然言語で説明したもの |
1186| `tools` | いいえ | 許可されたツール名の配列。省略した場合、[サブエージェントで利用可能なすべてのツール](/docs/ja/sub-agents#available-tools)を継承します。スキルをエージェントのコンテキストにプリロードするには、ここで `'Skill'` をリストするのではなく `skills` フィールドを使用します |1196| `tools` | いいえ | 許可されるツール名の配列。省略した場合、[サブエージェントが使用できるツール](/docs/ja/sub-agents#available-tools)をすべて継承します。スキルをエージェントのコンテキストに事前読み込みするには、ここに `'Skill'` を列挙するのではなく `skills` フィールドを使用してください |
1187| `disallowedTools` | いいえ | このエージェントに対して明示的に許可しないツール名の配列。MCP サーバーレベルのパターンも受け入れられます: `mcp__server` または `mcp__server__*` はそのサーバーからすべてのツールを削除し、`mcp__*` はすべての MCP ツールをすべてのサーバーから削除します |1197| `disallowedTools` | いいえ | このエージェントで明示的に禁止するツール名の配列。MCP サーバーレベルのパターンも使用できます。`mcp__server` または `mcp__server__*` はそのサーバーのすべてのツールを削除し、`mcp__*` はすべてのサーバーのすべての MCP ツールを削除します |
1188| `prompt` | はい | エージェントのシステムプロンプト |1198| `prompt` | はい | エージェントのシステムプロンプト |
1189| `model` | いいえ | このエージェントのモデルオーバーライド。`'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` などのエイリアス、または完全なモデル ID を受け入れます。`'inherit'` はメインモデルを使用します。省略した場合、Claude Code は [サブエージェントモデル順序](/docs/ja/sub-agents#choose-a-model)でモデルを選択します |1199| `model` | いいえ | このエージェントのモデルの上書き。`'fable'`、`'opus'`、`'sonnet'`、`'haiku'`、`'inherit'` などのエイリアス、または完全なモデル ID を受け付けます。`'inherit'` はメインのモデルを使用します。省略した場合、Claude Code は[サブエージェントのモデルの順序](/docs/ja/sub-agents#choose-a-model)に従ってモデルを選択します |
1190| `mcpServers` | いいえ | このエージェントの MCP サーバー仕様 |1200| `mcpServers` | いいえ | このエージェントの MCP サーバーの指定 |
1191| `skills` | いいえ | エージェントコンテキストにプリロードするスキル名の配列 |1201| `skills` | いいえ | エージェントのコンテキストに事前読み込みするスキル名の配列 |
1192| `initialPrompt` | いいえ | このエージェントがメインスレッドエージェントとして実行される場合、最初のユーザーターンとして自動送信されます |1202| `initialPrompt` | いいえ | このエージェントがメインスレッドのエージェントとして実行されるときに、最初のユーザーターンとして自動送信されます |
1193| `maxTurns` | いいえ | 停止する前のエージェンティックターン数(API ラウンドトリップ)の最大数 |1203| `maxTurns` | いいえ | 停止するまでのエージェントの最大ターン数(API の往復) |
1194| `background` | いいえ | 呼び出されたときにこのエージェントをノンブロッキングバックグラウンドタスクとして実行します |1204| `background` | いいえ | 呼び出されたときに、このエージェントをノンブロッキングのバックグラウンドタスクとして実行します |
1195| `omitClaudeMd` | いいえ | このエージェントがサブエージェントとして実行される場合、ユーザー、プロジェクト、ローカル CLAUDE.md ファイルなしでこのエージェントを実行します。管理ポリシーファイルは引き続き読み込まれます。Agent ツールプロンプトから必要なすべてを取得するエージェントに使用します。このエージェントがメインスレッドエージェントとして実行される場合は無視されます。TypeScript Agent SDK v0.3.271 以降が必要です |1205| `omitClaudeMd` | いいえ | サブエージェントとして実行されるときに、ユーザー、プロジェクト、ローカルの CLAUDE.md ファイルなしでこのエージェントを実行します。管理ポリシーファイルは引き続き読み込まれます。必要なものをすべて Agent ツールのプロンプトから受け取るエージェントに使用します。このエージェントがメインスレッドのエージェントとして実行される場合は無視されます。TypeScript Agent SDK v0.3.271 以降が必要です |
1196| `memory` | いいえ | このエージェントのメモリソース: `'user'`、`'project'`、または `'local'` |1206| `memory` | いいえ | このエージェントのメモリソース: `'user'`、`'project'`、または `'local'` |
1197| `effort` | いいえ | このエージェントの推論努力レベル。名前付きレベルまたは整数を受け入れます |1207| `effort` | いいえ | このエージェントの推論の effort レベル。名前付きのレベルまたは整数を受け付けます |
1198| `permissionMode` | いいえ | このエージェント内のツール実行の権限モード。[サブエージェント継承ルール](/docs/ja/agent-sdk/permissions#available-modes)はいつ適用されるかを決定します。[`PermissionMode`](#permissionmode)を参照してください |1208| `permissionMode` | いいえ | このエージェント内でのツール実行の権限モード。いつ適用されるかは[サブエージェントの継承ルール](/docs/ja/agent-sdk/permissions#available-modes)によって決まります。[`PermissionMode`](#permissionmode) を参照してください |
1199| `criticalSystemReminder_EXPERIMENTAL` | いいえ | 実験的: システムプロンプトに追加された重要なリマインダー |1209| `criticalSystemReminder_EXPERIMENTAL` | いいえ | 実験的: システムプロンプトに追加される重要なリマインダー |
1200 1210
1201<h3 id="agentmcpserverspec">1211<h3 id="agentmcpserverspec">
1202 `AgentMcpServerSpec`1212 `AgentMcpServerSpec`
1203</h3>1213</h3>
1204 1214
1205サブエージェントで利用可能な MCP サーバーを指定します。サーバー名(親の `mcpServers` 設定からサーバーを参照する文字列)またはインラインサーバー設定レコード(サーバー名を設定にマップ)です。1215サブエージェントが使用できる MCP サーバーを指定します。サーバー名(親の `mcpServers` 設定内のサーバーを参照する文字列)、またはサーバー名を設定にマッピングするインラインのサーバー設定レコードを指定できます。
1206 1216
1207```typescript theme={null}1217```typescript theme={null}
1208type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;1218type AgentMcpServerSpec = string | Record<string, McpServerConfigForProcessTransport>;
1222 1232
1223| 値 | 説明 | 場所 |1233| 値 | 説明 | 場所 |
1224| :- | :- | :- |1234| :- | :- | :- |
1225| `'user'` | グローバルユーザー設定 | `~/.claude/settings.json` |1235| `'user'` | グローバルなユーザー設定 | `~/.claude/settings.json` |
1226| `'project'` | 共有プロジェクト設定(バージョン管理) | `.claude/settings.json` |1236| `'project'` | 共有プロジェクト設定(バージョン管理対象) | `.claude/settings.json` |
1227| `'local'` | ローカルプロジェクト設定、Claude Code が設定を保存するときに gitignored | `.claude/settings.local.json` |1237| `'local'` | ローカルプロジェクト設定。Claude Code が設定を保存する際に gitignore に追加されます | `.claude/settings.local.json` |
1228 1238
1229<h4 id="default-behavior">1239<h4 id="default-behavior">
1230 デフォルト動作1240 デフォルトの動作
1231</h4>1241</h4>
1232 1242
1233`settingSources` が省略されるか `undefined` の場合、`query()` は Claude Code CLI と同じファイルシステム設定を読み込みます: ユーザー、プロジェクト、ローカル。[settingSources が制御しないもの](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照して、関係なく読み込まれる入力と、それらを無効にする方法を確認してください。1243`settingSources` が省略されているか `undefined` の場合、`query()` は Claude Code CLI と同じファイルシステム設定(user、project、local)を読み込みます。このオプションに関係なく読み込まれる入力とそれらを無効にする方法については、[settingSources が制御しないもの](/docs/ja/agent-sdk/claude-code-features#what-settingsources-does-not-control)を参照してください。
1234 1244
1235<h4 id="why-use-settingsources">1245<h4 id="why-use-settingsources">
1236 settingSources を使用する理由1246 settingSources を使用する理由
1237</h4>1247</h4>
1238 1248
1239**ファイルシステム設定を無効にします:**1249**ファイルシステム設定を無効にする:**
1240 1250
1241```typescript theme={null}1251```typescript theme={null}
1242import { query } from "@anthropic-ai/claude-agent-sdk";1252import { query } from "@anthropic-ai/claude-agent-sdk";
1243 1253
1244// ディスクからユーザー、プロジェクト、ローカル設定を読み込まないでください1254// Do not load user, project, or local settings from disk
1245const result = query({1255const result = query({
1246 prompt: "Analyze this code",1256 prompt: "Analyze this code",
1247 options: { settingSources: [] }1257 options: { settingSources: [] }
1248});1258});
1249```1259```
1250 1260
1251**特定の設定ソースのみを読み込みます:**1261**特定の設定ソースのみを読み込む:**
1252 1262
1253```typescript theme={null}1263```typescript theme={null}
1254import { query } from "@anthropic-ai/claude-agent-sdk";1264import { query } from "@anthropic-ai/claude-agent-sdk";
1255 1265
1256// プロジェクト設定のみを読み込み、ユーザーとローカルを無視します1266// Load only project settings, ignore user and local
1257const result = query({1267const result = query({
1258 prompt: "Run CI checks",1268 prompt: "Run CI checks",
1259 options: {1269 options: {
1260 settingSources: ["project"] // .claude/settings.json のみ1270 settingSources: ["project"] // Only .claude/settings.json
1261 }1271 }
1262});1272});
1263```1273```
1264 1274
1265CLAUDE.md プロジェクト指示を読み込むには、`settingSources` に `"project"` を含めます。CLAUDE.md 読み込みがシステムプロンプトオプションとどのように相互作用するかについては、[システムプロンプトを変更](/docs/ja/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions)を参照してください。1275CLAUDE.md のプロジェクト指示を読み込むには、`settingSources` に `"project"` を含めてください。CLAUDE.md の読み込みとシステムプロンプトのオプションとの関係については、[システムプロンプトの変更](/docs/ja/agent-sdk/modifying-system-prompts#claude-md-files-for-project-level-instructions)を参照してください。
1266 1276
1267<h4 id="settings-precedence">1277<h4 id="settings-precedence">
1268 設定優先順位1278 設定の優先順位
1269</h4>1279</h4>
1270 1280
1271複数のソースが読み込まれる場合、設定はこの優先順位(最高から最低)でマージされます:1281複数のソースが読み込まれた場合、設定は次の優先順位(高い順)でマージされます:
1272 1282
12731. ローカル設定(`.claude/settings.local.json`)12831. ローカル設定(`.claude/settings.local.json`)
12742. プロジェクト設定(`.claude/settings.json`)12842. プロジェクト設定(`.claude/settings.json`)
12753. ユーザー設定(`~/.claude/settings.json`)12853. ユーザー設定(`~/.claude/settings.json`)
1276 1286
1277`agents`、`allowedTools`、`settings` などのプログラムオプションは、ユーザー、プロジェクト、ローカルファイルシステム設定をオーバーライドします。管理ポリシー設定はプログラムオプションより優先されます。1287`agents`、`allowedTools`、`settings` などのプログラムによるオプションは、ユーザー、プロジェクト、ローカルのファイルシステム設定を上書きします。管理ポリシー設定はプログラムによるオプションよりも優先されます。
1278 1288
1279<h3 id="permissionmode">1289<h3 id="permissionmode">
1280 `PermissionMode`1290 `PermissionMode`
1282 1292
1283```typescript theme={null}1293```typescript theme={null}
1284type PermissionMode =1294type PermissionMode =
1285 | "default" // 標準権限動作1295 | "default" // Standard permission behavior
1286 | "acceptEdits" // ファイル編集を自動受け入れ1296 | "acceptEdits" // Auto-accept file edits
1287 | "bypassPermissions" // 権限チェックをバイパス。明示的な質問ルールはプロンプトを表示1297 | "bypassPermissions" // Bypass permission checks; explicit ask rules still prompt
1288 | "plan" // プランニングモード - 編集なしで探索1298 | "plan" // Planning mode - explore without editing
1289 | "dontAsk" // 権限をプロンプトしない、事前承認されていない場合は拒否1299 | "dontAsk" // Don't prompt for permissions, deny if not pre-approved
1290 | "auto"; // モデル分類器がシェルコマンドやネットワークリクエストなどのアクションをレビュー1300 | "auto"; // A model classifier reviews actions such as shell commands and network requests
1291```1301```
1292 1302
1293<h3 id="canusetool">1303<h3 id="canusetool">
1294 `CanUseTool`1304 `CanUseTool`
1295</h3>1305</h3>
1296 1306
1297ツール使用を制御するためのカスタム権限関数型。1307ツールの使用を制御するためのカスタム権限関数の型です。
1298 1308
1299関数は対話型権限プロンプトの SDK 置き換えです。[権限評価フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)がプロンプトに解決する場合にのみ呼び出されます。`allowedTools` エントリ、設定許可ルール、または `acceptEdits` や `bypassPermissions` などの権限モードで既に承認されたツール呼び出しは、それを呼び出しません。すべてのツール呼び出しをゲートするには、代わりに [`PreToolUse` フック](/docs/ja/agent-sdk/hooks)を使用します。1309この関数は、対話型の権限プロンプトを SDK で置き換えるものです。[権限評価フロー](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)の結果がプロンプトになった場合にのみ呼び出されます。`allowedTools` のエントリ、設定の許可ルール、または `acceptEdits` や `bypassPermissions` などの権限モードによってすでに承認されているツール呼び出しでは、この関数は呼び出されません。すべてのツール呼び出しを制御するには、代わりに [`PreToolUse` フック](/docs/ja/agent-sdk/hooks)を使用してください。
1300 1310
1301許可ルールは [どのモードも自動承認しないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。[権限がどのように評価されるか](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)を参照して、どれがコールバックに到達し、`dontAsk` および `auto` モードで何が起こるかを確認してください。1311許可ルールは、[どのモードでも自動承認されないアクション](/docs/ja/permission-modes#actions-no-mode-auto-approves)を事前承認しません。それらのうちどれがコールバックに到達するか、また `dontAsk` モードと `auto` モードで何が起こるかについては、[権限の評価方法](/docs/ja/agent-sdk/permissions#how-permissions-are-evaluated)を参照してください。
1302 1312
1303```typescript theme={null}1313```typescript theme={null}
1304type CanUseTool = (1314type CanUseTool = (
1321 1331
1322| オプション | 型 | 説明 |1332| オプション | 型 | 説明 |
1323| :- | :- | :- |1333| :- | :- | :- |
1324| `signal` | `AbortSignal` | 操作を中止する場合に通知されます |1334| `signal` | `AbortSignal` | 操作を中止すべき場合にシグナルが送られます |
1325| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | 提案された権限更新。ユーザーがこのツールに対して再度プロンプトされないようにします。Bash プロンプトには `localSettings` [宛先](#permissionupdatedestination)を含む提案が含まれるため、`updatedPermissions` で返すと、ルールを `.claude/settings.local.json` に書き込み、セッション全体で永続化します。 |1335| `suggestions` | [`PermissionUpdate`](#permissionupdate)`[]` | このツールについてユーザーに再度プロンプトが表示されないようにするための、提案された権限の更新。Bash のプロンプトには `localSettings` [保存先](#permissionupdatedestination)を持つ提案が含まれるため、それを `updatedPermissions` で返すとルールが `.claude/settings.local.json` に書き込まれ、セッションをまたいで保持されます。 |
1326| `blockedPath` | `string` | 権限リクエストをトリガーしたファイルパス(該当する場合) |1336| `blockedPath` | `string` | 権限リクエストをトリガーしたファイルパス(該当する場合) |
1327| `mcpServer` | `{ name: string; source: string }` | `mcp__*` ツールの場合、それを提供する MCP サーバーとそのサーバーの定義がどこから来たか。[`McpServerProvenance`](#mcpserverprovenance)のフィールド。他のツールでは不在です。Agent SDK v0.3.274 以降が必要です |1337| `mcpServer` | `{ name: string; source: string }` | `mcp__*` ツールの場合、そのツールを提供する MCP サーバーと、そのサーバーの定義の取得元。フィールドは [`McpServerProvenance`](#mcpserverprovenance) と同じです。その他のツールでは存在しません。Agent SDK v0.3.274 以降が必要です |
1328| `decisionReason` | `string` | この権限リクエストがトリガーされた理由を説明します |1338| `decisionReason` | `string` | この権限リクエストがトリガーされた理由の説明 |
1329| `defaultToNo` | `boolean` | `true` の場合、単一の迷走キーストロークがこのリクエストを承認してはいけません: プロンプトを拒否オプションで開き、承認を事前選択しないでください。1 キー承認ショートカットを提供しないでください。Agent SDK v0.3.268 以降が必要です |1339| `defaultToNo` | `boolean` | `true` の場合、誤って押された 1 回のキー入力でこのリクエストが承認されてはなりません。プロンプトは拒否オプションを選択した状態で開き、承認を事前選択せず、1 キーで承認できるショートカットも提供しないでください。Agent SDK v0.3.268 以降が必要です |
1330| `suppressAlwaysAllowRule` | `boolean` | `true` の場合、このリクエストに対して永続的な常時許可選択肢を提供しないでください。書き込むルールはリクエスト自体のアクションより多くを許可するためです。Agent SDK v0.3.268 以降が必要です |1340| `suppressAlwaysAllowRule` | `boolean` | `true` の場合、このリクエストに対して永続的な「常に許可」の選択肢を提供しないでください。書き込まれるルールが、リクエスト自体のアクションよりも広い権限を付与してしまうためです。Agent SDK v0.3.268 以降が必要です |
1331| `toolUseID` | `string` | アシスタントメッセージ内のこの特定のツール呼び出しの一意の識別子 |1341| `toolUseID` | `string` | アシスタントメッセージ内のこの特定のツール呼び出しの一意な識別子 |
1332| `agentID` | `string` | サブエージェント内で実行している場合、サブエージェントの ID |1342| `agentID` | `string` | サブエージェント内で実行されている場合、そのサブエージェントの ID |
1333| `requestId` | `string` | `control_request` エンベロープの `request_id`。アプリケーションが SDK の外で送信する `control_response`(署名付き HTTP POST など)は、Claude Code プロセスが返信をリクエストと一致させることができるようにこの値をエコーする必要があります |1343| `requestId` | `string` | `control_request` エンベロープの `request_id`。アプリケーションが SDK の外部から送信する `control_response`(署名付き HTTP POST など)は、Claude Code プロセスが応答をリクエストと照合できるよう、この値をそのまま返す必要があります |
1334 1344
1335コールバックは通常、[`PermissionResult`](#permissionresult)を返すことでリクエストを解決し、SDK はそれを `control_response` として トランスポート上に書き込みます。このリクエストの `control_response` を既に独自のチャネルで送信した場合にのみ `null` を返し、`requestId` をエコーします。SDK はトランスポートへのレスポンス書き込みをスキップします。他の場合に `null` を返すと、`control_response` が送信されず、権限プロンプトはタイムアウトしないため、ツール呼び出しは無期限にブロックされたままになります。1345コールバックは通常、[`PermissionResult`](#permissionresult) を返すことでリクエストを解決し、SDK はそれを `control_response` としてトランスポート経由で書き戻します。`null` を返すのは、アプリケーションがすでに独自のチャネル経由で `requestId` を含めてこのリクエストの `control_response` を送信済みの場合に限ってください。その場合、SDK はトランスポートへのレスポンスの書き込みをスキップします。それ以外のケースで `null` を返すと、`control_response` が送信されず、権限プロンプトはタイムアウトしないため、ツール呼び出しが無期限にブロックされたままになります。
1336 1346
1337`requestId` オプションと `null` 戻り値には Claude Code v2.1.199 以降が必要です。1347`requestId` オプションと `null` の戻り値には、Claude Code v2.1.199 以降が必要です。
1338 1348
1339<h3 id="permissionresult">1349<h3 id="permissionresult">
1340 `PermissionResult`1350 `PermissionResult`
1341</h3>1351</h3>
1342 1352
1343権限チェックの結果。1353権限チェックの結果です。
1344 1354
1345```typescript theme={null}1355```typescript theme={null}
1346type PermissionResult =1356type PermissionResult =
1362 `ToolConfig`1372 `ToolConfig`
1363</h3>1373</h3>
1364 1374
1365組み込みツール動作の設定。1375組み込みツールの動作に関する設定です。
1366 1376
1367```typescript theme={null}1377```typescript theme={null}
1368type ToolConfig = {1378type ToolConfig = {
1374 1384
1375| フィールド | 型 | 説明 |1385| フィールド | 型 | 説明 |
1376| :- | :- | :- |1386| :- | :- | :- |
1377| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | [`AskUserQuestion`](/docs/ja/agent-sdk/user-input#question-format)オプションの `preview` フィールドをオプトインし、そのコンテンツ形式を設定します。設定されていない場合、Claude はプレビューを出力しません |1387| `askUserQuestion.previewFormat` | `'markdown' \| 'html'` | [`AskUserQuestion`](/docs/ja/agent-sdk/user-input#question-format) のオプションで `preview` フィールドを有効にし、そのコンテンツ形式を設定します。未設定の場合、Claude はプレビューを出力しません |
1378 1388
1379<h3 id="mcpserverconfig">1389<h3 id="mcpserverconfig">
1380 `McpServerConfig`1390 `McpServerConfig`
1381</h3>1391</h3>
1382 1392
1383MCP サーバーの設定。1393MCP サーバーの設定です。
1384 1394
1385```typescript theme={null}1395```typescript theme={null}
1386type McpServerConfig =1396type McpServerConfig =
1456 `SdkPluginConfig`1466 `SdkPluginConfig`
1457</h3>1467</h3>
1458 1468
1459SDK でプラグインを読み込むための設定。1469SDK でプラグインを読み込むための設定です。
1460 1470
1461```typescript theme={null}1471```typescript theme={null}
1462type SdkPluginConfig = {1472type SdkPluginConfig = {
1468 1478
1469| フィールド | 型 | 説明 |1479| フィールド | 型 | 説明 |
1470| :- | :- | :- |1480| :- | :- | :- |
1471| `type` | `'local'` | `'local'` である必要があります(現在ローカルプラグインのみがサポートされています) |1481| `type` | `'local'` | `'local'` である必要があります(現在はローカルプラグインのみサポート) |
1472| `path` | `string` | プラグインディレクトリへの絶対パスまたは相対パス |1482| `path` | `string` | プラグインディレクトリへの絶対パスまたは相対パス |
1473| `skipMcpDiscovery` | `boolean` | `true` の場合、SDK はこのプラグインからスキル、フック、エージェント、コマンドを読み込みますが、その `.mcp.json` またはマニフェスト `mcpServers` は読み込みません。アプリケーションがプラグインの MCP 接続を所有している場合に設定します。 |1483| `skipMcpDiscovery` | `boolean` | `true` の場合、SDK はこのプラグインからスキル、フック、エージェント、コマンドを読み込みますが、`.mcp.json` やマニフェストの `mcpServers` は読み込みません。アプリケーションがプラグインの MCP 接続を管理する場合に設定してください。 |
1474 1484
1475**例:**1485**例:**
1476 1486
1477```typescript theme={null}1487```typescript theme={null}
1478plugins: [1488plugins: [
1481];1491];
1482```1492```
1483 1493
1484プラグインの作成と使用に関する完全な情報については、[プラグイン](/docs/ja/agent-sdk/plugins)を参照してください。1494プラグインの作成と使用に関する詳細については、[プラグイン](/docs/ja/agent-sdk/plugins)を参照してください。
1485 1495
1486<h2 id="message-types">1496<h2 id="message-types">
1487 メッセージ型1497 メッセージタイプ
1488</h2>1498</h2>
1489 1499
1490<h3 id="sdkmessage">1500<h3 id="sdkmessage">
1556};1566};
1557```1567```
1558 1568
1559`message` フィールドは Anthropic SDK の [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) です。`id`、`content`、`model`、`stop_reason`、`usage` などのフィールドが含まれます。1569`message` フィールドは Anthropic SDK の [`BetaMessage`](https://platform.claude.com/docs/en/api/messages/create) です。`id`、`content`、`model`、`stop_reason`、`usage` などのフィールドを含みます。
1560 1570
1561`SDKAssistantMessageError` は `'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'`、`'unknown'` のいずれかです。このうち 4 つの値は、名前が示す以上の意味を持ちます。1571`SDKAssistantMessageError` は `'authentication_failed'`、`'oauth_org_not_allowed'`、`'account_on_hold'`、`'billing_error'`、`'rate_limit'`、`'overloaded'`、`'invalid_request'`、`'model_not_found'`、`'server_error'`、`'max_output_tokens'`、`'cloud_credential_error'`、`'unknown'` のいずれかです。このうち 4 つの値は、名前から読み取れる以上の意味を持ちます。
1562 1572
1563* `'model_not_found'`: 選択したモデルが存在しないか、アカウントまたはデプロイで利用できません1573* `'model_not_found'`: 選択したモデルが存在しないか、アカウントまたはデプロイで利用できない
1564* `'overloaded'`: サーバーが容量の上限に達しているため API が 529 を返しました。これに対して `'rate_limit'` は、クォータに対する 429 です1574* `'overloaded'`: サーバーが容量の上限に達しているため API が 529 を返した。これに対して `'rate_limit'` は、クォータに対する 429 を意味する
1565* `'account_on_hold'`: [アカウントが保留中です](/docs/ja/errors#your-account-is-on-hold)1575* `'account_on_hold'`: [アカウントが保留中になっている](/docs/ja/errors#your-account-is-on-hold)
1566* `'cloud_credential_error'`: Claude Code を実行しているマシン上で使用可能な AWS または Google Cloud の認証情報を取得できなかったため、リクエストがクラウドプロバイダーに届きませんでした。通常の原因は、そのマシンでのクラウドへのサインインが期限切れになったか、完了していなかったことですが、認証情報サービスに一時的に到達できない場合も同じ値が報告されます。[Could not load AWS or Google Cloud credentials](/docs/ja/errors#could-not-load-aws-or-google-cloud-credentials) を参照してください。TypeScript Agent SDK v0.3.267 以降(Claude Code v2.1.267 を同梱)が必要です1576* `'cloud_credential_error'`: Claude Code が実行中のマシン上で使用可能な AWS または Google Cloud の認証情報を取得できなかったため、クラウドプロバイダーにリクエストが届かなかった。通常の原因は、そのマシン上でのクラウドへのサインインが期限切れになったか、完了していないことですが、認証情報サービスに一時的に到達できない場合も同じ値が報告されます。[Could not load AWS or Google Cloud credentials](/docs/ja/errors#could-not-load-aws-or-google-cloud-credentials) を参照してください。Claude Code v2.1.267 を同梱する TypeScript Agent SDK v0.3.267 以降が必要です
1567 1577
1568`aborted` は、割り込みまたは中止によってストリームの完了前にアシスタントメッセージが途中で切れた場合に `true` になります。このときメッセージには `stop_reason` がなく、内容が単語の途中で終わっている可能性があります。正常に完了したメッセージにはこのフィールドはありません。Agent SDK v0.3.214 以降が必要です。1578`aborted` は、ストリームが完了する前に中断または中止によってアシスタントメッセージが切り詰められた場合に `true` になります。このときメッセージには `stop_reason` がなく、内容が単語の途中で終わっている可能性があります。正常に完了したメッセージにはこのフィールドはありません。Agent SDK v0.3.214 以降が必要です。
1569 1579
1570Claude Code は、[`user_message_uuid`](#user_message_uuid) に記載の条件のもとで、ターンの最初のアシスタントメッセージに `user_message_uuid` と `user_message_uuids` を設定します。再起動によって中断されたターンを Claude Code が再実行する場合、これらのフィールドを持つ再実行時のアシスタントメッセージには [`resume_reason`](#resume_reason) も付与されます。1580Claude Code は、[`user_message_uuid`](#user_message_uuid) に記載された条件のもとで、ターンの最初のアシスタントメッセージに `user_message_uuid` と `user_message_uuids` を設定します。再起動によって中断されたターンを Claude Code が再実行する場合、再実行でこれらのフィールドを持つアシスタントメッセージには [`resume_reason`](#resume_reason) も含まれます。
1571 1581
1572`timestamp` は、メッセージを生成したプロセス上でメッセージの内容の生成が完了した時刻を示す ISO 8601 形式の値です。この値はそのマシンの時計に基づくため、表示目的にのみ使用し、メッセージの並べ替えには使用しないでください。1 回の API ターンで、同じ `message.id` を共有する複数のアシスタントメッセージが生成されることがあり、それぞれに独自の `timestamp` があります。このフィールドがない場合は、メッセージを受信した時刻にフォールバックしてください。1582`timestamp` は、メッセージを生成したプロセス上でそのメッセージの内容の生成が完了した時刻を ISO 8601 形式で表します。値はそのマシンの時計に基づくため、表示目的にのみ使用し、メッセージの並べ替えには使用しないでください。1 回の API ターンで、同じ `message.id` を共有する複数のアシスタントメッセージが生成されることがあり、それぞれが独自の `timestamp` を持ちます。このフィールドがない場合は、メッセージを受信した時刻で代用してください。
1573 1583
1574`context_usage` は `/context` レポートの構造化されたコピーで、型は [`SDKContextUsage`](#sdkcontextusage) です。Agent SDK v0.3.232 以降が必要です。`/context` をプロンプトとして送信すると、Claude Code は `message.content` に markdown の表を含むアシスタントメッセージとしてレポートを配信し、その同じメッセージに `context_usage` を付与します。Claude Code は他のアシスタントメッセージにはこのフィールドを設定せず、それ以前のバージョンではこのフィールドなしで `/context` の表が配信されます。そのため、このフィールドがある場合はそこから内訳を読み取り、ない場合は markdown テキストにフォールバックしてください。1584`context_usage` は `/context` レポートの構造化されたコピーで、型は [`SDKContextUsage`](#sdkcontextusage) です。Agent SDK v0.3.232 以降が必要です。`/context` をプロンプトとして送信すると、Claude Code は `message.content` に markdown の表を含むアシスタントメッセージとしてレポートを返し、同じメッセージに `context_usage` を付加します。Claude Code はこれ以外のアシスタントメッセージにはこのフィールドを設定せず、以前のバージョンではこのフィールドなしで `/context` の表が返されます。そのため、フィールドが存在する場合はそこから内訳を読み取り、存在しない場合は markdown テキストにフォールバックしてください。
1575 1585
1576<h3 id="sdkusermessage">1586<h3 id="sdkusermessage">
1577 `SDKUserMessage`1587 `SDKUserMessage`
1597};1607};
1598```1608```
1599 1609
1600ユーザーが入力したのではなくプロンプト UI に貼り付けた内容を送信するには、`pasted_content` を設定します。貼り付け 1 回につき 1 エントリで、各エントリは文字列またはコンテンツブロックの配列です。Claude Code は各エントリのテキストを、入力されたテキストの後に順番に追加し、各貼り付けを `<pasted_content>` タグで囲むことがあります。テキスト以外のブロックは無視されるため、画像やドキュメントは `message.content` で送信してください。Agent SDK v0.3.277 以降が必要です。1610ユーザーが入力したのではなくプロンプト UI に貼り付けたコンテンツを送信するには、`pasted_content` を設定します。貼り付け 1 回につき 1 エントリで、各エントリは文字列またはコンテンツブロックの配列です。Claude Code は各エントリのテキストを入力テキストの後に順番に追加し、各貼り付けを `<pasted_content>` タグで囲むことがあります。テキスト以外のブロックは無視されるため、画像やドキュメントは `message.content` で送信してください。Agent SDK v0.3.277 以降が必要です。
1601 1611
1602`message.content` のどの部分をユーザーが入力ではなく貼り付けたかを Claude Code に伝えるには、`inline_pastes` を設定します。貼り付け 1 回につき 1 つの文字列です。プロンプトのテキストはユーザーが置いた位置にそのまま残ります。Claude Code はリストに含まれる各貼り付けをその位置で `<pasted_content>` タグで囲むことがあり、これにより Claude は貼り付けられた素材とユーザー自身の言葉を区別できます。囲まれるのは、プロンプトの最後のテキストブロック内の貼り付けだけです。TypeScript Agent SDK v0.3.280 以降が必要です。1612`message.content` のどの部分をユーザーが入力したのではなく貼り付けたのかを Claude Code に伝えるには、`inline_pastes` を設定します。貼り付け 1 回につき 1 つの文字列を指定します。プロンプトのテキストはユーザーが置いた位置のままです。Claude Code は、Claude が貼り付けられた内容とユーザー自身の言葉を区別できるよう、リストに含まれる各貼り付けをその位置で `<pasted_content>` タグで囲むことがあります。囲まれるのは、プロンプトの最後のテキストブロック内の貼り付けのみです。TypeScript Agent SDK v0.3.280 以降が必要です。
1603 1613
1604送信するメッセージを Claude Code がどのように扱うかを変更するには、`shouldQuery`、`client_composed`、または `priority` を設定します。1614`shouldQuery`、`client_composed`、または `priority` を設定すると、送信したメッセージを Claude Code がどのように扱うかを変更できます。
1605 1615
1606* `shouldQuery`: `false` に設定すると、アシスタントのターンをトリガーせずにメッセージをトランスクリプトに追加します。メッセージは保持され、ターンをトリガーする次のユーザーメッセージにマージされます。帯域外で実行したコマンドの出力などのコンテキストを、モデル呼び出しを消費せずに挿入する場合に使用します。1616* `shouldQuery`: `false` に設定すると、アシスタントのターンを開始せずにメッセージをトランスクリプトに追加します。メッセージは保持され、ターンを開始する次のユーザーメッセージにマージされます。帯域外で実行したコマンドの出力などのコンテキストを、モデル呼び出しを消費せずに注入するために使用します。
1607* `client_composed`: `true` に設定すると、Claude Code はメッセージのテキストを記述されたとおりに配信します。その場合、Claude Code は `@path` や [`@server:resource`](/docs/ja/mcp#use-mcp-resources) のメンションを展開せず、`/` で始まるテキストをコマンドとして実行しません。[`verbatimPrompts`](#options) オプションがオンの間は、SDK がすべてのメッセージにこのフィールドを設定します。TypeScript Agent SDK v0.3.280 以降と Claude Code v2.1.248 以降が必要です。1617* `client_composed`: `true` に設定すると、Claude Code はメッセージのテキストを書かれたとおりに渡します。この場合、Claude Code は `@path` や [`@server:resource`](/docs/ja/mcp#use-mcp-resources) のメンションを展開せず、`/` で始まるテキストをコマンドとして実行しません。[`verbatimPrompts`](#options) オプションが有効な間は、SDK がすべてのメッセージにこのフィールドを設定します。TypeScript Agent SDK v0.3.280 以降および Claude Code v2.1.248 以降が必要です。
1608* `priority`: 実行中のターンの間に送信したメッセージが Claude に届くタイミングを制御します。1618* `priority`: 実行中のターンの間に送信したメッセージが Claude に届くタイミングを制御します。
1609 * `'next'`、または `priority` フィールドなし: Claude は、実行中のツール呼び出しが終わり次第、同じターン内でメッセージを読みます。先にターンが終了した場合は、そのメッセージが次のターンを開始します。1619 * `'next'`、または `priority` フィールドなし: Claude は実行中のツール呼び出しが完了するとすぐに、同じターン内でメッセージを読み取ります。先にターンが終了した場合は、そのメッセージが次のターンを開始します。
1610 * `'later'`: Claude Code はターンが終了するまでメッセージを保持し、新しいターンとして送信します。1620 * `'later'`: Claude Code はターンが終了するまでメッセージを保持し、新しいターンとして送信します。
1611 * [`origin: { kind: "human" }`](#sdkmessageorigin) 付きの `'now'`: Claude Code v2.1.286 以降では、バックグラウンドで続行できる作業はバックグラウンドに移され、Claude は同じターン内でメッセージを読みます。移動できる作業には、シェルコマンド、サブエージェント、MCP ツール呼び出しが含まれます。v2.1.287 以降では、WebFetch と WebSearch の呼び出しも含まれます。Claude が応答を書いているだけの場合や、実行中の作業を移動できない場合は、Claude Code は代わりにターンを中断し、Claude は次にメッセージを読みます。1621 * [`origin: { kind: "human" }`](#sdkmessageorigin) を伴う `'now'`: Claude Code v2.1.286 以降では、バックグラウンドで継続できる作業はバックグラウンドに移され、Claude は同じターン内でメッセージを読み取ります。移動できる作業には、シェルコマンド、サブエージェント、MCP ツール呼び出しが含まれます。v2.1.287 以降では、WebFetch と WebSearch の呼び出しも含まれます。Claude が応答を書いているだけの場合や、実行中の作業を移動できない場合は、代わりに Claude Code がターンを中断し、Claude は次にメッセージを読み取ります。
1612 * その origin なしの `'now'`: Claude Code はターンを中断し、Claude は次にメッセージを読みます。1622 * その origin を伴わない `'now'`: Claude Code がターンを中断し、Claude は次にメッセージを読み取ります。
1613 1623
1614次のメッセージは、ターンの実行中に送信され、まだ実行中のシェルコマンドを失わずに方針を変更するよう Claude に依頼するものです。1624次のメッセージは、ターンの実行中に送信され、まだ実行中のシェルコマンドを失うことなく方針の変更を Claude に求めます。
1615 1625
1616```typescript theme={null}1626```typescript theme={null}
1617const message: SDKUserMessage = {1627const message: SDKUserMessage = {
1623};1633};
1624```1634```
1625 1635
1626`tool_result` ブロックを含むメッセージでは、`tool_use_result` はモデルに送信されたテキストではなく、ツールの構造化された出力オブジェクトです。その形状は対応する `tool_use` ブロックで指定されたツールによって異なるため、このフィールドの型は `unknown` です。組み込みの形状は [Tool Output Types](#tool-output-types) に記載されています。次の結果は、記載された形状以上の扱いが必要です。1636`tool_result` ブロックを含むメッセージでは、`tool_use_result` はモデルに送信されるテキストではなく、ツールの構造化された出力オブジェクトです。その形状は対応する `tool_use` ブロックで指定されたツールによって異なるため、このフィールドの型は `unknown` です。組み込みの形状は [Tool Output Types](#tool-output-types) に記載されています。次の結果には、記載された形状以上の処理が必要です。
1627 1637
1628* `Agent` ツール: `tool_use_result` は [`AgentOutput`](#agent-2) です。`tool_result` のテキストを解析するのではなく、これをもとに描画してください。`completed` の結果の `content` にはサブエージェントのレポートが入ります。ただし、レポートを `SubagentHandback` ツール呼び出しで渡すサブエージェントの場合は、レポートの代わりにその引き渡しに関する短いメモが入ります。Claude Code v2.1.271 以降の [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、[フォーク](/docs/ja/sub-agents#fork-the-current-conversation)を除き、`completed` の結果を生成するすべてのサブエージェントがその方法でレポートし、Claude はサブエージェントからの別のメッセージとしてレポートを受け取ります。1638* `Agent` ツール: `tool_use_result` は [`AgentOutput`](#agent-2) です。`tool_result` のテキストを解析するのではなく、これを元に表示してください。`completed` の結果の `content` にはサブエージェントのレポートが含まれます。ただし、レポートを `SubagentHandback` ツール呼び出しで渡すサブエージェントの場合は、レポートの代わりにその引き渡しに関する短い注記が含まれます。Claude Code v2.1.271 以降の [auto モード](/docs/ja/permission-modes#eliminate-prompts-with-auto-mode)では、`completed` の結果を生成するすべてのサブエージェントは、[フォーク](/docs/ja/sub-agents#fork-the-current-conversation)でない限りこの方法でレポートし、Claude はレポートをサブエージェントからの別のメッセージとして受け取ります。
1629* `'now'` メッセージを配信するために Claude Code がバックグラウンドに移した WebFetch または WebSearch の呼び出し: その呼び出しの `tool_result` を含むユーザーメッセージでは、`tool_use_result` が `{ detachedToolCall: true }` に設定されます。呼び出しはまだ実行中で、完了すると Claude はその結果を受け取ります。その `tool_use_id` に対する 2 つ目の `tool_result` は続かないため、アプリケーションでツール呼び出しごとに行を描画している場合は、このメッセージが届いた時点でその行をバックグラウンドに移動済みとしてマークしてください。Claude Code v2.1.287 以降が必要です。1639* `'now'` メッセージを届けるために Claude Code がバックグラウンドに移した WebFetch または WebSearch の呼び出し: その呼び出しの `tool_result` を含むユーザーメッセージでは、`tool_use_result` が `{ detachedToolCall: true }` に設定されます。呼び出しはまだ実行中で、完了すると Claude はその結果を受け取ります。その `tool_use_id` に対する 2 つ目の `tool_result` は続かないため、アプリケーションでツール呼び出しごとに行を描画している場合は、このメッセージを受信した時点でその行をバックグラウンドに移動済みとしてマークしてください。Claude Code v2.1.287 以降が必要です。
1630* 結果に `resource_link` ブロックを含む MCP ツール: `tool_use_result` は、[`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリの `resourceLinks` 配列を持つオブジェクトです。Claude は各リンクを `tool_result` ブロック内のテキスト行として受け取るため、サーバーが返したファイルを描画するには、そのテキストを解析するのではなく `resourceLinks` を読み取ってください。Claude Code は、結果にリンクがない場合とサブエージェントからの結果では `resourceLinks` を省略し、1 つの結果につき最大 50 個のリンクを保持し、配列がシリアライズされた JSON で 64 KiB に達するとリンクの追加を停止します。`resourceLinks` には Agent SDK v0.3.257 以降が必要です。1640* 結果に `resource_link` ブロックを含む MCP ツール: `tool_use_result` は、[`SDKMcpResourceLink`](#sdkmcpresourcelink) エントリの `resourceLinks` 配列を持つオブジェクトです。Claude は各リンクを `tool_result` ブロック内の 1 行のテキストとして受け取るため、そのテキストを解析するのではなく `resourceLinks` を読み取ってサーバーが返したファイルを表示してください。Claude Code は、結果にリンクがない場合およびサブエージェントからの結果では `resourceLinks` を省略し、1 つの結果につき最大 50 個のリンクを保持し、配列がシリアル化された JSON で 64 KiB に達するとリンクの追加を停止します。`resourceLinks` には Agent SDK v0.3.257 以降が必要です。
1631* [`structuredContent`](#calltoolresult) を返す MCP ツール: `tool_use_result` は、`structuredContent` メンバーにサーバーが送信した内容を、`content` メンバーに [`McpOutput`](#mcpoutput) の値を保持するオブジェクトです。サブエージェントからの結果には `structuredContent` は含まれません。1641* [`structuredContent`](#calltoolresult) を返す MCP ツール: `tool_use_result` は、`structuredContent` メンバーにサーバーが送信したものを、`content` メンバーに [`McpOutput`](#mcpoutput) の値を保持するオブジェクトです。サブエージェントからの結果には `structuredContent` は含まれません。
1632* `structuredContent` をシリアライズすると JSON で 1,048,576 文字を超える MCP ツール: Claude Code は `tool_use_result` から `structuredContent` を除外し、代わりに `structuredContentOmitted: true` を設定します。これにより、アプリケーションはオブジェクトが削除されたのか、ツールが何も送信しなかったのかを区別できます。`content` や `resourceLinks` などの他のメンバーは残り、Claude が受け取る内容は変わりません。[インプロセス SDK サーバー](/docs/ja/agent-sdk/custom-tools)のツールと、`tools/list` エントリで [MCP Apps の `_meta.ui` リソース](#mcpserverstatus)を宣言しているツールは対象外で、オブジェクト全体を配信します。この上限は Claude Code v2.1.287 以降で適用されます。1642* `structuredContent` が JSON にシリアル化すると 1,048,576 文字を超える MCP ツール: Claude Code は `tool_use_result` から `structuredContent` を除外し、代わりに `structuredContentOmitted: true` を設定します。これにより、アプリケーションはオブジェクトが除外されたのか、ツールが何も送信しなかったのかを区別できます。`content` や `resourceLinks` などの他のメンバーは残り、Claude が受け取る内容は変わりません。[インプロセス SDK サーバー](/docs/ja/agent-sdk/custom-tools)のツールと、`tools/list` エントリで [MCP Apps の `_meta.ui` リソース](#mcpserverstatus)を宣言しているツールは対象外で、オブジェクト全体を渡します。この上限は Claude Code v2.1.287 以降で適用されます。
1633 1643
1634<h3 id="sdkusermessagereplay">1644<h3 id="sdkusermessagereplay">
1635 `SDKUserMessageReplay`1645 `SDKUserMessageReplay`
1636</h3>1646</h3>
1637 1647
1638UUID が必須の、再生されたユーザーメッセージです。1648必須の UUID を持つ再生されたユーザーメッセージです。
1639 1649
1640```typescript theme={null}1650```typescript theme={null}
1641type SDKUserMessageReplay = {1651type SDKUserMessageReplay = {
1652};1662};
1653```1663```
1654 1664
1655セッションの外部から挿入されたユーザーターン、つまり [`origin`](#sdkmessageorigin) の kind が `peer` または `channel` のターンは、アクティブなターンの間に配信された場合でも、セッションがアイドル状態のときに新しいターンを開始した場合でも、再生としてストリームに届きます。v2.1.207 より前は、セッションがアイドル状態のときに配信された挿入ターンはストリーム上にメッセージを生成せず、トランスクリプトを読み直したときにのみ表示されていました。1665セッションの外部から注入されたユーザーターン、つまり [`origin`](#sdkmessageorigin) の kind が `peer` または `channel` のものは、アクティブなターン中に配信された場合でも、セッションがアイドル状態のときに新しいターンを開始した場合でも、再生としてストリームに届きます。v2.1.207 より前は、セッションがアイドル状態のときに配信された注入ターンはストリームにメッセージを生成せず、トランスクリプトを読み直したときにのみ表示されていました。
1656 1666
1657<h3 id="sdkresultmessage">1667<h3 id="sdkresultmessage">
1658 `SDKResultMessage`1668 `SDKResultMessage`
1738 1748
1739結果のいくつかのフィールドは、`subtype` 以上の診断情報を提供します。1749結果のいくつかのフィールドは、`subtype` 以上の診断情報を提供します。
1740 1750
1741* `api_error_status`: 会話を終了させた API エラーの HTTP ステータスコードです。ターンが API エラーなしで終了した場合は存在しないか `null` です。1751* `api_error_status`: 会話を終了させた API エラーの HTTP ステータスコード。ターンが API エラーなしで終了した場合は、存在しないか `null` です。
1742* `ttft_ms`: 最初のトークンまでの時間(ミリ秒)で、最初の完全なアシスタントメッセージが届いた時点で測定されます。success 側にのみ存在します。1752* `ttft_ms`: 最初のトークンまでの時間(ミリ秒)で、最初の完全なアシスタントメッセージが到着した時点で測定されます。success アームにのみ存在します。
1743* `ttft_stream_ms`: 応答ストリームが開いたとき、最初の `message_start` ストリームイベントまでの時間(ミリ秒)です。`ttft_ms` より小さく、両者の差は最初のメッセージのストリーミングに費やされた時間です。success 側にのみ存在します。1753* `ttft_stream_ms`: 応答ストリームが開いたときの最初の `message_start` ストリームイベントまでの時間(ミリ秒)。`ttft_ms` より小さく、両者の差は最初のメッセージのストリーミングに費やされた時間です。success アームにのみ存在します。
1744* `user_message_uuid`: このターンが応答した、送信したメッセージの `uuid` です。どの結果にこれが含まれるかは [`user_message_uuid`](#user_message_uuid) を参照してください。1754* `user_message_uuid`: このターンが応答した、送信済みメッセージの `uuid`。どの結果がこれを持つかについては [`user_message_uuid`](#user_message_uuid) を参照してください。
1745* `user_message_uuids`: Claude Code がこのターンで応答した、送信したすべてのメッセージの `uuid` です。[`user_message_uuids`](#user_message_uuids) を参照してください。1755* `user_message_uuids`: このターンで Claude Code が応答した、送信済みのすべてのメッセージの `uuid`。[`user_message_uuids`](#user_message_uuids) を参照してください。
1746* `resume_reason`: 再起動による中断の後、Claude Code がこのターンを再実行した理由です。両方の側に存在しますが、そのような再実行の場合に限られます。[`resume_reason`](#resume_reason) を参照してください。1756* `resume_reason`: 再起動によって中断されたこのターンを Claude Code が再実行した理由。両方のアームに存在し、そのような再実行の場合にのみ含まれます。[`resume_reason`](#resume_reason) を参照してください。
1747* `local_command`: `/compact` など、エージェントループに入らずにコマンドで完了したターンの success 結果における、ターンがディスパッチしたコマンドの名前です。名前は小文字とアンダースコアに変換されるため、`/reload-plugins` は `reload_plugins` と報告されます。MCP サーバーが提供するコマンドと組み込みの `/mcp` は `mcp` と報告されます。自分で定義したコマンドは `custom` と報告されます。引数は含まれません。エージェントループに入ったすべてのターンと、コマンドを実行しなかった送信では存在しません。Agent SDK v0.3.268 以降が必要です。1757* `local_command`: `/compact` など、エージェントループに入らずにコマンドが完了したターンの success 結果における、そのターンがディスパッチしたコマンドの名前。名前は小文字とアンダースコアに変換されるため、`/reload-plugins` は `reload_plugins` と報告されます。MCP サーバーが提供するコマンドと組み込みの `/mcp` は `mcp` と報告されます。自分で定義したコマンドは `custom` と報告されます。引数は含まれません。エージェントループに入ったすべてのターンと、コマンドを実行しなかった送信には存在しません。Agent SDK v0.3.268 以降が必要です。
1748* `request_sent_wall_ms`: Claude Code が API リクエストをディスパッチしたエポックミリ秒で、サーバー側のタイムスタンプとの結合に使用します。API リクエストを送信したターンの、`is_error` が false の success 結果において、[`user_message_uuid`](#user_message_uuid) と一緒にのみ存在します。1758* `request_sent_wall_ms`: Claude Code が API リクエストをディスパッチした時刻のエポックミリ秒で、サーバー側のタイムスタンプとの結合に使用します。API リクエストを送信したターンの、`is_error` が false である success 結果において、[`user_message_uuid`](#user_message_uuid) と一緒にのみ存在します。
1749* `first_content_frame_ms`: 最初の `content_block_start` または `content_block_delta` ストリームイベントまでの時間(ミリ秒)で、思考ブロックもコンテンツとしてカウントします。success 側で `is_error` が false の場合にのみ存在します。Agent SDK v0.3.260 以降が必要です。1759* `first_content_frame_ms`: 最初の `content_block_start` または `content_block_delta` ストリームイベントまでの時間(ミリ秒)で、思考ブロックもコンテンツとして数えます。success アームで、`is_error` が false の場合にのみ存在します。Agent SDK v0.3.260 以降が必要です。
1750* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`: ターンの最初のストリームイベントのアップロードに関するタイミングです。Claude Code は、[クラウドセッション](/docs/ja/claude-code-on-the-web)など claude.ai にストリーミングするセッションでのみこれらを記録し、`query()` が返す結果には含まれません。Agent SDK v0.3.260 以降が必要です。1760* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`: ターンの最初のストリームイベントのアップロードに関するタイミング。Claude Code は、[クラウドセッション](/docs/ja/claude-code-on-the-web)など claude.ai にストリーミングするセッションでのみこれらを記録し、`query()` が返す結果にはこれらは含まれません。Agent SDK v0.3.260 以降が必要です。
1751* `usage`: メインのエージェントループのみが対象です。サブエージェントと補助的なモデル呼び出しは除外され、ストリーミング入力のセッションではターンごとの値になります。トークンやコストの集計には `modelUsage` を優先してください。1761* `usage`: メインのエージェントループのみが対象です。サブエージェントや補助的なモデル呼び出しは除外され、ストリーミング入力セッションではターンごとの値になります。トークンやコストの集計には `modelUsage` を優先してください。
1752* `modelUsage`: この `query()` 呼び出しの間にクエリパイプラインを通じて行われたすべてのモデル呼び出しの、モデルごとの合計です。メインループ、サブエージェント、およびコンテキスト圧縮や Workflow エージェントなどの内部呼び出しが含まれます。権限分類器やトークンカウントのリクエストなど、そのパイプライン外のヘルパー呼び出しは除外されます。セッションを再開する呼び出しでは、[セッションの以前の呼び出しから復元されたモデルごとの合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)もカウントされます。ストリーミング入力のセッションでは合計がターンをまたいで累積されるため、結果を合算するのではなく最新の結果を読み取ってください。リセットについては [Track costs in streaming input mode](/docs/ja/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) を、ゼロになった結果については [Recover totals after a session crash](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) を参照してください。1762* `modelUsage`: この `query()` 呼び出しの間にクエリパイプラインを通じて行われたすべてのモデル呼び出しのモデルごとの合計で、メインループ、サブエージェント、コンテキスト圧縮や Workflow エージェントなどの内部呼び出しを含みます。権限分類器やトークンカウントのリクエストなど、そのパイプライン外のヘルパー呼び出しは除外されます。セッションを再開する呼び出しでは、[セッションの以前の呼び出しから復元されたモデルごとの合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)も数えられます。ストリーミング入力セッションでは合計がターンをまたいで累積されるため、結果を合算するのではなく最新の結果を読み取ってください。リセットについては [Track costs in streaming input mode](/docs/ja/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) を、ゼロになった結果については [Recover totals after a session crash](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) を参照してください。
1753* `total_cost_usd`: USD での累積推定コストです。`modelUsage` と同じ呼び出しを対象とし、同じタイミングでリセットされます。セッションを再開する呼び出しでは、[セッションの以前の呼び出しから復元された合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)もカウントされます。これは推定値であり、請求明細ではありません。精度に関する注意事項は [Track cost and usage](/docs/ja/agent-sdk/cost-tracking) を参照してください。1763* `total_cost_usd`: USD での累積推定コストで、`modelUsage` と同じ呼び出しを対象とし、同じタイミングでリセットされます。セッションを再開する呼び出しでは、[セッションの以前の呼び出しから復元された合計](/docs/ja/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)も数えられます。これは推定値であり、請求明細ではありません。精度に関する注意事項については [Track cost and usage](/docs/ja/agent-sdk/cost-tracking) を参照してください。
1754* `queued_turn_count`: Claude Code が結果を生成した時点でまだ待機中の、`origin: { kind: "human" }` 付きで送信したメッセージの数です。`0` とフィールドがない場合の意味については [`queued_turn_count`](#queued_turn_count) を参照してください。1764* `queued_turn_count`: Claude Code が結果を生成した時点でまだ待機中の、`origin: { kind: "human" }` を付けて送信したメッセージの数。`0` やフィールドがない場合の意味については [`queued_turn_count`](#queued_turn_count) を参照してください。
1755* `result_index`: 実行の配信順序におけるこの結果の位置で、プロセスが書き込むすべての結果を通して 0 から数えます。両方の側に存在します。書き込みに失敗した結果も番号を消費するため、シーケンスに欠番がある場合は結果が失われたことを意味します。Agent SDK v0.3.268 以降が必要です。1765* `result_index`: 実行の配信順序におけるこの結果の位置で、プロセスが書き込むすべての結果を通して 0 から数えます。両方のアームに存在します。書き込みに失敗した結果もその番号を消費するため、連番に欠番がある場合は結果が失われたことを意味します。Agent SDK v0.3.268 以降が必要です。
1756* `startup_failure_reason`: 既知の起動失敗で終了する前に Claude Code が書き込む `error_during_execution` 結果における、Claude Code が起動を拒否した理由です。値と、どの失敗がこれを含むかについては [`startup_failure_reason`](#startup_failure_reason) を参照してください。Agent SDK v0.3.274 以降が必要です。1766* `startup_failure_reason`: 既知の起動失敗で終了する前に Claude Code が書き込む `error_during_execution` 結果における、Claude Code が起動を拒否した理由。値とどの失敗がこれを持つかについては [`startup_failure_reason`](#startup_failure_reason) を参照してください。Agent SDK v0.3.274 以降が必要です。
1757* `terminal_reason`: ループが終了した理由です。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"`、`"turn_setup_failed"` のいずれかです。1767* `terminal_reason`: ループが終了した理由。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"`、`"turn_setup_failed"` のいずれかです。
1758* `fast_mode_state`: `"on"`、`"off"`、`"cooldown"` のいずれかです。1768* `fast_mode_state`: `"on"`、`"off"`、`"cooldown"` のいずれかです。
1759* `fast_mode_disabled_reason`: [fast mode](/docs/ja/fast-mode) が現在利用できない理由です。fast mode を妨げるものがない場合は存在しませんが、リクエストが標準速度で実行される場合もあります。fast mode のレート制限後のクールダウン中は、Claude Code は理由コードなしで `fast_mode_state: "cooldown"` を報告し、クールダウンが終了すると fast mode を再度有効にします。Claude Code v2.1.219 以降が必要です。1769* `fast_mode_disabled_reason`: [fast mode](/docs/ja/fast-mode) が現在利用できない理由。fast mode を妨げるものがない場合は存在しませんが、リクエストが標準速度で実行されることもあります。fast mode のレート制限後のクールダウン中、Claude Code は理由コードなしで `fast_mode_state: "cooldown"` を報告し、クールダウンが終了すると fast mode を再び有効にします。Claude Code v2.1.219 以降が必要です。
1760 1770
1761利用可能性を独自に導出し直すのではなく、理由コードを使用して、fast mode がオフになっている理由を独自の UI で説明してください。各コードは、fast mode を妨げたチェックを示します。1771利用可否を独自に導き直すのではなく、理由コードを使用して、fast mode がオフになっている理由を独自の UI で説明してください。各コードは、fast mode を妨げたチェックを示します。
1762 1772
1763| 理由コード | 意味 |1773| 理由コード | 意味 |
1764| - | - |1774| - | - |
1765| `free` | アカウントに、fast mode に必要な有料サブスクリプションまたは使用クレジットがありません |1775| `free` | アカウントに、fast mode に必要な有料サブスクリプションまたは使用クレジットがない |
1766| `preference` | 組織が fast mode を無効にしています |1776| `preference` | 組織が fast mode を無効にしている |
1767| `extra_usage_disabled` | アカウントの使用クレジットがオフになっています |1777| `extra_usage_disabled` | アカウントの使用クレジットがオフになっている |
1768| `network_error` | [利用可能性チェック](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)が `api.anthropic.com` に到達できませんでした |1778| `network_error` | [利用可否チェック](/docs/ja/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)が `api.anthropic.com` に到達できなかった |
1769| `unknown` | Claude Code が利用可能性を判定できませんでした |1779| `unknown` | Claude Code が利用可否を判定できなかった |
1770| `not_first_party` | セッションが Anthropic API 以外のプロバイダーを使用しています |1780| `not_first_party` | セッションが Anthropic API 以外のプロバイダーを使用している |
1771| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ja/env-vars) が設定されています |1781| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/ja/env-vars) が設定されている |
1772| `model_not_allowed` | fast mode の Opus モデルが、組織の [`availableModels`](/docs/ja/model-config#restrict-model-selection) 許可リストに含まれていません |1782| `model_not_allowed` | fast mode の Opus モデルが組織の [`availableModels`](/docs/ja/model-config#restrict-model-selection) 許可リストに含まれていない |
1773| `sdk_opt_in_required` | セッションが fast mode にオプトインしていません。[`settings`](#options) オプションで、または [`applyFlagSettings()`](#applyflagsettings) を通じて `fastMode: true` を渡してください |1783| `sdk_opt_in_required` | セッションが fast mode にオプトインしていない。[`settings`](#options) オプションで、または [`applyFlagSettings()`](#applyflagsettings) を通じて `fastMode: true` を渡してください |
1774| `pending` | 利用可能性チェックがまだ完了していません |1784| `pending` | 利用可否チェックがまだ完了していない |
1775 1785
1776同じフィールドのペアが [`SDKSystemMessage`](#sdksystemmessage) と [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) にも含まれるため、最初のターンの前に fast mode の状態を読み取ることができます。1786同じ 2 つのフィールドが [`SDKSystemMessage`](#sdksystemmessage) と [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) にも含まれるため、最初のターンの前に fast mode の状態を読み取ることができます。
1777 1787
1778`origin` フィールドは、この結果をトリガーしたユーザーメッセージの [`SDKMessageOrigin`](#sdkmessageorigin) を引き継ぎます。完了したバックグラウンドタスクなどのために SDK が合成のフォローアップターンを挿入した場合、生成される `SDKResultMessage` には `origin: { kind: "task-notification" }` が含まれます。トリガーが発火したルーティンや、他のセッションからのサーバー検証済みメッセージもこの kind で届き、それぞれに [Task-notification のサブ種別](#task-notification-subkinds)で説明する `subkind` が付きます。ルーティングや抑制を行う前に `kind` を確認して、プロンプトへの応答である結果と挿入されたフォローアップを区別してください。アプリケーションが[スケジュール実行を宣言](#declare-a-scheduled-run)している場合、その結果も `kind: "task-notification"` を持つため、`kind` だけで抑制しないでください。1788`origin` フィールドは、この結果をトリガーしたユーザーメッセージの [`SDKMessageOrigin`](#sdkmessageorigin) を転送します。完了したバックグラウンドタスクに対するものなど、SDK が合成のフォローアップターンを注入した場合、結果の `SDKResultMessage` には `origin: { kind: "task-notification" }` が含まれます。トリガーが発火したルーティンや、他のセッションからのサーバー検証済みメッセージもこの kind で届き、それぞれに [Task-notification subkinds](#task-notification-subkinds) で説明されている `subkind` が付きます。ルーティングや抑制を行う前に `kind` を確認して、プロンプトに応答する結果と注入されたフォローアップを区別してください。アプリケーションが[スケジュール実行を宣言する](#declare-a-scheduled-run)場合、その結果にも `kind: "task-notification"` が含まれるため、`kind` だけで抑制しないでください。
1779 1789
1780複数のバックグラウンドタスクの完了がまとめてキューに入った場合、Claude Code はそれぞれに 1 ターンずつではなく、1 つのターンでそれらに応答することがあります。その場合でも、各完了はこの origin を持つ独自の結果を生成します。Claude Code がまとめて応答する完了のうち最後のもの以外は、順番に `num_turns: 0` の空の結果を生成し、最後の完了の結果にすべてに応答するターンが含まれます。1790複数のバックグラウンドタスクの完了がまとめてキューに入っている場合、Claude Code はそれぞれに 1 ターンずつではなく、1 つのターンでそれらに応答することがあります。各完了はそれでもこの origin を持つ独自の結果を生成します。Claude Code がまとめて応答する完了のうち最後のもの以外は、順番に `num_turns: 0` の空の結果を生成し、最後のものの結果に、すべてに応答するターンが含まれます。
1781 1791
1782起動エラーなど、ユーザーターンの前に出力される結果では、このフィールドは存在しません。1792起動エラーなど、ユーザーターンの前に出力された結果にはこのフィールドはありません。
1783 1793
1784`PreToolUse` フックが `permissionDecision: "defer"` を返した場合、結果には `stop_reason: "tool_deferred"` が含まれ、`deferred_tool_use` に保留中のツールの `id`、`name`、`input` が含まれます。このフィールドを読み取って独自の UI でリクエストを表示し、同じ `session_id` で再開して続行してください。一連の流れについては [Defer a tool call for later](/docs/ja/hooks#defer-a-tool-call-for-later) を参照してください。1794`PreToolUse` フックが `permissionDecision: "defer"` を返した場合、結果には `stop_reason: "tool_deferred"` が含まれ、`deferred_tool_use` には保留中のツールの `id`、`name`、`input` が含まれます。このフィールドを読み取って独自の UI でリクエストを表示し、同じ `session_id` で再開して続行してください。一連の流れについては [Defer a tool call for later](/docs/ja/hooks#defer-a-tool-call-for-later) を参照してください。
1785 1795
1786<h4 id="user_message_uuid">1796<h4 id="user_message_uuid">
1787 `user_message_uuid`1797 `user_message_uuid`
1788</h4>1798</h4>
1789 1799
1790ターンが応答している [`SDKUserMessage`](#sdkusermessage) の `uuid` で、Claude Code の返信を送信したメッセージと照合できるようにエコーされます。Claude Code が `uuid` をエコーするのは、メッセージに `uuid` を設定した場合のみです。このフィールドは `SDKUserMessage` ではオプションであり、`query()` に渡される文字列プロンプトには含まれません。1800ターンが応答している [`SDKUserMessage`](#sdkusermessage) の `uuid` で、Claude Code の応答を送信したメッセージと対応付けられるようにエコーされます。Claude Code が `uuid` をエコーするのは、メッセージにそれを設定した場合のみです。このフィールドは `SDKUserMessage` ではオプションであり、`query()` に渡した文字列プロンプトには含まれません。
1791 1801
1792ターンがどのメッセージに応答するかは、ターンの開始方法によって異なります。1802ターンがどのメッセージに応答するかは、ターンの開始方法によって異なります。
1793 1803
1794* **送信した通常のメッセージ**(`isSynthetic: true` のないもの): ターンは実行全体を通してそのメッセージに応答します。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合このフィールドには最後のメッセージの `uuid` のみが含まれます。マージされたいずれかのメッセージと返信を照合するには、[`user_message_uuids`](#user_message_uuids) を使用してください。1804* **送信した通常のメッセージ**(`isSynthetic: true` のないもの): ターンは実行全体を通してそのメッセージに応答します。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合フィールドには最後のメッセージの `uuid` のみが含まれます。マージされたいずれかのメッセージに応答を対応付けるには、[`user_message_uuids`](#user_message_uuids) を使用してください。
1795* **`isSynthetic: true` 付きで送信したメッセージ**: ターンは最初はそのメッセージに応答します。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、それ以降ターンは取り込まれたメッセージに応答します。合成メッセージの `uuid` のエコーには Agent SDK v0.3.265 以降が必要です。それ以前のバージョンでは、合成ターンで何もエコーされません。1805* **`isSynthetic: true` を付けて送信したメッセージ**: ターンは最初はそのメッセージに応答します。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンは拾ったメッセージに応答します。合成メッセージの `uuid` をエコーするには Agent SDK v0.3.265 以降が必要です。以前のバージョンでは合成ターンで何もエコーされません。
1796* **[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) のもとで中断されたターンを再実行するために Claude Code が生成するプロンプト**: 中断されたターンの最後のプロンプトが送信した通常のメッセージである場合(それがターンを開始したものか、ターン中に Claude Code が取り込んだものかを問わず)、再実行は最初はそのメッセージに応答します。[`resume_reason`](#resume_reason) によって、再実行のフレームと中断された試行のフレームを区別できます。最後のプロンプトが通常のメッセージでない場合、再実行は最初はどのメッセージにも応答しません。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、それ以降ターンは取り込まれたメッセージに応答します。中断されたターンのプロンプトのエコーには Agent SDK v0.3.268 以降が必要です。1806* **[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) のもとで中断されたターンを再実行するために Claude Code が生成するプロンプト**: 中断されたターンの最後のプロンプトが送信した通常のメッセージである場合(それがターンを開始したものか、ターン中に Claude Code が拾ったものかを問わず)、再実行は最初はそのメッセージに応答します。[`resume_reason`](#resume_reason) によって、再実行のフレームと中断された試行のフレームを区別できます。最後のプロンプトが送信した通常のメッセージでない場合、再実行は最初は送信したどのメッセージにも応答しません。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンは拾ったメッセージに応答します。中断されたターンのプロンプトをエコーするには Agent SDK v0.3.268 以降が必要です。
1797* **Claude Code 自身が生成したその他のプロンプト**: ターンは最初はどのメッセージにも応答せず、そのフレームにはエコーが含まれません。Claude Code がツール呼び出しの合間に通常のメッセージを取り込んだ場合、それ以降ターンはそのメッセージに応答します。取り込み時のエコーには Agent SDK v0.3.265 以降が必要です。それ以前のバージョンでは、これらのターンで何もエコーされません。1807* **Claude Code 自身が生成したその他のプロンプト**: ターンは最初は送信したどのメッセージにも応答せず、そのフレームにはエコーが含まれません。Claude Code がツール呼び出しの合間に通常のメッセージを拾った場合、それ以降ターンはそのメッセージに応答します。拾った際のエコーには Agent SDK v0.3.265 以降が必要です。以前のバージョンではこれらのターンで何もエコーされません。
1798 1808
1799Claude Code は、応答したメッセージの `uuid` を 3 種類のフレームでエコーします。1809Claude Code は、応答したメッセージの `uuid` を 3 種類のフレームでエコーします。
1800 1810
1801* **結果**: 送信したメッセージに応答したターンのすべての結果です。Agent SDK v0.3.265 以降では、そのような結果のすべてにこれが含まれます。v0.3.265 より前は、通常のメッセージで開始されたターンの success 結果で、ターンが API リクエストを送信しなかった場合や遅延されたツール呼び出しで終了した場合に、これが含まれていませんでした。v0.3.246 より前はエラー結果にも含まれておらず、v0.3.216 より前はすべての結果に含まれていませんでした。1811* **結果**: 送信したメッセージに応答したターンのすべての結果。Agent SDK v0.3.265 以降では、そのようなすべての結果にこれが含まれます。v0.3.265 より前は、通常のメッセージで開始されたターンの success 結果で、ターンが API リクエストを送信しなかった場合や遅延されたツール呼び出しで終了した場合に、これが欠けていました。v0.3.246 より前はエラー結果にも欠けており、v0.3.216 より前はすべての結果に欠けていました。
1802* **ターンの最初の返信**: 最初の[アシスタントメッセージ](#sdkassistantmessage)と、`includePartialMessages` を使用している場合は `event.type` が `ping` でない最初の[ストリームイベント](#sdkpartialassistantmessage)です。これにより、結果が届く前に返信を関連付けることができます。最初の返信でのエコーには Agent SDK v0.3.246 以降が必要です。v0.3.269 より前は、`includePartialMessages` を使用している場合、Claude Code はその最初のストリームイベントにのみ、またはターンが何もストリーミングしなかった場合は最初のアシスタントメッセージに、これを設定していました。Agent SDK v0.3.265 以降では、ターンが応答しているメッセージがターンの途中で変わった場合、変更後の最初の返信にもこのフィールドが含まれます。それ以前のバージョンでは、ターンごとに 1 つの返信フレームに設定されていました。1812* **ターンの最初の応答**: 最初の[アシスタントメッセージ](#sdkassistantmessage)、および `includePartialMessages` を使用する場合は `event.type` が `ping` でない最初の[ストリームイベント](#sdkpartialassistantmessage)にも含まれるため、結果が届く前に応答を対応付けることができます。最初の応答でのエコーには Agent SDK v0.3.246 以降が必要です。v0.3.269 より前は、`includePartialMessages` を使用する場合、Claude Code はその最初のストリームイベントにのみ、またはターンが何もストリーミングしなかった場合は最初のアシスタントメッセージにこれを設定していました。Agent SDK v0.3.265 以降では、ターンが応答しているメッセージがターンの途中で変わった場合、変更後の最初の応答にもこのフィールドが含まれます。以前のバージョンでは、ターンごとに 1 つの応答フレームにのみ設定されていました。
1803* **ターンのすべての [`thinking_tokens`](#sdkthinkingtokensmessage) フレーム**: ターンの最初の返信を待たずに、思考の進行状況を送信したメッセージに関連付けることができます。Agent SDK v0.3.260 以降が必要です。1813* **ターンのすべての [`thinking_tokens`](#sdkthinkingtokensmessage) フレーム**: ターンの最初の応答を待たずに、思考の進行状況を送信したメッセージに関連付けることができます。Agent SDK v0.3.260 以降が必要です。
1804 1814
1805Claude Code は次の場合にこのフィールドを省略します。1815Claude Code は次の場合にこのフィールドを省略します。
1806 1816
1807* 上記の最初の返信以外の返信フレーム1817* 上記の最初の応答以外の応答フレーム
1808* サブエージェントのフレーム1818* サブエージェントのフレーム
1809* どのメッセージにも応答しないターン、または `uuid` なしで送信したメッセージに応答するターン1819* 送信したどのメッセージにも応答しないターン、または `uuid` なしで送信したメッセージに応答するターン
1810* クラッシュしたワーカープロセスの後のゼロになった結果など、送信したどのメッセージにも応答しない結果1820* クラッシュしたワーカープロセスの後のゼロになった結果など、送信したどのメッセージにも応答しない結果
1811 1821
1812<h4 id="user_message_uuids">1822<h4 id="user_message_uuids">
1813 `user_message_uuids`1823 `user_message_uuids`
1814</h4>1824</h4>
1815 1825
1816Claude Code がこのターンで応答した、送信したすべてのメッセージの `uuid` です。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合 `user_message_uuid` は最後のメッセージのみを示します。マージされたいずれかのメッセージと返信を照合するには、そのメッセージの `uuid` がこのリストのどこかにあるかを確認してください。Agent SDK v0.3.259 以降が必要です。1826このターンで Claude Code が応答した、送信済みのすべてのメッセージの `uuid`。複数のメッセージを短い間隔で送信すると、Claude Code はそれらを 1 つのターンにマージすることがあり、その場合 `user_message_uuid` はそのうち最後のものだけを示します。マージされたいずれかのメッセージに応答を対応付けるには、このリスト内でそのメッセージの `uuid` を探してください。Agent SDK v0.3.259 以降が必要です。
1817 1827
1818Claude Code は、`user_message_uuid` を含む各返信フレームと結果に、`user_message_uuid` と一緒にこのリストを設定します。応答したメッセージの `uuid` をエコーするターンフレームの全体と、それぞれに必要なバージョンについては、[`user_message_uuid`](#user_message_uuid) を参照してください。リストには常に `user_message_uuid` が含まれ、最大 64 エントリです。1828Claude Code は、`user_message_uuid` を持つ各応答フレームと結果に、このリストを `user_message_uuid` と一緒に設定します。応答したメッセージの `uuid` をエコーするターンフレームの全体と、それぞれに必要なバージョンについては、[`user_message_uuid`](#user_message_uuid) を参照してください。リストには常に `user_message_uuid` が含まれ、最大 64 エントリを保持します。
1819 1829
1820ターンの実行中に送信した通常のメッセージを Claude Code が取り込んだ場合、そのメッセージの `uuid` が結果のリストに追加されます。1830ターンの実行中に送信した通常のメッセージを Claude Code が拾った場合、そのメッセージの `uuid` が結果のリストに追加されます。
1821 1831
1822最初の返信または結果にリストなしで `user_message_uuid` が含まれている場合、それは以前の Claude Code バージョンからのものであるため、単一のフィールドにフォールバックしてください。1832最初の応答または結果に、リストなしで `user_message_uuid` が含まれている場合、それは以前の Claude Code バージョンからのものなので、単一のフィールドにフォールバックしてください。
1823 1833
1824<h4 id="resume_reason">1834<h4 id="resume_reason">
1825 `resume_reason`1835 `resume_reason`
1826</h4>1836</h4>
1827 1837
1828再起動後に Claude Code がこのターンを再実行した理由です。Claude Code は、[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) のもとで再実行したターンにこのフィールドを設定するため、再実行の返信と結果を中断された試行のものと区別できます。Agent SDK v0.3.268 以降が必要です。1838再起動後に Claude Code がこのターンを再実行した理由。Claude Code は、[`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/ja/env-vars) のもとで再実行したターンにこのフィールドを設定するため、再実行の応答と結果を中断された試行のものと区別できます。Agent SDK v0.3.268 以降が必要です。
1829 1839
1830Claude Code はこのフィールドを 2 種類のフレームに設定します。1840Claude Code は 2 種類のフレームにこのフィールドを設定します。
1831 1841
1832* **再実行の結果**: success 側と error 側の両方で、結果に `user_message_uuid` が含まれるかどうかに関係なく設定されます。1842* **再実行の結果**: success アームとエラーアームの両方で、結果に `user_message_uuid` が含まれるかどうかにかかわらず設定されます。
1833* **再実行の返信フレーム**: [`user_message_uuid`](#user_message_uuid) を含むものです。1843* **再実行の応答フレーム**: [`user_message_uuid`](#user_message_uuid) を持つもの。
1834 1844
1835値は、`interrupted_turn` など、ターンが再実行された理由を示す短い小文字のトークンです。他のすべてのターンでは、このフィールドは存在しません。1845値は、ターンが再実行された理由を示す短い小文字のトークンで、`interrupted_turn` などです。その他のすべてのターンにはこのフィールドはありません。
1836 1846
1837<h4 id="queued_turn_count">1847<h4 id="queued_turn_count">
1838 `queued_turn_count`1848 `queued_turn_count`
1839</h4>1849</h4>
1840 1850
1841Claude Code が結果を生成した時点でコマンドキューにまだ待機中の、[`origin: { kind: "human" }`](#sdkmessageorigin) 付きで送信したメッセージの数です。Agent SDK v0.3.242 以降が必要です。1851Claude Code が結果を生成した時点でまだコマンドキューで待機中の、[`origin: { kind: "human" }`](#sdkmessageorigin) を付けて送信したメッセージの数。Agent SDK v0.3.242 以降が必要です。
1842 1852
1843`0` とフィールドがない場合の意味は次のとおりです。1853`0` とフィールドがない場合の意味は次のとおりです。
1844 1854
1845* **`0`**: Claude Code はその `origin` なしで送信したメッセージとタスク通知をカウントしないため、その後もターンが続く可能性があります。1855* **`0`**: Claude Code はその `origin` なしで送信したメッセージやタスク通知を数えないため、それでもターンが続く可能性があります。
1846* **存在しない**: クラッシュまたは致命的な起動エラーの後に Claude Code が出力する最終結果ではこのフィールドが省略され、[合計がゼロになっている可能性があります](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。1856* **存在しない**: クラッシュまたは致命的な起動エラーの後に Claude Code が出力する最終結果ではこのフィールドが省略され、[合計がゼロになっている場合があります](/docs/ja/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。
1847 1857
1848<h4 id="startup_failure_reason">1858<h4 id="startup_failure_reason">
1849 `startup_failure_reason`1859 `startup_failure_reason`
1850</h4>1860</h4>
1851 1861
1852Claude Code が起動を拒否した理由で、アプリケーションが再試行ではなく修正方法を提示できるようにするためのものです。Claude Code は、既知の起動失敗で終了する前に書き込む `error_during_execution` 結果にこれを設定します。その結果の合計はゼロで、`errors` 配列には stderr と同じテキストが含まれます。他のすべての結果では、このフィールドは存在しません。Agent SDK v0.3.274 以降が必要です。1862Claude Code が起動を拒否した理由で、アプリケーションが再試行ではなく修正方法を提示できるようにするものです。Claude Code は、既知の起動失敗で終了する前に書き込む `error_during_execution` 結果にこれを設定します。その結果の合計はゼロで、`errors` 配列には stderr と同じテキストが含まれます。その他のすべての結果にはこのフィールドはありません。Agent SDK v0.3.274 以降が必要です。
1853 1863
1854すべての `SDKStartupFailureReason` 値についてこの結果を受け取るには、[`env`](#options) で `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` を `1` に設定します。この変数がない場合、Claude Code は次の失敗についてのみ結果を書き込み、それ以外は stderr 出力、ゼロ以外の終了コード、結果メッセージなしで終了します。1864すべての `SDKStartupFailureReason` 値についてこの結果を受け取るには、[`env`](#options) で `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` を `1` に設定してください。この変数がない場合、Claude Code は次の失敗についてのみ結果を書き込み、それ以外は stderr 出力と非ゼロの終了で終わり、結果メッセージは出力されません。
1855 1865
1856* [セッションを worktree に戻せない](/docs/ja/worktrees#the-session-resumes-outside-its-worktree)ために Claude Code が停止する再開で、`worktree_unverified` または `worktree_resume_refused` が設定されます。どのエラーにどの値が設定されるかは、そのセクションに記載されています。1866* [セッションを worktree に戻せない](/docs/ja/worktrees#the-session-resumes-outside-its-worktree)ために Claude Code が停止する再開(`worktree_unverified` または `worktree_resume_refused`)。どのエラーがどの値を持つかはそのセクションに記載されています。
1857* バックグラウンドセッションが保持している会話の [`continue`](#options) が拒否された場合で、`session_held_by_background` が設定されます。そのような会話の [`resume`](#options) が拒否された場合、Claude Code は変数が設定されているときにのみ結果を書き込みます。1867* バックグラウンドセッションが保持している会話の [`continue`](#options) が拒否された場合(`session_held_by_background`)。そのような会話の [`resume`](#options) が拒否された場合は、変数が設定されているときにのみ Claude Code は結果を書き込みます。
1858 1868
1859```typescript theme={null}1869```typescript theme={null}
1860type SDKStartupFailureReason =1870type SDKStartupFailureReason =
1879 1889
1880各値は 1 つの拒否理由を示します。1890各値は 1 つの拒否理由を示します。
1881 1891
1882| 値 | セッションを停止させた原因 |1892| 値 | セッションを停止させたもの |
1883| :- | :- |1893| :- | :- |
1884| `org_pin_api_key_conflict` | 管理設定で[ファーストパーティまたは Cloud ゲートウェイへのサインインが必須](/docs/ja/authentication#restrict-login-to-your-organization)とされているにもかかわらず、代わりに Anthropic API キー、認証トークン、または `apiKeyHelper` が設定されています |1894| `org_pin_api_key_conflict` | 管理設定が[ファーストパーティまたは Cloud ゲートウェイへのサインインを必須としている](/docs/ja/authentication#restrict-login-to-your-organization)のに、代わりに Anthropic API キー、認証トークン、または `apiKeyHelper` が設定されている |
1885| `provider_not_allowed` | 管理設定で[このマシンが使用できる API プロバイダーが列挙](/docs/ja/settings-reference#allowedproviders)されていますが、セッションがリストにないプロバイダー、または設定で固定されていないエンドポイント向けに構成されています。Claude Code v2.1.285 以降が必要です |1895| `provider_not_allowed` | 管理設定が[このマシンで使用できる API プロバイダーを列挙している](/docs/ja/settings-reference#allowedproviders)のに、セッションが列挙されていないプロバイダー、または設定で固定されていないエンドポイント向けに構成されている。Claude Code v2.1.285 以降が必要です |
1886| `org_verify_failed` | ネットワーク障害やトークンの失効などにより、サインインの組織を固定設定と照合して検証できませんでした |1896| `org_verify_failed` | ネットワーク障害やトークンの失効などにより、サインインの組織を固定設定に照らして検証できなかった |
1887| `org_pin_mismatch` | サインインが、固定設定で許可されていない組織に属しています |1897| `org_pin_mismatch` | サインインが、固定設定で許可されていない組織に属している |
1888| `managed_settings_invalid` | 管理ポリシー設定を読み取れなかったか、固定設定で組織が指定されていないか、[管理対象のモデル制限](/docs/ja/errors#managed-settings-block-the-default-model)により Default オプションで許可されるモデルがありません |1898| `managed_settings_invalid` | 管理ポリシー設定を読み取れなかった、固定設定で組織が指定されていない、または[管理モデル制限](/docs/ja/errors#managed-settings-block-the-default-model)により Default オプションに許可されたモデルが残っていない |
1889| `remote_settings_required_unavailable` | 組織が必須としている管理設定を読み込めませんでした |1899| `remote_settings_required_unavailable` | 組織が必須としている管理設定を読み込めなかった |
1890| `gateway_signin_required` | [Cloud ゲートウェイ](/docs/ja/claude-apps-gateway)がこのサインインを終了しました |1900| `gateway_signin_required` | [Cloud ゲートウェイ](/docs/ja/claude-apps-gateway)がこのサインインを終了させた |
1891| `gateway_access_denied` | Cloud ゲートウェイへの管理設定リクエストが 403 を返しました。これについてはゲートウェイの[トラブルシューティング表](/docs/ja/claude-apps-gateway-deploy#troubleshooting)で説明しています |1901| `gateway_access_denied` | Cloud ゲートウェイへの管理設定リクエストが 403 を返した。ゲートウェイの[トラブルシューティング表](/docs/ja/claude-apps-gateway-deploy#troubleshooting)で扱われています |
1892| `proxy_invalid` | プロキシ設定が完全な URL ではありません |1902| `proxy_invalid` | プロキシ設定が完全な URL ではない |
1893| `temp_dir_unusable` | ユーザーごとの一時ディレクトリが安全でないか、作成できませんでした |1903| `temp_dir_unusable` | ユーザーごとの一時ディレクトリが安全でないか、作成できなかった |
1894| `cwd_unavailable` | 作業ディレクトリが削除または移動されたか、読み取れません |1904| `cwd_unavailable` | 作業ディレクトリが削除または移動されたか、読み取れない |
1895| `shell_tool_missing` | Windows でシェルツールが利用できません。Git Bash がなく、PowerShell もないか `CLAUDE_CODE_USE_POWERSHELL_TOOL` でオフになっています |1905| `shell_tool_missing` | Windows で、利用可能なシェルツールがない。Git Bash がなく、PowerShell もないか `CLAUDE_CODE_USE_POWERSHELL_TOOL` でオフにされている |
1896| `session_held_by_background` | 再開または続行しようとしている会話が[バックグラウンドセッション](/docs/ja/agent-view)として実行中です |1906| `session_held_by_background` | 再開または継続しようとした会話が[バックグラウンドセッション](/docs/ja/agent-view)として実行中である |
1897| `worktree_resume_refused` | セッションの worktree が安全性チェックに失敗したか、再開が worktree の内部から起動されました。同じ再開をもう一度実行すると worktree なしで続行されるかどうかは `errors` に記載されます |1907| `worktree_resume_refused` | セッションの worktree が安全性チェックに失敗したか、再開がその内部から起動された。同じ再開をもう一度実行すると worktree なしで続行されるかどうかは `errors` に記載されます |
1898| `worktree_unverified` | セッションの worktree を現時点で検証できませんでした。再試行すると成功する可能性があります |1908| `worktree_unverified` | セッションの worktree を現時点で検証できなかった。再試行すると成功する可能性があります |
1899| `cli_version_too_old` | この Claude Code のバージョンが、Anthropic が要求する最小バージョンを下回っています |1909| `cli_version_too_old` | この Claude Code のバージョンが、Anthropic が要求する最小バージョンを下回っている |
1900| `bypass_root` | root として実行中に、権限バイパスモードが要求されました |1910| `bypass_root` | root として実行中に Bypass permissions モードが要求された |
1901 1911
1902<h3 id="sdksystemmessage">1912<h3 id="sdksystemmessage">
1903 `SDKSystemMessage`1913 `SDKSystemMessage`
1942};1952};
1943```1953```
1944 1954
1945`fast_mode_state` は、セッションの [fast mode](/docs/ja/fast-mode) の状態を報告します。fast mode を妨げるものがある場合、`fast_mode_disabled_reason` がそれを妨げたチェックを示します。このフィールドには Claude Code v2.1.219 以降が必要です。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。1955`fast_mode_state` はセッションの [fast mode](/docs/ja/fast-mode) の状態を報告します。fast mode を妨げるものがある場合、`fast_mode_disabled_reason` がそれを妨げたチェックを示します。このフィールドには Claude Code v2.1.219 以降が必要です。理由コードとその意味については、結果メッセージの [`fast_mode_disabled_reason`](#sdkresultmessage) を参照してください。
1946 1956
1947`terminal_slash_commands` は、`slash_commands` のエントリのうち、`exit` のようにインターフェースがローカルのターミナルに結び付いているものを示します。これらは `slash_commands` の他のエントリと同様に送信できます。このフィールドは、リモートクライアントやモバイルクライアントがコマンドメニューからこれらを非表示にできるようにするためのものです。このフィールドは空でない場合にのみ存在し、Agent SDK v0.3.229 以降が必要です。1957`terminal_slash_commands` は、`slash_commands` のエントリのうち、`exit` など、インターフェースがローカルターミナルに結び付いているものを示します。これらは `slash_commands` の他のエントリと同様に送信できます。このフィールドは、リモートクライアントやモバイルクライアントがコマンドメニューからそれらを非表示にできるようにするために存在します。このフィールドは空でない場合にのみ存在し、Agent SDK v0.3.229 以降が必要です。
1948 1958
1949* 各 `mcp_servers` エントリの `source`: サーバーの定義の取得元で、[`McpServerStatus`](#mcpserverstatus) の `source` と同じ値を取ります。Agent SDK v0.3.274 以降が必要です。1959* 各 `mcp_servers` エントリの `source`: サーバーの定義の取得元で、[`McpServerStatus`](#mcpserverstatus) の `source` と同じ値を取ります。Agent SDK v0.3.274 以降が必要です。
1950* `effort`: Claude Code がセッションの次のリクエストで送信する [effort レベル](/docs/ja/model-config#adjust-effort-level)で、何も送信しない場合は `null` です。Claude Code はこのフィールドを [Remote Control](/docs/ja/remote-control) クライアントに送信する init メッセージにのみ設定し、アプリケーションが読み取る init メッセージからは省略します。Agent SDK v0.3.234 以降が必要です。1960* `effort`: Claude Code がセッションの次のリクエストで送信する [effort レベル](/docs/ja/model-config#adjust-effort-level)、または送信しない場合は `null`。Claude Code はこのフィールドを [Remote Control](/docs/ja/remote-control) クライアントに送信する init メッセージにのみ設定し、アプリケーションが読み取る init メッセージからは省略します。Agent SDK v0.3.234 以降が必要です。
1951 1961
1952`capabilities` 配列は、この CLI が実装しているプロトコルの動作を示します。これにより、`claude_code_version` の文字列を比較する代わりに機能検出を行えます。これは開いた集合です。認識できない値は無視し、依存している動作に対応する特定の capability があるかを確認してください。このフィールドには Claude Code v2.1.205 以降が必要で、それ以前の CLI には存在しません。1962`capabilities` 配列は、この CLI が実装しているプロトコルの動作を示すため、`claude_code_version` の文字列を比較する代わりに機能検出を行えます。これはオープンな集合です。認識できない値は無視し、依存する動作に対応する特定の capability があるかを確認してください。このフィールドには Claude Code v2.1.205 以降が必要で、それより前の CLI には存在しません。
1953 1963
1954| Capability | 意味 |1964| Capability | 意味 |
1955| - | - |1965| - | - |
1956| `interrupt_receipt_v1` | [`interrupt()`](#query-object) が、割り込みの到着時に保留中だったメッセージを列挙する [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) レシートで解決されます |1966| `interrupt_receipt_v1` | [`interrupt()`](#query-object) が、中断が届いた時点で保留中だったメッセージを列挙する [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) の受領書で解決される |
1957| `interrupt_cancel_queued_v1` | `interrupt` 制御リクエストが `cancel_queued: true` を受け付け、レシートで本来 `still_queued` に列挙されるメッセージをキャンセルし、代わりに `cancelled` に列挙します。[`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) を参照してください。Claude Code v2.1.219 以降が必要です |1967| `interrupt_cancel_queued_v1` | `interrupt` コントロールリクエストが `cancel_queued: true` に従い、受領書で本来 `still_queued` に列挙されるメッセージをキャンセルして、代わりに `cancelled` に列挙する。[`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) を参照してください。Claude Code v2.1.219 以降が必要です |
1968| `sdk_mcp_manifests` | `initialize` コントロールリクエストが、インプロセスの [SDK MCP サーバー](/docs/ja/agent-sdk/custom-tools)から取得した MCP ハンドシェイク結果である `sdkMcpServerManifests` を受け付ける。Claude Code は v2.1.286 以降でこの capability を通知します |
1969| `sdk_mcp_tools_list_changed` | [SDK MCP サーバー](/docs/ja/agent-sdk/custom-tools)からの `tools/list_changed` 通知により、Claude Code がそのサーバーのツールを再度一覧取得するため、サーバーがセッション途中で追加したツールが Claude に届く。Claude Code は v2.1.286 以降でこの capability を通知します |
1958 1970
1959`plugin_errors` 配列は、プラグインの読み込み失敗を列挙します。各エントリは、読み込まれずに `plugins` に含まれないプラグイン、またはフックファイルなど一部の構成要素を欠いたまま読み込まれたプラグインのいずれかを表します。何も失敗しなかった場合、このキーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言します。1971`plugin_errors` 配列は、プラグインの読み込み失敗を列挙します。エントリは、読み込まれず `plugins` に含まれていないプラグイン、またはフックファイルなどの一部が欠けた状態で読み込まれたプラグインのいずれかを表します。何も失敗しなかった場合、このキーは省略されます。`SDKSystemMessage` は Agent SDK v0.3.283 以降で `plugin_errors` を宣言しています。
1960 1972
1961[`plugins` オプション](#options)で指定したディレクトリまたはアーカイブ自体の読み込みに失敗した場合、エントリの `plugin` フィールドにはプラグイン名の代わりに `inline[0]` のような位置タグが入ります。これは、たとえばパスが存在しない場合やマニフェストが無効な場合に発生します。そのようなエントリは、`path` フィールドでオプションと照合してください。1973[`plugins` オプション](#options)で指定したディレクトリまたはアーカイブ自体の読み込みに失敗した場合、エントリの `plugin` フィールドにはプラグイン名の代わりに `inline[0]` などの位置を示すタグが入ります。これは、たとえばパスが存在しない場合やマニフェストが無効な場合に発生します。そのようなエントリは、`path` フィールドを使ってオプションと対応付けてください。
1962 1974
1963次の表は、各 `plugin_errors` エントリのフィールドを示しています。1975次の表は、各 `plugin_errors` エントリのフィールドを示しています。
1964 1976
1965| フィールド | 型 | 説明 |1977| フィールド | 型 | 説明 |
1966| - | - | - |1978| - | - | - |
1967| `plugin` | `string` | 失敗したプラグインの ID。プラグインのディレクトリまたはアーカイブ自体の読み込みに失敗した場合は `inline[0]` のような位置タグ |1979| `plugin` | `string` | 失敗したプラグインの ID。プラグインのディレクトリまたはアーカイブ自体の読み込みに失敗した場合は、`inline[0]` などの位置を示すタグ |
1968| `type` | `string` | `path-not-found` や `manifest-validation-error` など、開いた集合からのエラーカテゴリ。認識できない値は一般的な失敗として扱ってください |1980| `type` | `string` | `path-not-found` や `manifest-validation-error` など、オープンな集合からのエラーカテゴリ。認識できない値は一般的な失敗として扱ってください |
1969| `message` | `string` | 失敗を説明する表示用テキスト |1981| `message` | `string` | 失敗を説明する表示用テキスト |
1970| `path` | `string` | プラグインのディレクトリまたはアーカイブ自体の読み込みに失敗した場合にのみ存在します。その絶対パスで、`plugins` オプションの相対パスは [`cwd`](#options) オプションを基準に解決されます |1982| `path` | `string` | プラグインのディレクトリまたはアーカイブ自体の読み込みに失敗した場合にのみ存在します。その絶対パスで、`plugins` オプションの相対パスは [`cwd`](#options) オプションを基準に解決されます |
1971 1983
1973 `SDKPartialAssistantMessage`1985 `SDKPartialAssistantMessage`
1974</h3>1986</h3>
1975 1987
1976ストリーミングの部分メッセージです(`includePartialMessages` が true の場合のみ)。`parent_tool_use_id` フィールドは常に `null` です。ストリームイベントはメインセッションに対してのみ出力されます。サブエージェントへの帰属を判定するには、`parent_tool_use_id` を含む完全なメッセージを使用するか、[`forwardSubagentText`](#options) を有効にしてサブエージェントのテキストと思考を完全なメッセージとして受け取ってください。1988ストリーミングの部分メッセージです(`includePartialMessages` が true の場合のみ)。`parent_tool_use_id` フィールドは常に `null` です。ストリームイベントはメインセッションに対してのみ出力されます。サブエージェントへの帰属を判定するには、`parent_tool_use_id` を持つ完全なメッセージを使用するか、[`forwardSubagentText`](#options) を有効にしてサブエージェントのテキストと思考を完全なメッセージとして受け取ってください。
1977 1989
1978```typescript theme={null}1990```typescript theme={null}
1979type SDKPartialAssistantMessage = {1991type SDKPartialAssistantMessage = {
1989};2001};
1990```2002```
1991 2003
1992Claude Code は、[`user_message_uuid`](#user_message_uuid) に記載の条件のもとで、ターンの ping 以外の最初のストリームイベントと、ターンが応答しているメッセージが変わったときに、`user_message_uuid` と `user_message_uuids` を設定します。再起動によって中断されたターンを Claude Code が再実行する場合、これらのフィールドを持つ再実行時のストリームイベントには [`resume_reason`](#resume_reason) も付与されます。2004Claude Code は、[`user_message_uuid`](#user_message_uuid) に記載された条件のもとで、ターンの最初の ping 以外のストリームイベントに、およびターンが応答しているメッセージが変わったときに再度、`user_message_uuid` と `user_message_uuids` を設定します。再起動によって中断されたターンを Claude Code が再実行する場合、再実行でこれらのフィールドを持つストリームイベントには [`resume_reason`](#resume_reason) も含まれます。
1993 2005
1994<h3 id="sdkcompactboundarymessage">2006<h3 id="sdkcompactboundarymessage">
1995 `SDKCompactBoundaryMessage`2007 `SDKCompactBoundaryMessage`
2014 `SDKInformationalMessage`2026 `SDKInformationalMessage`
2015</h3>2027</h3>
2016 2028
2017ループが出力する汎用のテキストバナーです。Claude Code が発行する警告、通知、その他のエラー以外のステータス行と、`UserPromptSubmit` フックのブロック理由などのフックのフィードバックを伝えます。2029ループが出力する汎用のテキストバナーです。Claude Code が発する警告、通知、その他のエラー以外のステータス行、および `UserPromptSubmit` フックのブロック理由などのフックのフィードバックを伝えます。
2018 2030
2019Claude Code v2.1.227 以降では、フックの [`systemMessage`](/docs/ja/hooks#json-output) がこのメッセージとして届くことがあり、各行の先頭に `PostToolUse:Bash says:` のようにフックの名前が付きます。出力がどのように表示されるかは、フックのページの各[イベントのセクション](/docs/ja/hooks#hook-events)に記載されています。2031Claude Code v2.1.227 以降では、フックの [`systemMessage`](/docs/ja/hooks#json-output) がこのメッセージとして届くことがあり、各行には `PostToolUse:Bash says:` のようにフックの名前が前置されます。出力がどのように表示されるかは、フックのページの各[イベントのセクション](/docs/ja/hooks#hook-events)に記載されています。
2020 2032
2021`content` は、指定された `level` でプレーンテキストとして描画してください。2033`content` は、指定された `level` でプレーンテキストとして表示してください。
2022 2034
2023```typescript theme={null}2035```typescript theme={null}
2024type SDKInformationalMessage = {2036type SDKInformationalMessage = {
2037 `SDKWorkerShuttingDownMessage`2049 `SDKWorkerShuttingDownMessage`
2038</h3>2050</h3>
2039 2051
2040ワーカーの正常な終了処理時に出力され、リモートクライアントがハートビートのタイムアウトを待たずにワーカーが終了した理由を表示できるようにします。`reason` はホスト CLI が設定する短い snake\_case の文字列で、`"host_exit"` や `"remote_control_disabled"` などです。これに対応するのはライブでストリーミングしている場合のみにしてください。再開されたセッションでは過去のこのメッセージが再生されるため、その場合は無視してください。2052ワーカーの正常な終了処理時に出力され、リモートクライアントがハートビートのタイムアウトを待たずにワーカーが終了した理由を表示できるようにします。`reason` はホスト CLI が設定する短い snake\_case の文字列で、`"host_exit"` や `"remote_control_disabled"` などです。ライブでストリーミングしている場合にのみこれに対応してください。再開されたセッションではこのメッセージの過去のインスタンスが再生されるため、その場合は無視してください。
2041 2053
2042```typescript theme={null}2054```typescript theme={null}
2043type SDKWorkerShuttingDownMessage = {2055type SDKWorkerShuttingDownMessage = {
2053 `SDKPluginInstallMessage`2065 `SDKPluginInstallMessage`
2054</h3>2066</h3>
2055 2067
2056プラグインのインストールの進行状況イベントです。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合に出力され、Agent SDK アプリケーションが最初のターンの前にマーケットプレイスのプラグインのインストールを追跡できるようにします。`started` と `completed` のステータスはインストール全体の開始と終了を示します。`installed` と `failed` のステータスは個々のマーケットプレイスについて報告し、`name` を含みます。2068プラグインのインストール進行状況イベントです。[`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/ja/env-vars) が設定されている場合に出力され、Agent SDK アプリケーションが最初のターンの前にマーケットプレイスのプラグインのインストールを追跡できるようにします。`started` と `completed` のステータスはインストール全体の開始と終了を示します。`installed` と `failed` のステータスは個々のマーケットプレイスについて報告し、`name` を含みます。
2057 2069
2058```typescript theme={null}2070```typescript theme={null}
2059type SDKPluginInstallMessage = {2071type SDKPluginInstallMessage = {
2071 `SDKPermissionDeniedMessage`2083 `SDKPermissionDeniedMessage`
2072</h3>2084</h3>
2073 2085
2074権限システムが対話的なプロンプトなしでツール呼び出しを拒否したときに出力されるストリームイベントです。その後に続く `is_error` のツール結果を観察するだけでなく、拒否が発生した時点で UI に表示するために使用します。どの拒否を報告するかは、実行が権限プロンプトをどのように処理するかによって異なります。2086権限システムが対話的なプロンプトなしでツール呼び出しを拒否したときに出力されるストリームイベントです。後に続く `is_error` のツール結果を観測するだけでなく、拒否が発生した時点で UI に表示するために使用します。どの拒否が報告されるかは、実行が権限プロンプトをどのように扱うかによって異なります。
2075 2087
2076* **[`canUseTool`](#canusetool) コールバックがあり**、デフォルトの [`permissionPrompts: 'host'`](#options) の場合: 権限プロンプトはコールバックに送られ、このイベントは Claude Code がコールバックを呼び出さずに自ら判断した拒否を報告します。2088* **[`canUseTool`](#canusetool) コールバックとデフォルトの [`permissionPrompts: 'host'`](#options) を使用する場合**: 権限プロンプトはコールバックに送られ、このイベントは Claude Code がコールバックを呼び出さずに独自に決定した拒否を報告します。
2077* **どちらもない場合**: 素の `-p` 実行、または `canUseTool` も `permissionPromptToolName` も設定しない `query()` では、[`PermissionRequest` フック](/docs/ja/hooks-guide#limitations)が許可しない限り、プロンプトが表示されるはずだったツール呼び出しはすべて拒否されます。このイベントは、それらの拒否に加えて Claude Code が自ら判断した拒否も報告します。v2.1.223 より前は、コールバックのない実行では Claude Code はこのイベントを出力しませんでした。2089* **どちらも使用しない場合**: 素の `-p` 実行、または `canUseTool` も `permissionPromptToolName` も設定しない `query()` では、[`PermissionRequest` フック](/docs/ja/hooks-guide#limitations)が許可しない限り、プロンプトを表示するはずだったツール呼び出しは拒否され、このイベントはそれらの拒否と、Claude Code が独自に決定した拒否を報告します。v2.1.223 より前は、コールバックのない実行では Claude Code はこのイベントを出力しませんでした。
2078* **`permissionPromptToolName` または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) フラグで設定した MCP プロンプトツールがあり**、デフォルトの `permissionPrompts: 'host'` の場合: Claude Code はこのイベントをまったく出力しません。自ら判断したルールによる拒否についても同様です。2090* **`permissionPromptToolName` または [`--permission-prompt-tool`](/docs/ja/cli-reference#cli-flags) フラグで設定した MCP プロンプトツールと、デフォルトの `permissionPrompts: 'host'` を使用する場合**: Claude Code はこのイベントをまったく出力せず、独自に決定したルールによる拒否についても出力しません。
2079* **[`permissionPrompts: 'none'`](#options) の場合**: `canUseTool` または MCP プロンプトツールも設定されていても、Claude Code はプロンプトが表示されるはずだった呼び出しを拒否し、このイベントはそれらの拒否に加えて Claude Code が自ら判断した拒否も報告します。Claude Code v2.1.259 以降が必要です。2091* **[`permissionPrompts: 'none'`](#options) を使用する場合**: `canUseTool` や MCP プロンプトツールも設定されている場合でも、Claude Code はプロンプトを表示するはずだった呼び出しを拒否し、このイベントはそれらの拒否と、Claude Code が独自に決定した拒否を報告します。Claude Code v2.1.259 以降が必要です。
2080 2092
2081どの構成でも、このイベントは `PreToolUse` フックの経路で判断された拒否をスキップします。フック自体が呼び出しを拒否した場合も、拒否ルールがフックの allow または ask の判断を上書きした場合も同様です。また、このイベントはベストエフォートです。Claude Code がこのイベントを出力せずに拒否を記録することがまれにあるため、[結果メッセージ](#sdkresultmessage)の `permission_denials` が正式な記録です。2093どの構成でも、このイベントは `PreToolUse` フックのパスで決定された拒否をスキップします。これは、フック自身が呼び出しを拒否した場合も、拒否ルールがフックの allow または ask の決定を上書きした場合も同様です。また、このイベントはベストエフォートです。Claude Code がこのイベントを出力せずに拒否を記録することがまれにあるため、[結果メッセージ](#sdkresultmessage)の `permission_denials` が正式な記録となります。
2082 2094
2083```typescript theme={null}2095```typescript theme={null}
2084type SDKPermissionDeniedMessage = {2096type SDKPermissionDeniedMessage = {
2099| - | - | - |2111| - | - | - |
2100| `tool_name` | `string` | 拒否されたツールの名前 |2112| `tool_name` | `string` | 拒否されたツールの名前 |
2101| `tool_use_id` | `string` | この拒否が応答する `tool_use` ブロックの ID |2113| `tool_use_id` | `string` | この拒否が応答する `tool_use` ブロックの ID |
2102| `agent_id` | `string` | 拒否された呼び出しがサブエージェント内で発生した場合のサブエージェント ID。ホスト側でのルーティングのために `can_use_tool` のフィールドと対応しています |2114| `agent_id` | `string` | 拒否された呼び出しがサブエージェント内で発生した場合のサブエージェント ID。ホスト側のルーティング用に、`can_use_tool` のフィールドと同じ値になります |
2103| `decision_reason_type` | `string` | 判断したコンポーネントの識別子で、`"rule"`、`"mode"`、`"classifier"`、`"asyncAgent"` など |2115| `decision_reason_type` | `string` | 決定を下したコンポーネントの識別子で、`"rule"`、`"mode"`、`"classifier"`、`"asyncAgent"` など |
2104| `decision_reason` | `string` | 判断したコンポーネントからの人間が読める理由(利用可能な場合) |2116| `decision_reason` | `string` | 決定を下したコンポーネントからの人間が読める理由(利用可能な場合) |
2105| `message` | `string` | `tool_result` でモデルに返される拒否メッセージ |2117| `message` | `string` | `tool_result` でモデルに返される拒否メッセージ |
2106 2118
2107<h3 id="sdkpermissiondenial">2119<h3 id="sdkpermissiondenial">
2122 `SDKContextUsage`2134 `SDKContextUsage`
2123</h3>2135</h3>
2124 2136
2125`/context` レポートの構造化された形式で、`/context` の結果を配信する [`SDKAssistantMessage`](#sdkassistantmessage) に `context_usage` として含まれます。Agent SDK v0.3.232 以降でこの型がエクスポートされます。[`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) とは異なり、使用状況の内訳を描画するのに必要なデータのみを含み、`color` や `gridRows` などの表示用フィールドは含みません。Claude Code は、メッセージストリームに表示されないトークンカウントの API リクエストを使ってレポートを計算します。[これらのリクエストの扱い](#sdkcontrolgetcontextusageresponse)を参照してください。2137`/context` レポートの構造化された形式で、`/context` の結果を届ける [`SDKAssistantMessage`](#sdkassistantmessage) に `context_usage` として含まれます。Agent SDK v0.3.232 以降がこの型をエクスポートします。[`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) とは異なり、使用量の内訳を表示するために必要なデータのみを含み、`color` や `gridRows` などの表示用フィールドは含みません。Claude Code は、メッセージストリームに現れないトークンカウントの API リクエストを使ってレポートを算出します。[これらのリクエストの扱い](#sdkcontrolgetcontextusageresponse)を参照してください。
2126 2138
2127```typescript theme={null}2139```typescript theme={null}
2128type SDKContextUsage = {2140type SDKContextUsage = {
2159};2171};
2160```2172```
2161 2173
2162次の表は、Claude Code が各フィールドに設定する内容を示しています。`model` から `over_limit` までのフィールドはセッション全体を表し、コレクションのフィールドはトークンを個々の項目に割り当てます。2174次の表は、Claude Code が各フィールドに設定する内容を示しています。`model` から `over_limit` までのフィールドはセッション全体を表し、コレクションフィールドは個々の項目にトークンを割り当てます。
2163 2175
2164| フィールド | 型 | 説明 |2176| フィールド | 型 | 説明 |
2165| - | - | - |2177| - | - | - |
2166| `model` | `string` | Claude Code が使用状況を計算したメインループのモデル。サブエージェントのモデルではありません |2178| `model` | `string` | Claude Code が使用量を算出したメインループのモデル。サブエージェントのモデルではありません |
2167| `total_tokens` | `number` | 使用中のトークンに関する Claude Code の推定値。ウィンドウの範囲に制限されないため、セッションが上限を超えている場合は `raw_max_tokens` を超えることがあります |2179| `total_tokens` | `number` | 使用中のトークンに関する Claude Code の推定値。ウィンドウに制限されないため、セッションが上限を超えている場合は `raw_max_tokens` を超えることがあります |
2168| `raw_max_tokens` | `number` | モデルのコンテキストウィンドウ、またはより小さい[自動圧縮ウィンドウ](/docs/ja/model-config#context-window-and-auto-compaction)が適用される場合はそのウィンドウ。後者には、ユーザーが設定したものや、1M トークンのウィンドウを持つ一部のモデルに Claude Code が適用する 200K の境界などがあります。Claude Code は `total_tokens` をこのウィンドウに対して測定します |2180| `raw_max_tokens` | `number` | モデルのコンテキストウィンドウ、または適用される場合はそれより小さい[自動圧縮ウィンドウ](/docs/ja/model-config#context-window-and-auto-compaction)。後者には、自分で設定したものや、1M トークンのウィンドウを持つ一部のモデルに Claude Code が適用する 200K の境界などがあります。Claude Code は `total_tokens` をこのウィンドウに対して測定します |
2169| `percentage` | `number` | `raw_max_tokens` に対する `total_tokens` の割合を丸めた値。セッションが上限を超えている場合は 100 を超えることがあります |2181| `percentage` | `number` | `raw_max_tokens` に対する `total_tokens` の割合を丸めたパーセンテージ。セッションが上限を超えている場合は 100 を超えることがあります |
2170| `over_limit` | `object` | `total_tokens` が `raw_max_tokens` を超えている場合にのみ存在します。`tokens_over` は超過量で、`kind` は Claude Code がウィンドウをどのように決定したかを示します |2182| `over_limit` | `object` | `total_tokens` が `raw_max_tokens` を超えた場合にのみ存在します。`tokens_over` は超過量で、`kind` は Claude Code がウィンドウをどのように決定したかを示します |
2171| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | カテゴリ別の使用状況の内訳の各行に 1 エントリ |2183| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | カテゴリ別使用量の内訳の各行に対応するエントリ |
2172| `mcp_tools` | `object[]` | 各 MCP ツールに割り当てられたトークン。`mcp__linear__create_issue` のようなワイヤ名と `server_name` を含みます |2184| `mcp_tools` | `object[]` | 各 MCP ツールに割り当てられたトークン。`mcp__linear__create_issue` などのワイヤー名と `server_name` を含みます |
2173| `memory_files` | `object[]` | 読み込まれた各メモリファイルに割り当てられたトークン。`path` と、`type` に `Project` や `User` などのソースラベルを含みます |2185| `memory_files` | `object[]` | 読み込まれた各メモリファイルに割り当てられたトークン。`path` と、`type` 内の `Project` や `User` などのソースラベルを含みます |
2174| `agents` | `object[]` | 各カスタムサブエージェント定義に割り当てられたトークン。`projectSettings`、`userSettings`、`plugin` などのソース識別子を含みます。組み込みのサブエージェントは列挙されません |2186| `agents` | `object[]` | 各カスタムサブエージェント定義に割り当てられたトークン。`projectSettings`、`userSettings`、`plugin` などのソース識別子を含みます。組み込みのサブエージェントは列挙されません |
2175| `skills` | `object[]` | スキル一覧の各スキルに割り当てられたトークン。ソース識別子と、プラグインのスキルの場合は `plugin_name` にプラグインの名前を含みます。トークンを消費するスキルがない場合は存在しません |2187| `skills` | `object[]` | スキル一覧内の各スキルに割り当てられたトークン。ソース識別子と、プラグインのスキルの場合は `plugin_name` にプラグイン名を含みます。トークンに寄与するスキルがない場合は存在しません |
2176 2188
2177`over_limit.kind` は、API が次のリクエストを受け付けるかどうかではなく、Claude Code がウィンドウをどのように決定したかを記録します。2189`over_limit.kind` は、API が次のリクエストを受け付けるかどうかではなく、Claude Code がウィンドウをどのように決定したかを記録します。
2178 2190
2179* `hard_limit`: ウィンドウは、Claude Code がモデル自体の上限と認識しているもので、それを超えると API はリクエストを拒否します2191* `hard_limit`: ウィンドウは、Claude Code がモデル自体の上限だと考えているもので、それを超えると API がリクエストを拒否します
2180* `compaction_window`: ウィンドウはコンテキスト圧縮ポリシーのウィンドウで、モデルの上限と一致する場合も一致しない場合もあります2192* `compaction_window`: ウィンドウはコンテキスト圧縮ポリシーのウィンドウで、モデルの上限と一致する場合もしない場合もあります
2181 2193
2182Claude Code はこの型を追加的に進化させ、既存のフィールドの形を変えるのではなく、新しいデータをオプションのフィールドとして追加します。既知のフィールドを読み取り、認識できないフィールドは無視してください。2194Claude Code はこの型を追加的に拡張し、既存のフィールドの形を変えるのではなく、新しいデータをオプションのフィールドとして追加します。知っているフィールドを読み取り、認識できないフィールドは無視してください。
2183 2195
2184<h3 id="sdkcontextusagecategory">2196<h3 id="sdkcontextusagecategory">
2185 `SDKContextUsageCategory`2197 `SDKContextUsageCategory`
2186</h3>2198</h3>
2187 2199
2188`/context` のカテゴリ別使用状況の内訳の 1 行です。2200`/context` のカテゴリ別使用量の内訳の 1 行です。
2189 2201
2190```typescript theme={null}2202```typescript theme={null}
2191type SDKContextUsageCategory = {2203type SDKContextUsageCategory = {
2199 2211
2200| フィールド | 型 | 説明 |2212| フィールド | 型 | 説明 |
2201| - | - | - |2213| - | - | - |
2202| `name` | `string` | `Messages` など、`/context` が出力する行の表示名。行の分類には名前ではなく `kind` を使用してください |2214| `name` | `string` | `/context` が表示する行の表示名で、`Messages` など。行は名前ではなく `kind` で分類してください |
2203| `tokens` | `number` | 行のトークン数。行のトークン数がゼロの場合もあります |2215| `tokens` | `number` | 行のトークン数。行のトークン数がゼロの場合もあります |
2204| `kind` | `string` | 行が表すもの: `used`、`free`、`buffer`、`deferred` |2216| `kind` | `string` | 行が表すもの。`used`、`free`、`buffer`、`deferred` のいずれか |
2205 2217
2206各 `kind` 値は、行のトークンが何であるかを示します。2218各 `kind` の値は、その行のトークンが何であるかを示します。
2207 2219
2208* `used`: コンテキストウィンドウを占有するコンテンツ2220* `used`: コンテキストウィンドウを占有しているコンテンツ
2209* `free`: ウィンドウの残り2221* `free`: ウィンドウの残り
2210* `buffer`: コンテキスト圧縮のための予約領域2222* `buffer`: コンテキスト圧縮用の予約領域
2211* `deferred`: Claude Code がウィンドウの外に保持し、使用量の計算から除外しているツールスキーマ。参考として列挙されます2223* `deferred`: Claude Code がウィンドウの外に保持し、使用量の計算から除外しているツールスキーマ。参考のために列挙されます
2212 2224
2213<h3 id="sdkmessageorigin">2225<h3 id="sdkmessageorigin">
2214 `SDKMessageOrigin`2226 `SDKMessageOrigin`
2215</h3>2227</h3>
2216 2228
2217ユーザーロールのメッセージの由来です。これは [`SDKUserMessage`](#sdkusermessage) に `origin` として含まれ、対応する [`SDKResultMessage`](#sdkresultmessage) に引き継がれるため、特定のターンが何によってトリガーされたかを判別できます。2229ユーザーロールのメッセージの出所です。[`SDKUserMessage`](#sdkusermessage) に `origin` として含まれ、対応する [`SDKResultMessage`](#sdkresultmessage) に転送されるため、特定のターンが何によってトリガーされたかを判別できます。
2218 2230
2219```typescript theme={null}2231```typescript theme={null}
2220type SDKMessageOrigin =2232type SDKMessageOrigin =
2242 2254
2243| `kind` | 意味 |2255| `kind` | 意味 |
2244| - | - |2256| - | - |
2245| `human` | エンドユーザーからの直接入力。アプリケーションがユーザーの入力内容をユーザーメッセージとして転送する場合は、その `origin` を明示的に `{ kind: "human" }` に設定してください。Claude Code は `origin` のないユーザーメッセージを帰属不明として扱い、[`ultracode` ワークフローキーワード](/docs/ja/workflows#ask-for-a-workflow-in-your-prompt)など、人間が入力したプロンプトを必要とするチェックはそれを受け付けません。v2.1.210 より前は、Claude Code はユーザーメッセージに `origin` がない場合に人間の入力として扱っていました。 |2257| `human` | エンドユーザーからの直接入力。アプリケーションがユーザーの入力をユーザーメッセージとして転送する場合は、その `origin` を明示的に `{ kind: "human" }` に設定してください。Claude Code は `origin` のないユーザーメッセージを出所不明として扱い、[`ultracode` ワークフローキーワード](/docs/ja/workflows#ask-for-a-workflow-in-your-prompt)など、人間が入力したプロンプトを必要とするチェックはそれを受け付けません。v2.1.210 より前は、Claude Code はユーザーメッセージに `origin` がない場合を人間の入力として扱っていました。 |
2246| `channel` | [チャネル](/docs/ja/channels)に届いたメッセージ。`server` はソースの MCP サーバー名です。 |2258| `channel` | [チャネル](/docs/ja/channels)で届いたメッセージ。`server` はソースの MCP サーバー名です。 |
2247| `peer` | 別のエージェントからのメッセージ。インプロセスの[チームメイト](/docs/ja/agent-teams)、または[クロスセッションのピア](/docs/ja/cross-session-messaging)(別の Claude Code セッション)です。フィールドごとのセマンティクスと信頼モデルについては [Peer origin のフィールド](#peer-origin-fields)を参照してください。 |2259| `peer` | 別のエージェントからのメッセージ。インプロセスの[チームメイト](/docs/ja/agent-teams)、または別の Claude Code セッションである[セッション間ピア](/docs/ja/cross-session-messaging)です。フィールドごとの意味と信頼モデルについては [Peer origin fields](#peer-origin-fields) を参照してください。 |
2248| `task-notification` | 完了したバックグラウンドタスクなど、新しいユーザープロンプトなしで届く配信のために挿入される合成ターン。その側については [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) を参照してください。アプリケーションが[スケジュール実行として宣言](#declare-a-scheduled-run)したプロンプトもこの kind を持ちます。オプションの `subkind` は、通知を発生させたものを示します。[Task-notification のサブ種別](#task-notification-subkinds)を参照してください。 |2260| `task-notification` | 完了したバックグラウンドタスクなど、新しいユーザープロンプトなしで届く配信のために注入された合成ターン。そのアームについては [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) を参照してください。アプリケーションが[スケジュール実行として宣言した](#declare-a-scheduled-run)プロンプトもこの kind を持ちます。オプションの `subkind` は、通知を発生させたものを示します。[Task-notification subkinds](#task-notification-subkinds) を参照してください。 |
2249| `coordinator` | [エージェントチーム](/docs/ja/agent-teams)のチームコーディネーターからのメッセージ。 |2261| `coordinator` | [エージェントチーム](/docs/ja/agent-teams)のチームコーディネーターからのメッセージ。 |
2250| `auto-continuation` | 後続のプロンプトをトリガーするコマンド結果など、新しいユーザー入力なしでセッションが続行するときに挿入される合成ターン。 |2262| `auto-continuation` | コマンドの結果がフォローアッププロンプトをトリガーする場合など、新しいユーザー入力なしでセッションが継続するときに注入される合成ターン。 |
2251| `unclassified` | 由来を特定できなかった挿入ターン。Claude Code v2.1.223 以降が必要です。Claude Code が `isSynthetic: true` 付きの [`SDKUserMessage`](#sdkusermessage) を受け取り、他のどの `kind` にも分類できない場合、メッセージの到着時にこの kind を設定し、人間の入力として扱うのではなく、ユーザー以外のソースとしてモデルにターンを提示します。アプリケーションはこの値を設定しないでください。 |2263| `unclassified` | 出所を判定できなかった注入ターン。Claude Code v2.1.223 以降が必要です。Claude Code が `isSynthetic: true` を持つ [`SDKUserMessage`](#sdkusermessage) を受け取り、それを他のどの `kind` にも分類できない場合、メッセージの到着時にこの kind を設定し、人間の入力として扱うのではなく、ユーザー以外のソースとしてターンをモデルに提示します。アプリケーションはこの値を設定しないでください。 |
2252 2264
2253<h3 id="task-notification-subkinds">2265<h3 id="task-notification-subkinds">
2254 Task-notification のサブ種別2266 タスク通知のサブ種別
2255</h3>2267</h3>
2256 2268
2257Claude Code がセッションにタスク通知を配信するとき、Anthropic のサーバーがその通知の送信元を検証済みであれば、通知の `origin` に `subkind` を設定します。また、アプリケーション自身がメッセージを[スケジュール実行として宣言](#declare-a-scheduled-run)した場合にも `subkind` を設定します。これには TypeScript Agent SDK v0.3.280 以降が必要です。`subkind` には Claude Code v2.1.213 以降が必要で、次の 2 つのいずれかの値を取ります。2269Claude Code がタスク通知をセッションに配信する際、Anthropic のサーバーがその通知の出所を検証した場合は、通知の `origin` に `subkind` を設定します。アプリケーション自身がメッセージを[スケジュール実行として宣言した](#declare-a-scheduled-run)場合にも `subkind` を設定し、これには TypeScript Agent SDK v0.3.280 以降が必要です。`subkind` には Claude Code v2.1.213 以降が必要で、次の 2 つの値のいずれかを取ります。
2258 2270
2259* `scheduled-trigger`: 通知は[ルーティン](/docs/ja/routines)の保存されたプロンプトで、ルーティンのトリガー(スケジュール、[API トリガー](/docs/ja/routines#add-an-api-trigger)、[GitHub トリガー](/docs/ja/routines#add-a-github-trigger)、または **Run now**)のいずれかが発火したために配信されたものです。アプリケーションが[スケジュール実行として宣言](#declare-a-scheduled-run)したプロンプトもこの値を持ちます。Claude Code はこれらをセッションに割り当てられたタスクとしてモデルに提示し、[他のタスク通知に付く通知文](#sdktasknotificationmessage)とは異なる通知文を付けます。2271* `scheduled-trigger`: 通知は[ルーティン](/docs/ja/routines)に保存されたプロンプトで、ルーティンのトリガー(スケジュール、[API トリガー](/docs/ja/routines#add-an-api-trigger)、[GitHub トリガー](/docs/ja/routines#add-a-github-trigger)、または **Run now**)のいずれかが発火したために配信されたものです。アプリケーションが[スケジュール実行として宣言した](#declare-a-scheduled-run)プロンプトもこの値を持ちます。Claude Code はこれらをセッションに割り当てられたタスクとしてモデルに提示し、[他のタスク通知に付く注記](#sdktasknotificationmessage)とは異なる注記を付けます。
2260* `peer-send-message`: 通知は、別のセッションが、[クラウドセッション](/docs/ja/claude-code-on-the-web)同士がメッセージをやり取りするために使用するサーバー側の `send_message` ツールで送信したメッセージです([クロスセッションの `SendMessage` ツール](/docs/ja/cross-session-messaging)ではありません)。また、Anthropic のサーバーが両方のセッションが同じプライベートなセッショングループに属していることを検証済みです。Claude Code v2.1.224 以降が必要です。サーバーがそのように検証しなかった `send_message` の配信には、サブ種別は付きません。2272* `peer-send-message`: 通知は、[クラウドセッション](/docs/ja/claude-code-on-the-web)同士がメッセージをやり取りするために使用するサーバー側の `send_message` ツールで、別のセッションから送信されたメッセージです([セッション間の `SendMessage` ツール](/docs/ja/cross-session-messaging)ではありません)。Anthropic のサーバーが、両方のセッションが同じプライベートなセッショングループに属していることを検証しています。Claude Code v2.1.224 以降が必要です。サーバーがこの方法で検証しなかった `send_message` の配信には subkind は付きません。
2261 2273
2262その他のタスク通知には `subkind` はありません。これには、セッションに配信される [PR アクティビティ](/docs/ja/claude-code-on-the-web#how-claude-responds-to-pr-activity)や、完了したタスクなどのバックグラウンドイベントが含まれます。[クロスセッションの `SendMessage` ツール](/docs/ja/cross-session-messaging)からのメッセージはタスク通知ではありません。同じマシン上のセッションから来たものでも、別のマシンから Anthropic のサーバーを経由して来たものでも、Claude Code はそれらに `kind: "peer"` と [peer origin のフィールド](#peer-origin-fields)を付与します。2274その他のすべてのタスク通知には `subkind` はありません。これには、セッションに配信される [PR アクティビティ](/docs/ja/claude-code-on-the-web#how-claude-responds-to-pr-activity)や、完了したタスクなどのバックグラウンドイベントが含まれます。[セッション間の `SendMessage` ツール](/docs/ja/cross-session-messaging)からのメッセージはそもそもタスク通知ではありません。同じマシン上のセッションからのものでも、別のマシンから Anthropic のサーバーを経由したものでも、Claude Code はそれらに `kind: "peer"` と[ピアの origin フィールド](#peer-origin-fields)を付与します。
2263 2275
2264`fireReason` は、`scheduled-trigger` の通知が発火した理由を、`scheduled`、`manual`、`retry`、`catch_up`、`api` などの短い小文字のトークンで示します。Anthropic のサーバーは[ルーティン](/docs/ja/routines)の配信にこれを設定し、アプリケーションはスケジュール実行を宣言するときにこれを設定します。どちらも送信しなかった場合は存在しません。TypeScript Agent SDK v0.3.280 以降が必要です。2276`fireReason` は、`scheduled-trigger` 通知が発火した理由を、`scheduled`、`manual`、`retry`、`catch_up`、`api` などの短い小文字のトークンで示します。Anthropic のサーバーは[ルーティン](/docs/ja/routines)の配信にこれを設定し、アプリケーションはスケジュール実行を宣言する際にこれを設定します。どちらも送信しなかった場合は存在しません。TypeScript Agent SDK v0.3.280 以降が必要です。
2265 2277
2266<h4 id="declare-a-scheduled-run">2278<h4 id="declare-a-scheduled-run">
2267 スケジュール実行を宣言する2279 スケジュール実行を宣言する
2268</h4>2280</h4>
2269 2281
2270アプリケーションが独自のスケジュールでプロンプトを実行する場合は、各実行を宣言してください。これにより、Claude Code はそのターンをユーザーからのライブ入力としてではなく、スケジュールタスクとしてモデルに提示します。[`env`](#options) で `CLAUDE_CODE_HOST_SCHEDULED_RUN` を `1` に設定してセッションを開始し、実行の [`SDKUserMessage`](#sdkusermessage) を `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 付きで、`isSynthetic` なしで送信します。その変数なしで開始されたプロセスでは、Claude Code は宣言を無視します。また、環境に [`CLAUDECODE`](/docs/ja/env-vars) または `CLAUDE_CODE_CHILD_SESSION` が含まれるプロセスでも宣言を無視します。Claude Code は、値が 1 〜 32 文字の小文字またはアンダースコアである場合にのみ `fireReason` を保持します。TypeScript Agent SDK v0.3.280 以降が必要です。2282アプリケーションが独自のスケジュールでプロンプトを実行する場合は、各実行を宣言してください。そうすることで、Claude Code はターンをユーザーからのライブ入力ではなくスケジュールタスクとしてモデルに提示します。[`env`](#options) で `CLAUDE_CODE_HOST_SCHEDULED_RUN` を `1` に設定してセッションを開始し、実行の [`SDKUserMessage`](#sdkusermessage) を `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 付きで、`isSynthetic` なしで送信します。Claude Code は、その変数なしで開始されたプロセスでは宣言を無視します。また、環境に [`CLAUDECODE`](/docs/ja/env-vars) または `CLAUDE_CODE_CHILD_SESSION` が含まれるプロセスでも無視します。Claude Code は、値が 1 ~ 32 文字の小文字またはアンダースコアである場合にのみ `fireReason` を保持します。TypeScript Agent SDK v0.3.280 以降が必要です。
2271 2283
2272<h3 id="peer-origin-fields">2284<h3 id="peer-origin-fields">
2273 Peer オリジンのフィールド2285 Peer origin のフィールド
2274</h3>2286</h3>
2275 2287
2276`peer` オリジンは、どのエージェントがメッセージを送信したかを示します。送信元は、`SendMessage` を使って `main` に送信するインプロセスの[チームメイト](/docs/ja/agent-teams)か、ユーザー自身の別の Claude Code セッションである[クロスセッションピア](/docs/ja/cross-session-messaging)のいずれかです。クロスセッションピアを使用するには、macOS および Linux で Claude Code v2.1.224 以降が必要です。ネイティブ Windows の要件については、[クロスセッションメッセージングの利用条件](/docs/ja/cross-session-messaging#availability)を参照してください。クロスセッションピアは同じマシン上で実行できるほか、メッセージが Remote Control 経由で届く場合は、[ユーザーの別のマシン](/docs/ja/cross-session-messaging#message-sessions-on-other-machines)や[クラウド](/docs/ja/claude-code-on-the-web)上でも実行できます。2 種類の送信元では、フィールドの設定のされ方が異なります。2288`peer` origin は、どのエージェントがメッセージを送信したかを識別します。送信元は、`SendMessage` を使って `main` に送信するインプロセスの[チームメイト](/docs/ja/agent-teams)か、ユーザー自身の別の Claude Code セッションである[クロスセッションピア](/docs/ja/cross-session-messaging)のいずれかです。クロスセッションピアには、macOS および Linux で Claude Code v2.1.224 以降が必要です。ネイティブ Windows での要件については、[クロスセッションメッセージングの利用条件](/docs/ja/cross-session-messaging#availability)を参照してください。クロスセッションピアは同じマシン上で実行できるほか、メッセージが Remote Control を介して届く場合は、ユーザーの[別のマシン](/docs/ja/cross-session-messaging#message-sessions-on-other-machines)上や[クラウド](/docs/ja/claude-code-on-the-web)で実行することもできます。2 種類の送信元では、フィールドの設定方法が異なります。
2277 2289
2278* `from`: チームメイトの名前、またはクロスセッションピアの場合は送信元アドレスです。[一方向のクロスマシンメッセージ](/docs/ja/cross-session-messaging#message-sessions-on-other-machines)の場合、送信元には返信先アドレスがなく、`from` は `"unknown"` になります。この値は送信元が記述したものであり、検証済みの ID は `verifiedPeerPid` です。2290* `from`:チームメイトの名前、またはクロスセッションピアの場合は送信元アドレスです。[一方向のクロスマシンメッセージ](/docs/ja/cross-session-messaging#message-sessions-on-other-machines)の場合、送信元には返信先アドレスがなく、`from` は `"unknown"` になります。この値は送信元が作成したものであり、検証済みの ID は `verifiedPeerPid` です。
2279* `fromMode`: 送信元セッションの権限クラス(`bypass` または `prompting`)です。[デスクトップアプリ](/docs/ja/desktop#work-across-sessions)など、ユーザーのセッション間で peer メッセージを中継するホストによって宣言されます。Claude Code は、受信側セッションで[受信メッセージの制御](/docs/ja/cross-session-messaging#control-inbound-messages)を適用する際にこの値を読み取ります。Agent SDK v0.3.234 以降が必要です。2291* `fromMode`:送信元セッションの権限クラス(`bypass` または `prompting`)で、[デスクトップアプリ](/docs/ja/desktop#work-across-sessions)など、ユーザーのセッション間でピアメッセージを中継するホストによって宣言されます。Claude Code は、受信側セッションで[受信メッセージの制御](/docs/ja/cross-session-messaging#control-inbound-messages)を適用する際にこの値を読み取ります。Agent SDK v0.3.234 以降が必要です。
2280* `senderTaskId`: チームメイトのタスク ID です。クロスセッションピアの場合は存在しません。2292* `senderTaskId`:チームメイトのタスク ID です。クロスセッションピアの場合は存在しません。
2281* `name`: Claude Code によって正規化された送信元の表示名です。Unicode の制御文字、書式文字、サロゲート、および行区切りまたは段落区切りのコードポイントを除去したうえで、前後の空白を取り除き、64 コードポイントを上限として省略記号付きで切り詰めます。Claude Code v2.1.205 以降が必要です。2293* `name`:Claude Code によって正規化された送信元の表示名です。Unicode の制御文字、書式文字、サロゲート、および行区切り文字や段落区切り文字のコードポイントを除去したうえで、前後の空白を削除し、64 コードポイントを上限として超過分を省略記号で切り詰めます。Claude Code v2.1.205 以降が必要です。
2282* `body`: peer エンベロープを取り除いてデコードしたメッセージ本文で、モデルが参照する内容とバイト単位で一致します。チームメイトのメッセージでは常に存在します。クロスセッションピアの場合は、ターンが Claude Code によって形成されたちょうど 1 つの peer エンベロープである場合にのみ存在します。メッセージテキストを再解析するのではなく、`name` と `body` を表示してください。Claude Code v2.1.205 以降が必要です。2294* `body`:ピアエンベロープを除去してデコードしたメッセージ本文で、モデルが見る内容とバイト単位で一致します。チームメイトからのメッセージでは常に存在します。クロスセッションピアの場合は、ターンが Claude Code によって形成されたちょうど 1 つのピアエンベロープである場合にのみ存在します。メッセージテキストを再解析するのではなく、`name` と `body` を表示してください。Claude Code v2.1.205 以降が必要です。
2283* `fromSession`: 送信元のホストが開くことのできるセッション ID です。送信元のホストによって設定され、UI から送信元セッションにリンクできるようにします。`from` と同様に送信元が主張する値であるため、ナビゲーション先としてのみ使用し、送信元の身元の証明として扱わないでください。Claude Code v2.1.216 以降が必要です。2295* `fromSession`:ホストで開くことができる送信元のセッション ID で、UI から送信元セッションへリンクできるように送信元のホストによって設定されます。`from` と同様に送信元が主張する値であるため、ナビゲーション先としてのみ使用し、送信元の身元の証明として扱わないでください。Claude Code v2.1.216 以降が必要です。
2284* `verifiedPeerPid`: このセッションのクロスセッションメッセージングソケットに接続したプロセスのプロセス ID です。カーネルによって検証され、ペイロードからではなく接続そのものから読み取られます。送信元の識別には `from` ではなくこの値を使用してください。`from` は同じユーザーのどのプロセスからでも偽装できます。Windows やソケット以外の経路での受信など、Claude Code が検証できない場合、このフィールドは存在しません。したがって、値が存在しない場合は送信元が未検証であることを意味します。中継されたトラフィックの場合はメッセージの作成者ではなく中継元を示し、またプロセス ID は再利用される可能性があるため、認証トークンとしてではなく出所を示す情報として扱ってください。Claude Code v2.1.216 以降が必要です。2296* `verifiedPeerPid`:このセッションのクロスセッションメッセージングソケットに接続したプロセスのプロセス ID です。カーネルによって検証され、ペイロードからではなく常に接続そのものから読み取られます。送信元の識別には `from` ではなくこの値を使用してください。`from` は同じユーザーの任意のプロセスによって偽装される可能性があります。Windows やソケット以外の経路での受信など、Claude Code が検証できない場合はこのフィールドは存在しないため、値が存在しないことは送信元が未検証であることを意味します。中継されたトラフィックの場合、この値はメッセージの作成者ではなく中継元を識別します。また、プロセス ID は再利用される可能性があるため、認証トークンではなく来歴情報として扱ってください。Claude Code v2.1.216 以降が必要です。
2285 2297
2286<h2 id="hook-types">2298<h2 id="hook-types">
2287 フック型2299 フック型