Claude Code SDK
TypeScript
Claude Code TypeScript SDKでカスタムAIエージェントを構築する
前提条件
- Node.js 18+
インストール
NPMから@anthropic-ai/claude-code
をインストールします:
TypeScript SDKのソースコードを表示するには、NPMの@anthropic-ai/claude-code
ページをご覧ください。
基本的な使用方法
TypeScript SDKを通じた主要なインターフェースはquery
関数で、メッセージが到着するとそれらをストリーミングする非同期イテレータを返します:
設定オプション
引数 | 型 | 説明 | デフォルト |
---|---|---|---|
abortController | AbortController | 操作をキャンセルするためのアボートコントローラー | new AbortController() |
additionalDirectories | string[] | セッションに含める追加ディレクトリ | undefined |
allowedTools | string[] | Claudeが使用を許可されているツールのリスト | デフォルトですべてのツールが有効 |
appendSystemPrompt | string | デフォルトのシステムプロンプトに追加するテキスト | undefined |
canUseTool | CanUseTool | ツール使用のためのカスタム許可関数 | undefined |
continue | boolean | 最新のセッションを継続する | false |
customSystemPrompt | string | デフォルトのシステムプロンプトを完全に置き換える | undefined |
cwd | string | 現在の作業ディレクトリ | process.cwd() |
disallowedTools | string[] | Claudeが使用を許可されていないツールのリスト | undefined |
env | Dict<string> | 設定する環境変数 | undefined |
executable | 'bun' | 'deno' | 'node' | 使用するJavaScriptランタイム | Node.jsで実行時はnode 、Bunで実行時はbun |
executableArgs | string[] | 実行可能ファイルに渡す引数 | [] |
fallbackModel | string | プライマリモデルが失敗した場合に使用するモデル | undefined |
maxThinkingTokens | number | Claudeの思考プロセスの最大トークン数 | undefined |
maxTurns | number | 会話ターンの最大数 | undefined |
mcpServers | Record<string, McpServerConfig> | MCPサーバー設定 | undefined |
model | string | 使用するClaudeモデル | CLI設定からのデフォルトを使用 |
pathToClaudeCodeExecutable | string | Claude Code実行可能ファイルへのパス | @anthropic-ai/claude-code に付属する実行可能ファイル |
permissionMode | PermissionMode | セッションの許可モード | "default" (オプション: "default" , "acceptEdits" , "bypassPermissions" , "plan" ) |
permissionPromptToolName | string | 許可プロンプト用MCPツールの名前 | undefined |
resume | string | 再開するセッションID | undefined |
stderr | (data: string) => void | stderr出力のコールバック | undefined |
strictMcpConfig | boolean | 厳密なMCP設定検証を強制する | undefined |
マルチターン会話
マルチターン会話には2つのオプションがあります。
レスポンスを生成して再開するか、メッセージの配列に対して非同期/ジェネレータを受け入れるストリーミング入力モードを使用できます。現在のところ、ストリーミング入力モードは、メッセージ経由で画像を添付する唯一の方法です。
セッション管理での再開
ストリーミング入力モード
ストリーミング入力モードでは、単一の文字列の代わりに非同期イテラブルとしてメッセージを提供できます。これにより、マルチターン会話、画像添付、動的メッセージ生成が可能になります:
画像付きストリーミング入力
ストリーミング入力モードは、メッセージ経由で画像を添付する唯一の方法です:
カスタムシステムプロンプト
システムプロンプトは、エージェントの役割、専門知識、動作を定義します:
MCP経由のカスタムツール
Model Context Protocol (MCP)により、エージェントにカスタムツールと機能を提供できます:
MCPを使用したカスタムツール
MCPを使用してカスタムツールを実装できます。例えば、カスタム許可処理ツールを作成する方法は次のとおりです。
出力形式
テキスト出力(デフォルト)
JSON出力
入力形式
エージェント統合例
SREインシデント対応エージェント
自動セキュリティレビュー
マルチターン法務アシスタント
メッセージスキーマ
JSON APIから返されるメッセージは、以下のスキーマに従って厳密に型付けされています:
追加のサポート型:
Message
、MessageParam
、Usage
型は、Anthropic TypeScript SDKで利用できます。
関連リソース
- CLI使用方法とコントロール - 完全なCLIドキュメント
- GitHub Actions統合 - ClaudeでGitHubワークフローを自動化
- 一般的なワークフロー - 一般的な使用例のステップバイステップガイド