インストール
SDK は、
@anthropic-ai/claude-agent-sdk-darwin-arm64 などのオプション依存関係として、プラットフォーム用のネイティブ Claude Code バイナリをバンドルしています。Claude Code を別途インストールする必要はありません。パッケージマネージャーがオプション依存関係をスキップする場合、SDK は Native CLI binary for <platform> not found をスローします。代わりに、別途インストールされた claude バイナリに pathToClaudeCodeExecutable を設定してください。単一の実行可能ファイルにコンパイルする
bun build --compile を使用してアプリケーションを単一ファイルの実行可能ファイルにコンパイルする場合、SDK は実行時にバンドルされた CLI バイナリを解決できません。require.resolve はコンパイルされた実行可能ファイルの $bunfs 仮想ファイルシステム内では機能しないため、SDK は Native CLI binary for <platform> not found をスローします。
この問題を回避するには、プラットフォームバイナリをファイルアセットとして埋め込み、起動時に extractFromBunfs() を使用して実際のパスに抽出し、そのパスを pathToClaudeCodeExecutable に渡します。
extractFromBunfs() ヘルパーには @anthropic-ai/claude-agent-sdk v0.3.144 以降が必要です。以下の例は macOS on Apple Silicon 向けにビルドします。
extractFromBunfs() は、コンパイルされた実行可能ファイルの仮想ファイルシステムから埋め込まれたバイナリをユーザーごとの一時ディレクトリにコピーし、実際のパスを返します。コンパイルされた実行可能ファイルの外では、入力パスを変更せずに返すため、同じコードは開発環境で変更なしに実行されます。
各コンパイルされた実行可能ファイルは、単一プラットフォームのバイナリを埋め込みます。インポート内のプラットフォームパッケージを --target と一致させます。
- クロスコンパイルするには、一致しないプラットフォームパッケージをインストールします。例えば
npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force。 - Windows では、バイナリサブパスは
claude.exeです。例えば@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe。
関数
query()
Claude Code と対話するための主要な関数です。メッセージが到着するにつれてストリーミングする非同期ジェネレータを作成します。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | 文字列またはストリーミングモード用の非同期反復可能オブジェクトとしての入力プロンプト |
options | Options | オプションの設定オブジェクト(以下の Options 型を参照) |
戻り値
Query オブジェクトを返します。これは AsyncGenerator<SDKMessage, void> を拡張し、追加のメソッドを持ちます。
startup()
プロンプトが利用可能になる前に、CLI サブプロセスをスポーンして初期化ハンドシェイクを完了することで、プリウォーミングします。返された WarmQuery ハンドルは後でプロンプトを受け入れ、既に準備ができているプロセスに書き込むため、最初の query() 呼び出しはサブプロセスのスポーンと初期化コストをインラインで支払うことなく解決します。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
options | Options | オプションの設定オブジェクト。query() の options パラメータと同じです |
initializeTimeoutMs | number | サブプロセス初期化を待つ最大時間(ミリ秒)。デフォルトは 60000 です。初期化が時間内に完了しない場合、プロミスはタイムアウトエラーで拒否されます |
戻り値
サブプロセスがスポーンされ、初期化ハンドシェイクを完了したら解決するPromise<WarmQuery> を返します。
例
アプリケーションブート時など、早期にstartup() を呼び出し、プロンプトが準備できたら返されたハンドルで .query() を呼び出します。これにより、サブプロセスのスポーンと初期化をクリティカルパスから移動させます。
tool()
SDK MCP サーバーで使用するためのタイプセーフな MCP ツール定義を作成します。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
name | string | ツールの名前 |
description | string | ツールが何をするかの説明 |
inputSchema | Schema extends AnyZodRawShape | ツールの入力パラメータを定義する Zod スキーマ(Zod 3 と Zod 4 の両方をサポート) |
handler | (args, extra) => Promise<CallToolResult> | ツールロジックを実行する非同期関数 |
extras | { annotations?: ToolAnnotations } | クライアントに動作ヒントを提供するオプションの MCP ツール注釈 |
ToolAnnotations
@modelcontextprotocol/sdk/types.js から再エクスポートされます。すべてのフィールドはオプションのヒントです。クライアントはセキュリティ決定のためにこれらに依存すべきではありません。
| フィールド | 型 | デフォルト | 説明 |
|---|---|---|---|
title | string | undefined | ツールの人間が読める形式のタイトル |
readOnlyHint | boolean | false | true の場合、ツールはその環境を変更しません |
destructiveHint | boolean | true | true の場合、ツールは破壊的な更新を実行する可能性があります(readOnlyHint が false の場合のみ意味があります) |
idempotentHint | boolean | false | true の場合、同じ引数での繰り返し呼び出しは追加の効果がありません(readOnlyHint が false の場合のみ意味があります) |
openWorldHint | boolean | true | true の場合、ツールは外部エンティティと対話します(例:ウェブ検索)。false の場合、ツールのドメインは閉じています(例:メモリツール) |
createSdkMcpServer()
アプリケーションと同じプロセスで実行される MCP サーバーインスタンスを作成します。
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
options.name | string | MCP サーバーの名前 |
options.version | string | オプションのバージョン文字列 |
options.tools | Array<SdkMcpToolDefinition> | tool() で作成されたツール定義の配列 |
listSessions()
軽いメタデータを含む過去のセッションを検出してリストします。プロジェクトディレクトリでフィルタリングするか、すべてのプロジェクト全体でセッションをリストします。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
options.dir | string | undefined | セッションをリストするディレクトリ。省略すると、すべてのプロジェクト全体でセッションを返します |
options.limit | number | undefined | 返すセッションの最大数 |
options.includeWorktrees | boolean | true | dir が git リポジトリ内にある場合、すべての worktree パスからセッションを含めます |
戻り値の型:SDKSessionInfo
| プロパティ | 型 | 説明 |
|---|---|---|
sessionId | string | 一意のセッション識別子(UUID) |
summary | string | 表示タイトル:カスタムタイトル、自動生成されたサマリー、または最初のプロンプト |
lastModified | number | エポック以降のミリ秒単位での最後の変更時刻 |
fileSize | number | undefined | セッションファイルサイズ(バイト)。ローカル JSONL ストレージの場合のみ入力されます |
customTitle | string | undefined | ユーザーが設定したセッションタイトル(/rename 経由) |
firstPrompt | string | undefined | セッション内の最初の意味のあるユーザープロンプト |
gitBranch | string | undefined | セッション終了時の Git ブランチ |
cwd | string | undefined | セッションの作業ディレクトリ |
tag | string | undefined | ユーザーが設定したセッションタグ(tagSession() を参照) |
createdAt | number | undefined | 最初のエントリのタイムスタンプからのエポック以降のミリ秒単位での作成時刻 |
例
プロジェクトの 10 個の最新セッションを出力します。結果はlastModified の降順でソートされるため、最初の項目が最新です。dir を省略してすべてのプロジェクト全体を検索します。
getSessionMessages()
過去のセッショントランスクリプトからユーザーおよびアシスタントメッセージを読み取ります。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
sessionId | string | 必須 | 読み取るセッション UUID(listSessions() を参照) |
options.dir | string | undefined | セッションを見つけるプロジェクトディレクトリ。省略すると、すべてのプロジェクトを検索します |
options.limit | number | undefined | 返すメッセージの最大数 |
options.offset | number | undefined | 開始からスキップするメッセージ数 |
戻り値の型:SessionMessage
| プロパティ | 型 | 説明 |
|---|---|---|
type | "user" | "assistant" | メッセージロール |
uuid | string | 一意のメッセージ識別子 |
session_id | string | このメッセージが属するセッション |
message | unknown | トランスクリプトからの生のメッセージペイロード |
parent_tool_use_id | string | null | サブエージェントメッセージの場合、スポーニング Agent ツール呼び出しの tool_use_id。メインセッションメッセージおよび古いセッションの場合は null |
例
getSessionInfo()
プロジェクトディレクトリ全体をスキャンせずに、ID でセッションのメタデータを読み取ります。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
sessionId | string | 必須 | ルックアップするセッションの UUID |
options.dir | string | undefined | プロジェクトディレクトリパス。省略すると、すべてのプロジェクトディレクトリを検索します |
SDKSessionInfo を返すか、セッションが見つからない場合は undefined を返します。
renameSession()
カスタムタイトルエントリを追加することでセッションの名前を変更します。繰り返し呼び出しは安全です。最新のタイトルが優先されます。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
sessionId | string | 必須 | 名前を変更するセッションの UUID |
title | string | 必須 | 新しいタイトル。空白をトリミングした後、空でない必要があります |
options.dir | string | undefined | プロジェクトディレクトリパス。省略すると、すべてのプロジェクトディレクトリを検索します |
tagSession()
セッションにタグを付けます。null を渡してタグをクリアします。繰り返し呼び出しは安全です。最新のタグが優先されます。
パラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
sessionId | string | 必須 | タグを付けるセッションの UUID |
tag | string | null | 必須 | タグ文字列、またはクリアする場合は null |
options.dir | string | undefined | プロジェクトディレクトリパス。省略すると、すべてのプロジェクトディレクトリを検索します |
resolveSettings()
CLI と同じマージエンジンを使用して、指定されたディレクトリの有効な Claude Code 設定を解決します。Claude CLI をスポーンせずに実行します。query() 呼び出しを呼び出す前に、その呼び出しが何の設定を見るかを検査するために使用します。
この関数はアルファ版であり、安定化前に API が変更される可能性があります。CLI スタートアップとの同等性のために、macOS plist および Windows HKLM/HKCU を含む MDM ソースを読み取りますが、管理者が設定した
policyHelper サブプロセスは実行しません。permissions.defaultMode フィールドは、プロジェクト設定を含むすべてのティアから現状のまま返されます。CLI が昇格するアクセス許可モードを尊重する前に適用する信頼フィルタは適用されません。パラメータ
resolveSettings() は単一のオプションオブジェクトを受け入れます。すべてのフィールドはオプションです。
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
options.cwd | string | process.cwd() | プロジェクトおよびローカル設定を相対的に解決するディレクトリ |
options.settingSources | SettingSource[] | すべてのソース | 読み込むファイルシステムソース。ユーザー、プロジェクト、およびローカル設定をスキップするには [] を渡します。管理ポリシー設定はすべての場合に読み込まれます |
options.managedSettings | Settings | undefined | 埋め込みホストによって提供される制限的なポリシーティア設定。管理者がデプロイした管理ティアが存在する場合、ドロップされます。parentSettingsBehavior が "merge" の場合、そのティアの下でマージされます。model などの非制限的なキーは静かにドロップされるため、このオプションは管理ポリシーを厳しくできますが、緩くすることはできません |
options.serverManagedSettings | Settings | undefined | /api/claude_code/settings からのサーバー管理設定ペイロード。非制限的なキーはフィルタリングなしで通過します |
戻り値の型:ResolvedSettings
resolveSettings() は、マージされた設定と各キーに寄与したソースを説明するオブジェクトを返します。
| プロパティ | 型 | 説明 |
|---|---|---|
effective | Settings | すべての有効なソースを優先度順に適用した後のマージされた設定 |
provenance | Partial<Record<keyof Settings, ProvenanceEntry>> | effective の各トップレベルキーについて、値を提供したソース |
sources | Array<{ source, settings, path?, policyOrigin? }> | ソースごとの生の設定。最も低い優先度から最も高い優先度の順に並べられています |
例
プロジェクトディレクトリの設定を解決し、クリーンアップ期間を制御するソースを出力します。型
Options
query() 関数の設定オブジェクト。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
abortController | AbortController | new AbortController() | 操作をキャンセルするためのコントローラー |
additionalDirectories | string[] | [] | Claude がアクセスできる追加ディレクトリ |
agent | string | undefined | メインスレッドのエージェント名。エージェントは agents オプションまたは設定で定義される必要があります |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | プログラムでサブエージェントを定義します |
agentProgressSummaries | boolean | false | true の場合、サブエージェントの 1 行の進捗サマリーを生成し、summary フィールドを介して task_progress イベントで転送します。フォアグラウンドおよびバックグラウンドサブエージェントに適用されます |
allowDangerouslySkipPermissions | boolean | false | パーミッションのバイパスを有効にします。permissionMode: 'bypassPermissions' を使用する場合に必須です |
allowedTools | string[] | [] | プロンプトなしで自動承認するツール。これは Claude をこれらのツールのみに制限しません。リストされていないツールは permissionMode と canUseTool にフォールスルーします。ツールをブロックするには disallowedTools を使用します。パーミッション を参照してください |
betas | SdkBeta[] | [] | ベータ機能を有効にします |
canUseTool | CanUseTool | undefined | ツール使用のためのカスタムパーミッション関数 |
continue | boolean | false | 最新の会話を続けます |
cwd | string | process.cwd() | 現在の作業ディレクトリ |
debug | boolean | false | Claude Code プロセスのデバッグモードを有効にします |
debugFile | string | undefined | デバッグログを特定のファイルパスに書き込みます。暗黙的にデバッグモードを有効にします |
disallowedTools | string[] | [] | 拒否するツール。Bash などの単純な名前はツールを Claude のコンテキストから削除します。Bash(rm *) などのスコープ付きルールはツールを利用可能なままにし、bypassPermissions を含むすべてのパーミッションモードで一致する呼び出しを拒否します。パーミッション を参照してください |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Claude がその応答にどれだけの努力を費やすかを制御します。適応的思考と連携して思考の深さをガイドします |
enableFileCheckpointing | boolean | false | ファイル変更追跡を有効にして巻き戻します。ファイルチェックポイント を参照してください |
env | Record<string, string | undefined> | process.env | 環境変数。設定すると、このオプションは process.env とマージする代わりに、サブプロセス環境を置き換えるため、継承された PATH などの変数を保つには { ...process.env, YOUR_VAR: 'value' } を渡します。遅いまたは停止した API レスポンスを処理 でこのパターンの例を参照してください。また、環境変数 で基になる CLI が読み取る変数を参照してください。User-Agent ヘッダーでアプリを識別するには CLAUDE_AGENT_SDK_CLIENT_APP を設定します |
executable | 'bun' | 'deno' | 'node' | 自動検出 | 使用する JavaScript ランタイム |
executableArgs | string[] | [] | 実行可能ファイルに渡す引数 |
extraArgs | Record<string, string | null> | {} | 追加の引数 |
fallbackModel | string | undefined | プライマリが失敗した場合に使用するモデル |
forkSession | boolean | false | resume で再開するときに、元のセッション ID を続行する代わりに新しいセッション ID にフォークします |
forwardSubagentText | boolean | false | サブエージェントのテキストと思考ブロックを parent_tool_use_id が設定されたアシスタントおよびユーザーメッセージとして転送し、コンシューマーがネストされたトランスクリプトをレンダリングできるようにします。デフォルトでは、サブエージェントからの tool_use および tool_result ブロックのみが発行されます |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | イベントのフックコールバック |
includeHookEvents | boolean | false | フックライフサイクルイベントをメッセージストリームに SDKHookStartedMessage、SDKHookProgressMessage、SDKHookResponseMessage として含めます |
includePartialMessages | boolean | false | 部分的なメッセージイベントを含めます |
loadTimeoutMs | number | 60000 | アルファ版。 再開の具体化中に各 sessionStore.load() および sessionStore.listSubkeys() 呼び出しのタイムアウト(ミリ秒単位)。アダプターがこのウィンドウ内で解決しない場合、クエリはハングする代わりに失敗します。sessionStore が設定されていない場合は無視されます |
managedSettings | Settings | undefined | スポーニング親プロセスによって提供されるポリシーティア設定。マシンに IT 制御の管理設定ティアが既に存在する場合は削除されます。ただし、その管理者が parentSettingsBehavior: 'merge' でオプトインしない限り。関係なく制限的なキーのみにフィルタリングされます |
maxBudgetUsd | number | undefined | クライアント側のコスト推定がこの USD 値に達したときにクエリを停止します。total_cost_usd と同じ推定と比較されます。コストと使用状況を追跡 で精度の注意事項を参照してください |
maxThinkingTokens | number | undefined | 非推奨: 代わりに thinking を使用してください。思考プロセスの最大トークン数 |
maxTurns | number | undefined | 最大 agentic ターン数(ツール使用ラウンドトリップ) |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | MCP サーバー設定 |
model | string | CLI からのデフォルト | 使用する Claude モデル |
onElicitation | (request: ElicitationRequest, options: { signal: AbortSignal }) => Promise<ElicitationResult> | undefined | MCP エリシテーションリクエストを処理するためのコールバック。MCP サーバーがユーザー入力をリクエストし、フックがそれを最初に処理しない場合に呼び出されます。提供されない場合、未処理のエリシテーションリクエストは自動的に拒否されます |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | エージェント結果の出力形式を定義します。詳細は 構造化出力 を参照してください |
outputStyle | string | undefined | Options フィールドではありません。インライン settings オブジェクトまたは設定ファイルで outputStyle を設定してください。出力スタイルをアクティブにする を参照してください |
pathToClaudeCodeExecutable | string | バンドルされたネイティブバイナリから自動解決 | Claude Code 実行可能ファイルへのパス。インストール中にオプション依存関係がスキップされた場合、またはプラットフォームがサポートされているセットにない場合にのみ必要です |
permissionMode | PermissionMode | 'default' | セッションのパーミッションモード |
permissionPromptToolName | string | undefined | パーミッションプロンプト用の MCP ツール名 |
persistSession | boolean | true | false の場合、セッション永続化をディスクに無効にします。セッションは後で再開できません |
planModeInstructions | string | undefined | プランモードのカスタムワークフロー指示。permissionMode が 'plan' の場合、この文字列はデフォルトのプランモードワークフロー本体を置き換えます。CLI は引き続き読み取り専用強制プリアンブルと ExitPlanMode プロトコルフッターでラップします |
plugins | SdkPluginConfig[] | [] | ローカルパスからカスタムプラグインをロードします。詳細は プラグイン を参照してください |
promptSuggestions | boolean | false | プロンプト提案を有効にします。各ターン後に予測される次のユーザープロンプトを含む prompt_suggestion メッセージを発行します |
resume | string | undefined | 再開するセッション ID |
resumeSessionAt | string | undefined | 特定のメッセージ UUID でセッションを再開します |
sandbox | SandboxSettings | undefined | サンドボックス動作をプログラムで設定します。詳細は サンドボックス設定 を参照してください |
sessionId | string | 自動生成 | 自動生成する代わりに、セッションに特定の UUID を使用します |
sessionStore | SessionStore | undefined | セッショントランスクリプトを外部バックエンドにミラーリングして、任意のホストがそれらを再開できるようにします。セッションを外部ストレージに永続化 を参照してください |
sessionStoreFlush | 'batched' | 'eager' | 'batched' | アルファ版。 sessionStore のフラッシュモード。sessionStore が設定されていない場合は無視されます |
settings | string | Settings | undefined | インライン 設定 オブジェクトまたは設定ファイルへのパス。優先順位 のフラグ設定レイヤーを入力します。applyFlagSettings() でランタイムに変更します |
settingSources | SettingSource[] | CLI デフォルト(すべてのソース) | ロードするファイルシステム設定を制御します。ユーザー、プロジェクト、ローカル設定を無効にするには [] を渡します。管理ポリシー設定は関係なくロードされます。Claude Code 機能を使用 を参照してください |
skills | string[] | 'all' | undefined | セッションで利用可能なスキル。すべての検出されたスキルを有効にするには 'all' を渡すか、スキル名のリストを渡します。設定すると、SDK は allowedTools にリストされていなくても Skill ツールを自動的に有効にします。スキル を参照してください |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Claude Code プロセスをスポーンするカスタム関数。VM、コンテナ、またはリモート環境で Claude Code を実行するために使用します |
stderr | (data: string) => void | undefined | stderr 出力のコールバック |
strictMcpConfig | boolean | false | mcpServers で渡されたサーバーのみを使用し、プロジェクト .mcp.json、ユーザー設定、プラグイン提供の MCP サーバー、および claude.ai コネクタ を無視します |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined(最小限のプロンプト) | システムプロンプト設定。カスタムプロンプト用の文字列を渡すか、Claude Code のシステムプロンプトを使用するには { type: 'preset', preset: 'claude_code' } を渡します。プリセットオブジェクト形式を使用する場合、追加の指示で拡張するには append を追加し、マシン全体でプロンプトキャッシュの再利用を改善 するためにセッションごとのコンテキストを最初のユーザーメッセージに移動するには excludeDynamicSections: true を設定します |
taskBudget | { total: number } | undefined | アルファ版。 API サイドのタスク予算(トークン単位)。設定すると、モデルは残りのトークン予算を知らされるため、ツール使用のペースを調整し、制限前にラップアップできます |
thinking | ThinkingConfig | サポートされているモデルの場合 { type: 'adaptive' } | Claude の思考/推論動作を制御します。オプションについては ThinkingConfig を参照してください |
title | string | undefined | セッションの表示タイトル。resume または continue を介して再開する場合、再開されたセッションの永続化されたタイトルが優先されます。既存のセッションを再タイトルするには renameSession() を使用してください |
toolAliases | Record<string, string> | undefined | 組み込みツール名を MCP ツール名にマップして、Claude が組み込みの代わりに MCP 実装を呼び出すようにします。例えば、{ Bash: 'mcp__workspace__bash' } |
toolConfig | ToolConfig | undefined | 組み込みツール動作の設定。詳細は ToolConfig を参照してください |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | ツール設定。ツール名の配列を渡すか、Claude Code のデフォルトツールを取得するにはプリセットを使用します |
遅いまたは停止した API レスポンスを処理
CLI サブプロセスは、API タイムアウトと停止検出を制御するいくつかの環境変数を読み取ります。env オプションを通じてそれらを渡します:
API_TIMEOUT_MS:Anthropic クライアントのリクエストごとのタイムアウト(ミリ秒単位)。デフォルト600000。メインループとすべてのサブエージェントに適用されます。CLAUDE_CODE_MAX_RETRIES:最大 API リトライ数。デフォルト10。各リトライは独自のAPI_TIMEOUT_MSウィンドウを取得するため、最悪の場合の経過時間は約API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)にバックオフを加えたものです。CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS:run_in_backgroundで起動されたサブエージェントの停止ウォッチドッグ。デフォルト600000。各ストリームイベントでリセットされます。停止時にサブエージェントを中止し、タスクを失敗とマークし、部分的な結果を含むエラーを親に表示します。同期サブエージェントには適用されません。CLAUDE_ENABLE_STREAM_WATCHDOG=1とCLAUDE_STREAM_IDLE_TIMEOUT_MS:ヘッダーが到着したがレスポンスボディがストリーミングを停止したときにリクエストを中止します。デフォルトではオフです。CLAUDE_STREAM_IDLE_TIMEOUT_MSはデフォルトで300000で、その最小値にクランプされます。中止されたリクエストは通常のリトライパスを通ります。
Query オブジェクト
query() 関数によって返されるインターフェース。
メソッド
| メソッド | 説明 |
|---|---|
interrupt() | クエリを中断します(ストリーミング入力モードでのみ利用可能) |
rewindFiles(userMessageId, options?) | ファイルを指定されたユーザーメッセージの状態に復元します。{ dryRun: true } を渡して変更をプレビューします。enableFileCheckpointing: true が必須です。ファイルチェックポイント を参照してください |
setPermissionMode() | パーミッションモードを変更します(ストリーミング入力モードでのみ利用可能) |
setModel() | モデルを変更します(ストリーミング入力モードでのみ利用可能) |
setMaxThinkingTokens() | 非推奨: 代わりに thinking オプションを使用してください。最大思考トークン数を変更します |
applyFlagSettings(settings) | ランタイムにセッションのフラグ設定レイヤーに設定をマージします(ストリーミング入力モードでのみ利用可能)。applyFlagSettings() を参照してください |
initializationResult() | サポートされているコマンド、モデル、アカウント情報、出力スタイル設定を含む完全な初期化結果を返します |
supportedCommands() | 利用可能なスラッシュコマンドを返します |
supportedModels() | 表示情報を含む利用可能なモデルを返します |
supportedAgents() | 利用可能なサブエージェントを AgentInfo[] として返します |
mcpServerStatus() | 接続された MCP サーバーのステータスを返します |
accountInfo() | アカウント情報を返します |
reconnectMcpServer(serverName) | 名前で MCP サーバーを再接続します |
toggleMcpServer(serverName, enabled) | 名前で MCP サーバーを有効または無効にします |
setMcpServers(servers) | このセッションの MCP サーバーセットを動的に置き換えます。追加、削除、エラーが発生したサーバーに関する情報を返します |
streamInput(stream) | マルチターン会話のためにクエリに入力メッセージをストリーミングします |
stopTask(taskId) | ID で実行中のバックグラウンドタスクを停止します |
close() | クエリを閉じて、基になるプロセスを終了します。クエリを強制的に終了し、すべてのリソースをクリーンアップします |
applyFlagSettings()
実行中のセッションで任意の 設定 を変更します。クエリを再開せずに変更します。エージェントが信頼できない入力を読み取った後に permissions を厳しくするなど、専用セッターがない設定を変更する必要がある場合に使用します。setModel() と setPermissionMode() はこれら 2 つのキーの専用セッターです。applyFlagSettings() は、設定キーの任意のサブセットを受け入れる一般的な形式であり、ここで model を渡すことは setModel() と同じように動作します。
ミッドセッションで効果を発揮するキーのみ:
- 次のターンで適用される:
model、effortLevel、ultracode、permissions、hooks、skillOverrides、fastMode、awaySummaryEnabled、agent。agentを切り替えると、そのエージェントのモデルオーバーライド、フック、システムプロンプトも次のターンで適用されます。 - ミッドセッションで効果なし:システムプロンプトオプション。これらはスタートアップ時に 1 回解決されるため、実行中のセッションは呼び出しが成功しても元の値を保持します。それらを変更するには、新しいセッションを開始してください。
query() のインライン settings オプションがスタートアップ時に入力するのと同じレイヤーです。フラグ設定は 設定優先順位 の上部付近に位置します。ユーザー、プロジェクト、ローカル設定をオーバーライドし、管理ポリシー設定のみがそれらをオーバーライドできます。これは、優先順位セクション がプログラム的なオプションと呼ぶのと同じティアです。
連続した呼び出しは、トップレベルキーを浅くマージします。{ permissions: {...} } を含む 2 番目の呼び出しは、前の呼び出しから permissions オブジェクト全体を置き換えます。深くマージするのではなく。フラグレイヤーからキーをクリアして、より低い優先度のソースにフォールバックするには、そのキーに null を渡します。undefined を渡すと、JSON シリアル化がそれをドロップするため、効果がありません。
ストリーミング入力モードでのみ利用可能です。これは setModel() と setPermissionMode() と同じ制約です。
以下の例は、セッション中にアクティブなモデルを切り替えてから、オーバーライドをクリアして、ユーザーまたはプロジェクト設定が指定するモデルにフォールバックします。
applyFlagSettings() は TypeScript のみです。Python SDK は同等のメソッドを公開していません。WarmQuery
startup() によって返されるハンドル。サブプロセスは既にスポーンされ、初期化されているため、このハンドルで query() を呼び出すと、スタートアップレイテンシーなしで準備ができているプロセスにプロンプトを直接書き込みます。
メソッド
| メソッド | 説明 |
|---|---|
query(prompt) | プリウォーミングされたサブプロセスにプロンプトを送信し、Query を返します。WarmQuery ごとに 1 回だけ呼び出すことができます |
close() | プロンプトを送信せずにサブプロセスを閉じます。不要になったウォームクエリを破棄するために使用します |
WarmQuery は AsyncDisposable を実装しているため、自動クリーンアップのために await using で使用できます。
SDKControlInitializeResponse
initializationResult() の戻り値の型。セッション初期化データを含みます。
initialize を送信する場合、コントロールレスポンスラッパーは、オプションの pending_permission_requests 配列も含みます。フィールドはレスポンスラッパー自体にあり、上記の SDKControlInitializeResponse ペイロードにはありません。各エントリは、セッションが実行中にストリーミングするパーミッションリクエストと同じ { type: "control_request", request_id, request } 形状を持つ完全な control_request メッセージです。
これらは、クライアントが接続する前に発行され、まだ返信を待っているリクエストであるため、この配列を読み取って、進行中のパーミッションプロンプトをすぐに表示します。それらは再送信されません。
AgentDefinition
プログラムで定義されたサブエージェントの設定。
| フィールド | 必須 | 説明 |
|---|---|---|
description | はい | このエージェントをいつ使用するかの自然言語説明 |
tools | いいえ | 許可されたツール名の配列。省略すると、親からすべてのツールを継承します。スキルをエージェントのコンテキストにプリロードするには、tools にリストするのではなく skills フィールドを使用します |
disallowedTools | いいえ | このエージェントに対して明示的に許可しないツール名の配列 |
prompt | はい | エージェントのシステムプロンプト |
model | いいえ | このエージェントのモデルオーバーライド。'sonnet'、'opus'、'haiku'、'inherit' などのエイリアス、または完全なモデル ID を受け入れます。省略または 'inherit' の場合、メインモデルを使用します |
mcpServers | いいえ | このエージェントの MCP サーバー仕様 |
skills | いいえ | エージェントコンテキストにプリロードするスキル名の配列 |
initialPrompt | いいえ | このエージェントがメインスレッドエージェントとして実行される場合、最初のユーザーターンとして自動送信されます |
maxTurns | いいえ | 停止する前の最大 agentic ターン数(API ラウンドトリップ) |
background | いいえ | 呼び出されたときにこのエージェントをノンブロッキングバックグラウンドタスクとして実行します |
memory | いいえ | このエージェントのメモリソース:'user'、'project'、または 'local' |
effort | いいえ | このエージェントの推論努力レベル。名前付きレベルまたは整数を受け入れます |
permissionMode | いいえ | このエージェント内のツール実行のパーミッションモード。PermissionMode を参照してください |
criticalSystemReminder_EXPERIMENTAL | いいえ | 実験的:システムプロンプトに追加される重要なリマインダー |
AgentMcpServerSpec
サブエージェントで利用可能な MCP サーバーを指定します。サーバー名(親の mcpServers 設定からサーバーを参照する文字列)またはインラインサーバー設定レコード(サーバー名を設定にマッピング)です。
McpServerConfigForProcessTransport は McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig です。
SettingSource
SDK がどのファイルシステムベースの設定ソースから設定をロードするかを制御します。
| 値 | 説明 | 場所 |
|---|---|---|
'user' | グローバルユーザー設定 | ~/.claude/settings.json |
'project' | 共有プロジェクト設定(バージョン管理) | .claude/settings.json |
'local' | ローカルプロジェクト設定(gitignored) | .claude/settings.local.json |
デフォルト動作
settingSources が省略または undefined の場合、query() は Claude Code CLI と同じファイルシステム設定をロードします:ユーザー、プロジェクト、ローカル。管理ポリシー設定はすべての場合にロードされます。このオプションに関係なく読み取られる入力については Claude Code 機能を使用 を参照してください。
settingSources を使用する理由
ファイルシステム設定を無効にする:設定の優先順位
複数のソースがロードされる場合、設定はこの優先順位(高から低)でマージされます:- ローカル設定(
.claude/settings.local.json) - プロジェクト設定(
.claude/settings.json) - ユーザー設定(
~/.claude/settings.json)
agents と allowedTools などのプログラム的なオプションは、ユーザー、プロジェクト、ローカルのファイルシステム設定をオーバーライドします。管理ポリシー設定はプログラム的なオプションより優先されます。
PermissionMode
CanUseTool
ツール使用を制御するためのカスタムパーミッション関数型。
| オプション | 型 | 説明 |
|---|---|---|
signal | AbortSignal | 操作を中止する必要がある場合にシグナルされます |
suggestions | PermissionUpdate[] | 提案されたパーミッション更新。ユーザーがこのツールに対して再度プロンプトされないようにします。Bash プロンプトには localSettings 宛先 を含む提案が含まれているため、updatedPermissions で返すと、ルールを .claude/settings.local.json に書き込み、セッション全体で永続化します。 |
blockedPath | string | パーミッションリクエストをトリガーしたファイルパス(該当する場合) |
decisionReason | string | このパーミッションリクエストがトリガーされた理由を説明します |
toolUseID | string | アシスタントメッセージ内のこの特定のツール呼び出しの一意の識別子 |
agentID | string | サブエージェント内で実行している場合、サブエージェントの ID |
PermissionResult
パーミッションチェックの結果。
ToolConfig
組み込みツール動作の設定。
| フィールド | 型 | 説明 |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | AskUserQuestion オプションの preview フィールドにオプトインし、そのコンテンツ形式を設定します。設定されていない場合、Claude はプレビューを発行しません |
McpServerConfig
MCP サーバーの設定。
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
SDK でプラグインをロードするための設定。
| フィールド | 型 | 説明 |
|---|---|---|
type | 'local' | 'local' である必要があります(現在ローカルプラグインのみサポート) |
path | string | プラグインディレクトリへの絶対パスまたは相対パス |
メッセージ型
SDKMessage
クエリによって返されるすべての可能なメッセージの共用体型。
SDKAssistantMessage
アシスタント応答メッセージ。
message フィールドは Anthropic SDK の BetaMessage です。id、content、model、stop_reason、usage などのフィールドを含みます。
SDKAssistantMessageError は以下のいずれかです:'authentication_failed'、'oauth_org_not_allowed'、'billing_error'、'rate_limit'、'overloaded'、'invalid_request'、'model_not_found'、'server_error'、'max_output_tokens'、または 'unknown'。'model_not_found' は、選択されたモデルが存在しないか、アカウントまたはデプロイメントで利用できないことを意味します。'overloaded' は、API がサーバーが容量に達しているため 529 を返したことを意味し、'rate_limit' はクォータに対する 429 とは異なります。
SDKUserMessage
ユーザー入力メッセージ。
shouldQuery を false に設定して、アシスタントターンをトリガーせずにメッセージをトランスクリプトに追加します。メッセージは保持され、ターンをトリガーする次のユーザーメッセージにマージされます。これを使用して、バンド外で実行したコマンドの出力など、モデル呼び出しを費やさずにコンテキストを注入します。
SDKUserMessageReplay
必須 UUID を含む再生されたユーザーメッセージ。
SDKResultMessage
最終結果メッセージ。
subtype を超えた診断詳細を提供します:
api_error_status:会話を終了させた API エラーの HTTP ステータスコード。ターンが API エラーなしで終了した場合、存在しないかnullです。ttft_ms:最初のトークンまでの時間(ミリ秒)。成功の場合のみ存在します。terminal_reason:ループが終了した理由。"completed"、"max_turns"、"tool_deferred"、"aborted_streaming"、"aborted_tools"、"hook_stopped"、"stop_hook_prevented"、"blocking_limit"、"rapid_refill_breaker"、"prompt_too_long"、"image_error"、または"model_error"のいずれかです。fast_mode_state:"on"、"off"、または"cooldown"のいずれかです。
origin フィールドは、この結果をトリガーしたユーザーメッセージの SDKMessageOrigin を転送します。バックグラウンドタスクが完了し、SDK が合成フォローアップターンを注入する場合、結果の SDKResultMessage は origin: { kind: "task-notification" } を持ちます。このフィールドをチェックして、プロンプトに答える結果とバックグラウンドタスクのフォローアップで発行される結果を区別し、後者をルーティングまたは抑制できます。このフィールドは、スタートアップエラーなど、ユーザーターンの前に発行される結果には存在しません。
PreToolUse フックが permissionDecision: "defer" を返すと、結果は stop_reason: "tool_deferred" を持ち、deferred_tool_use は保留中のツールの id、name、input を保持します。このフィールドを読んで、独自の UI でリクエストをサーフェスし、同じ session_id で再開して続行します。完全なラウンドトリップについては、ツール呼び出しを後で延期するを参照してください。
SDKSystemMessage
システム初期化メッセージ。
SDKPartialAssistantMessage
ストリーミング部分メッセージ(includePartialMessages が true の場合のみ)。
SDKCompactBoundaryMessage
会話圧縮境界を示すメッセージ。
SDKPluginInstallMessage
プラグインインストール進捗イベント。CLAUDE_CODE_SYNC_PLUGIN_INSTALL が設定されている場合に発行されるため、Agent SDK アプリケーションは最初のターンの前にマーケットプレイスプラグインのインストールを追跡できます。started と completed ステータスは全体的なインストールをブラケットします。installed と failed ステータスは個別のマーケットプレイスをレポートし、name を含みます。
SDKPermissionDeniedMessage
権限システムがインタラクティブプロンプトなしでツール呼び出しを自動的に拒否するときに発行されるストリームイベント。これを使用して、その後に続く is_error ツール結果のみを観察するのではなく、拒否を UI にリアルタイムでレンダリングします。インタラクティブな質問パスは、canUseTool コールバックを通じてアプリケーションに別途到達します。PreToolUse フックによって発行された拒否は、このイベントを通じてレポートされません。
このイベントには Claude Code v2.1.136 以降が必要です。
| フィールド | 型 | 説明 |
|---|---|---|
tool_name | string | 拒否されたツールの名前 |
tool_use_id | string | この拒否が答える tool_use ブロックの ID |
agent_id | string | 拒否された呼び出しがサブエージェント内で発生した場合のサブエージェント ID。ホスト側ルーティング用に can_use_tool のフィールドをミラーリングします |
decision_reason_type | string | 決定したコンポーネントの判別式("rule"、"mode"、"classifier"、"asyncAgent" など) |
decision_reason | string | 利用可能な場合、決定したコンポーネントからの人間が読める理由 |
message | string | tool_result でモデルに返される拒否メッセージ |
SDKPermissionDenial
拒否されたツール使用に関する情報。
SDKMessageOrigin
ユーザーロールメッセージの出所。これは SDKUserMessage の origin として表示され、対応する SDKResultMessage に転送されるため、特定のターンをトリガーしたものを判断できます。
kind | 意味 |
|---|---|
human | エンドユーザーからの直接入力。ユーザーメッセージでは、origin が存在しないこともヒューマン入力を意味します。 |
channel | チャネルに到着するメッセージ。server はソース MCP サーバー名です。 |
peer | SendMessage 経由で別のエージェントセッションからのメッセージ。from は送信者アドレス、name は利用可能な場合は送信者の表示名です。 |
task-notification | バックグラウンドタスク完了後に注入される合成ターン。SDKTaskNotificationMessage を参照してください。 |
coordinator | エージェントチームのチームコーディネーターからのメッセージ。 |
フック型
フックの使用に関する包括的なガイド、例、一般的なパターンについては、フックガイド を参照してください。HookEvent
利用可能なフックイベント。
HookCallback
フックコールバック関数型。
HookCallbackMatcher
オプションのマッチャーを含むフック設定。
HookInput
すべてのフック入力型の共用体型。
BaseHookInput
すべてのフック入力型が拡張する基本インターフェース。
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
PostToolBatchHookInput
バッチ内のすべてのツール呼び出しが解決された後、次のモデルリクエストの前に 1 回発火します。tool_response はモデルが見るシリアル化された tool_result コンテンツを保持します。形状は PostToolUseHookInput の構造化された Output オブジェクトとは異なります。
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
MessageDisplayHookInput
HookJSONOutput
フック戻り値。
AsyncHookJSONOutput
SyncHookJSONOutput
ツール入力型
すべての組み込み Claude Code ツールの入力スキーマのドキュメント。これらの型は@anthropic-ai/claude-agent-sdk からエクスポートされ、タイプセーフなツール相互作用に使用できます。
ToolInputSchemas
すべてのツール入力型の共用体。@anthropic-ai/claude-agent-sdk からエクスポートされます。
Agent
ツール名:Agent(以前は Task。これはまだエイリアスとして受け入れられます)
AskUserQuestion
ツール名:AskUserQuestion
Bash
ツール名:Bash
Monitor
ツール名:Monitor
persistent: true をセッション長のウォッチ(ログテールなど)に設定します。Monitor は Bash と同じパーミッションルールに従います。動作とプロバイダーの可用性については、Monitor ツールリファレンス を参照してください。
TaskOutput
ツール名:TaskOutput
Edit
ツール名:Edit
Read
ツール名:Read
pages を使用します(例:"1-5")。
Write
ツール名:Write
Glob
ツール名:Glob
Grep
ツール名:Grep
TaskStop
ツール名:TaskStop
NotebookEdit
ツール名:NotebookEdit
WebFetch
ツール名:WebFetch
WebSearch
ツール名:WebSearch
Workflow
ツール名:Workflow
Workflow ツールは Agent SDK v0.3.149 以降で利用可能です。script、name、または scriptPath の少なくとも 1 つが必要です。
| フィールド | 型 | 説明 |
|---|---|---|
script | string | インラインワークフロースクリプト。リテラルとして export const meta = { name, description, phases } で始まり、その後に agent()、parallel()、pipeline()、および phase() を使用するスクリプト本体が続く必要があります |
name | string | 組み込みワークフローまたは .claude/workflows/ に保存されたワークフローの名前。スクリプトに解決されます |
scriptPath | string | ディスク上のワークフロースクリプトファイルへのパス。script と name より優先されます。すべての呼び出しはそのスクリプトを永続化し、結果でパスを返すため、そのファイルを編集して同じ scriptPath で再度呼び出して反復処理できます |
args | unknown | スクリプトにグローバル args として公開される入力値。研究質問またはファイルパスのリストなど、パラメータ化された名前付きワークフロー用です。配列とオブジェクトを JSON エンコード文字列ではなく実際の JSON 値として渡します |
resumeFromRunId | string | 再開する前の Workflow 呼び出しの実行 ID。変更されていない入力を持つ完了した agent() 呼び出しはキャッシュされた結果を返します。変更または新しい呼び出しのみがライブで実行されます。同じセッションのみ |
TodoWrite
ツール名:TodoWrite
TypeScript Agent SDK 0.3.142 以降、
TodoWrite はデフォルトで無効になっています。代わりに TaskCreate、TaskGet、TaskUpdate、および TaskList を使用してください。監視コードを更新するには、Task ツールへの移行 を参照するか、CLAUDE_CODE_ENABLE_TASKS=0 を設定して TodoWrite に戻してください。TaskCreate
ツール名:TaskCreate
TaskUpdate
ツール名:TaskUpdate
status を "deleted" に設定して削除します。
TaskGet
ツール名:TaskGet
null を返します。
TaskList
ツール名:TaskList
ExitPlanMode
ツール名:ExitPlanMode
ListMcpResources
ツール名:ListMcpResourcesTool
ReadMcpResource
ツール名:ReadMcpResourceTool
EnterWorktree
ツール名:EnterWorktree
path を渡します。name と path は相互に排他的です。
ツール出力型
すべての組み込み Claude Code ツールの出力スキーマのドキュメント。これらの型は@anthropic-ai/claude-agent-sdk からエクスポートされ、各ツールによって返される実際の応答データを表します。
ToolOutputSchemas
すべてのツール出力型の共用体。
Agent
ツール名:Agent(以前は Task。これはまだエイリアスとして受け入れられます)
status フィールドで判別されます:完了したタスクの場合は "completed"、バックグラウンドタスクの場合は "async_launched"、インタラクティブサブエージェントの場合は "sub_agent_entered"。
AskUserQuestion
ツール名:AskUserQuestion
response はユーザーが構造化された質問に答える代わりに自由形式の返信を入力した場合に設定されます。存在する場合、Claude は質問ごとの回答リストの代わりに「ユーザーが応答しました:…」を受け取ります。
Bash
ツール名:Bash
backgroundTaskId が含まれます。
Monitor
ツール名:Monitor
TaskStop で使用して、ウォッチを早期にキャンセルします。
Edit
ツール名:Edit
Read
ツール名:Read
type フィールドで判別されます。
Write
ツール名:Write
Glob
ツール名:Glob
Grep
ツール名:Grep
mode によって異なります:ファイルリスト、マッチを含むコンテンツ、またはマッチ数。
TaskStop
ツール名:TaskStop
NotebookEdit
ツール名:NotebookEdit
WebFetch
ツール名:WebFetch
WebSearch
ツール名:WebSearch
Workflow
ツール名:Workflow
error を確認してください:構文チェックに失敗したスクリプトは status: "async_launched" と error セットで返され、実行されません。
| フィールド | 型 | 説明 |
|---|---|---|
status | "async_launched" | ツールが呼び出しを受け入れました。これはフィールドが取る唯一の値です |
taskId | string | 実行のバックグラウンドタスク識別子 |
runId | string | 後の呼び出しで resumeFromRunId として渡すワークフロー実行識別子 |
summary | string | ワークフローが何をするかの 1 行の説明 |
transcriptDir | string | 実行中にサブエージェントトランスクリプトが書き込まれるディレクトリ |
scriptPath | string | この実行のために永続化されたワークフロースクリプトへのパス。編集して scriptPath として戻すことで、スクリプトを再送信せずに再実行できます |
error | string | スクリプトが構文チェックに失敗した場合に設定されます。存在する場合、async_launched ステータスにもかかわらず実行は開始されませんでした |
TodoWrite
ツール名:TodoWrite
TypeScript Agent SDK 0.3.142 以降、
TodoWrite はデフォルトで無効になっています。代わりに TaskCreate、TaskGet、TaskUpdate、および TaskList を使用してください。タスクツールへの移行を参照して、監視コードを更新するか、CLAUDE_CODE_ENABLE_TASKS=0 を設定して TodoWrite に戻してください。TaskCreate
ツール名:TaskCreate
TaskUpdate
ツール名:TaskUpdate
TaskGet
ツール名:TaskGet
null を返します。
TaskList
ツール名:TaskList
ExitPlanMode
ツール名:ExitPlanMode
ListMcpResources
ツール名:ListMcpResourcesTool
ReadMcpResource
ツール名:ReadMcpResourceTool
EnterWorktree
ツール名:EnterWorktree
パーミッション型
PermissionUpdate
パーミッション更新の操作。
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
その他の型
ApiKeySource
SdkBeta
betas オプション経由で有効にできる利用可能なベータ機能。詳細は ベータヘッダー を参照してください。
SlashCommand
利用可能なスラッシュコマンドに関する情報。
ModelInfo
利用可能なモデルに関する情報。
AgentInfo
Agent ツール経由で呼び出すことができる利用可能なサブエージェントに関する情報。
| フィールド | 型 | 説明 |
|---|---|---|
name | string | エージェント型識別子(例:"Explore"、"general-purpose") |
description | string | このエージェントをいつ使用するかの説明 |
model | string | undefined | このエージェントが使用するモデルエイリアス。省略すると、親のモデルを継承します |
McpServerStatus
接続された MCP サーバーのステータス。
McpServerStatusConfig
mcpServerStatus() によってレポートされた MCP サーバーの設定。これはすべての MCP サーバートランスポートタイプの共用体です。
McpServerConfig を参照してください。
AccountInfo
認証されたユーザーのアカウント情報。
ModelUsage
結果メッセージで返されるモデルごとの使用統計。costUSD 値はクライアント側の推定です。請求に関する注意事項については、コストと使用状況を追跡 を参照してください。
ConfigScope
NonNullableUsage
すべての nullable フィールドが non-nullable になった Usage のバージョン。
Usage
トークン使用統計。これは @anthropic-ai/sdk の BetaUsage 型です。
BetaServerToolUsage と BetaIterationsUsage は @anthropic-ai/sdk で定義されています。
CallToolResult
MCP ツール結果型(@modelcontextprotocol/sdk/types.js から)。structuredContent は content と一緒に返すことができる JSON オブジェクトで、画像ブロックを含みます。詳細は 構造化データを返す を参照してください。
ThinkingConfig
Claude の思考/推論動作を制御します。非推奨の maxThinkingTokens より優先されます。
display フィールドは、思考テキストが "summarized" または "omitted" で返されるかどうかを制御します。Claude Opus 4.7 以降では、API のデフォルトは "omitted" であるため、"summarized" を設定して thinking ブロックで思考コンテンツを受け取ります。
SpawnedProcess
カスタムプロセススポーニング用のインターフェース(spawnClaudeCodeProcess オプションで使用)。ChildProcess は既にこのインターフェースを満たしています。
SpawnOptions
カスタムスポーン関数に渡されるオプション。
signal フィールドは、スポーン関数にプロセスをティアダウンするタイミングを通知します。Node の spawn() に signal オプションとして渡すか、VM またはコンテナティアダウンハンドラーに渡してください。このシグナルは、Options.abortController が中止した瞬間には発火しません。SDK は最初にプロセスの stdin を閉じて約 2 秒待機し、CLI がクリーンにシャットダウンできるようにしてから、このシグナルを中止します。呼び出し元が中止した瞬間に反応するには、スポーン関数がそのエンクロージングスコープから参照できる独自の Options.abortController.signal をリッスンしてください。McpSetServersResult
setMcpServers() 操作の結果。
RewindFilesResult
rewindFiles() 操作の結果。
SDKStatusMessage
ステータス更新メッセージ(例:圧縮)。
SDKTaskNotificationMessage
バックグラウンドタスクが完了、失敗、または停止したときの通知。バックグラウンドタスクには、run_in_background Bash コマンド、Monitor ウォッチ、バックグラウンドサブエージェントが含まれます。
SDKToolUseSummaryMessage
会話でのツール使用のサマリー。
SDKHookStartedMessage
フックが実行を開始したときに発行されます。
SDKHookProgressMessage
フックが実行中に stdout/stderr 出力で発行されます。
SDKHookResponseMessage
フックが実行を終了したときに発行されます。
SDKToolProgressMessage
ツール実行中に定期的に発行され、進捗を示します。
SDKAuthStatusMessage
認証フロー中に発行されます。
SDKTaskStartedMessage
バックグラウンドタスクが開始したときに発行されます。task_type フィールドは、バックグラウンド Bash コマンドと Monitor ウォッチの場合は "local_bash"、サブエージェントの場合は "local_agent"、またはリモートエージェントの場合は "remote_agent" です。
SDKTaskProgressMessage
サブエージェントまたはバックグラウンドタスクが実行中に定期的に発行されます。summary フィールドは、agentProgressSummaries が有効な場合にのみ入力されます。
SDKTaskUpdatedMessage
バックグラウンドタスクの状態が変更されたときに発行されます。例えば、running から completed に遷移するときなど。patch をローカルタスクマップ(task_id でキー付け)にマージしてください。end_time フィールドは Unix エポックタイムスタンプ(ミリ秒単位)で、Date.now() と比較可能です。
SDKFilesPersistedEvent
ファイルチェックポイントがディスクに永続化されたときに発行されます。
SDKRateLimitEvent
セッションがレート制限に遭遇したときに発行されます。
SDKLocalCommandOutputMessage
ローカルスラッシュコマンド(例:/voice または /usage)からの出力。トランスクリプトでアシスタント形式のテキストとして表示されます。
SDKCommandsChangedMessage
利用可能なコマンドのセットがセッション中に変更されたときに発行されます。例えば、エージェントがサブディレクトリに入るときにスキルが検出されるなど。commands 配列は完全に更新されたリストであるため、キャッシュされたコマンドリストをこのペイロードで置き換えてください。supportedCommands() を再度呼び出すことは同等ではありません。そのメソッドは初期化時にキャプチャされたスナップショットを返し、セッション中の変更を反映しません。
SDKPromptSuggestionMessage
promptSuggestions が有効な場合、各ターン後に発行されます。予測される次のユーザープロンプトを含みます。
AbortError
中止操作のカスタムエラークラス。
サンドボックス設定
SandboxSettings
サンドボックス動作の設定。これを使用して、コマンドサンドボックスを有効にし、ネットワーク制限をプログラムで設定します。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
enabled | boolean | false | コマンド実行のサンドボックスモードを有効にします |
failIfUnavailable | boolean | true | enabled が true でもサンドボックスが起動できない場合、起動時に停止します。false に設定すると、stderr に警告を表示してサンドボックス外実行にフォールバックします |
autoAllowBashIfSandboxed | boolean | true | サンドボックスが有効な場合、bash コマンドを自動承認します |
excludedCommands | string[] | [] | 常にサンドボックス制限をバイパスするコマンド(例:['docker'])。これらはモデルの関与なしに自動的にサンドボックス外で実行されます |
allowUnsandboxedCommands | boolean | true | モデルがサンドボックス外でコマンドを実行するようにリクエストすることを許可します。true の場合、モデルはツール入力で dangerouslyDisableSandbox を設定でき、パーミッションシステム にフォールバックします |
network | SandboxNetworkConfig | undefined | ネットワーク固有のサンドボックス設定 |
filesystem | SandboxFilesystemConfig | undefined | 読み取り/書き込み制限のためのファイルシステム固有のサンドボックス設定 |
ignoreViolations | Record<string, string[]> | undefined | 違反カテゴリを無視するパターンのマップ(例:{ file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | 互換性のための弱いネストされたサンドボックスを有効にします |
ripgrep | { command: string; args?: string[] } | undefined | サンドボックス環境のカスタム ripgrep バイナリ設定 |
サンドボックスはプラットフォームサポートに依存し、Linux では
bubblewrap や socat などのツールが必要です。enabled が true でサンドボックスが起動できない場合、query() は subtype: "error_during_execution" の result メッセージを報告し、理由を errors に含めて停止します。query() がメッセージを生成する前に例外をスローすることを期待するのではなく、そのサブタイプを監視してください。代わりにサンドボックス外で実行するには、failIfUnavailable: false を設定してください。使用例
SandboxNetworkConfig
サンドボックスモードのネットワーク固有の設定。これらの設定は、親の SandboxSettings で enabled が true の場合、サンドボックス化された Bash コマンドに適用されます。WebFetch ツールには適用されず、代わりに パーミッションルール を使用します。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
allowedDomains | string[] | [] | サンドボックス化されたプロセスがアクセスできるドメイン名 |
deniedDomains | string[] | [] | サンドボックス化されたプロセスがアクセスできないドメイン名。allowedDomains より優先されます |
allowManagedDomainsOnly | boolean | false | 管理設定のみ。管理設定 で設定された場合、管理設定からの allowedDomains エントリのみが尊重され、ユーザー、プロジェクト、またはローカル設定からのエントリは無視されます。SDK オプション経由で設定された場合は効果がありません |
allowLocalBinding | boolean | false | プロセスがローカルポートにバインドすることを許可します(例:開発サーバー) |
allowUnixSockets | string[] | [] | プロセスがアクセスできる Unix ソケットパス(例:Docker ソケット) |
allowAllUnixSockets | boolean | false | すべての Unix ソケットへのアクセスを許可します |
httpProxyPort | number | undefined | ネットワークリクエスト用の HTTP プロキシポート |
socksProxyPort | number | undefined | ネットワークリクエスト用の SOCKS プロキシポート |
組み込みサンドボックスプロキシは、リクエストされたホスト名に基づいて
allowedDomains を強制し、TLS トラフィックを終了または検査しないため、ドメインフロンティング などの技術がそれをバイパスする可能性があります。詳細は サンドボックスセキュリティの制限 を参照し、TLS 終了プロキシの設定については セキュアなデプロイ を参照してください。SandboxFilesystemConfig
サンドボックスモードのファイルシステム固有の設定。
| プロパティ | 型 | デフォルト | 説明 |
|---|---|---|---|
allowWrite | string[] | [] | 書き込みアクセスを許可するファイルパターン |
denyWrite | string[] | [] | 書き込みアクセスを拒否するファイルパターン |
denyRead | string[] | [] | 読み取りアクセスを拒否するファイルパターン |
サンドボックス外コマンドのパーミッションフォールバック
allowUnsandboxedCommands が有効な場合、モデルはツール入力で dangerouslyDisableSandbox: true を設定することで、サンドボックス外でコマンドを実行するようにリクエストできます。これらのリクエストは既存のパーミッションシステムにフォールバックします。つまり、canUseTool ハンドラーが呼び出され、カスタム認可ロジックを実装できます。
excludedCommands vs allowUnsandboxedCommands:excludedCommands:常にサンドボックスを自動的にバイパスするコマンドの静的リスト(例:['docker'])。モデルはこれを制御できません。allowUnsandboxedCommands:モデルがツール入力でdangerouslyDisableSandbox: trueを設定することで、実行時にサンドボックス外実行をリクエストすることを許可します。
- モデルリクエストを監査: モデルがサンドボックス外実行をリクエストしたときにログします
- 許可リストを実装: 特定のコマンドのみがサンドボックス外で実行されることを許可します
- 承認ワークフローを追加: 特権操作に明示的な認可を要求します
関連項目
- SDK 概要 - 一般的な SDK 概念
- Python SDK リファレンス - Python SDK ドキュメント
- CLI リファレンス - コマンドラインインターフェース
- 一般的なワークフロー - ステップバイステップガイド