Instalasi
Fungsi
query()
Fungsi utama untuk berinteraksi dengan Claude Code. Membuat async generator yang melakukan streaming pesan saat tiba.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Prompt input sebagai string atau async iterable untuk mode streaming |
options | Options | Objek konfigurasi opsional (lihat tipe Options di bawah) |
Pengembalian
Mengembalikan objekQuery yang memperluas AsyncGenerator<SDKMessage, void> dengan metode tambahan.
tool()
Membuat definisi tool MCP yang type-safe untuk digunakan dengan server MCP SDK.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
name | string | Nama tool |
description | string | Deskripsi tentang apa yang dilakukan tool |
inputSchema | Schema extends ZodRawShape | Skema Zod yang mendefinisikan parameter input tool |
handler | (args, extra) => Promise<CallToolResult> | Fungsi async yang mengeksekusi logika tool |
createSdkMcpServer()
Membuat instance server MCP yang berjalan dalam proses yang sama dengan aplikasi Anda.
Parameter
| Parameter | Tipe | Deskripsi |
|---|---|---|
options.name | string | Nama server MCP |
options.version | string | String versi opsional |
options.tools | Array<SdkMcpToolDefinition> | Array definisi tool yang dibuat dengan tool() |
Tipe
Options
Objek konfigurasi untuk fungsi query().
| Properti | Tipe | Default | Deskripsi |
|---|---|---|---|
abortController | AbortController | new AbortController() | Controller untuk membatalkan operasi |
additionalDirectories | string[] | [] | Direktori tambahan yang dapat diakses Claude |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | Tentukan subagent secara programatis |
allowedTools | string[] | Semua tools | Daftar nama tool yang diizinkan |
canUseTool | CanUseTool | undefined | Fungsi izin kustom untuk penggunaan tool |
continue | boolean | false | Lanjutkan percakapan terbaru |
cwd | string | process.cwd() | Direktori kerja saat ini |
disallowedTools | string[] | [] | Daftar nama tool yang tidak diizinkan |
env | Dict<string> | process.env | Variabel lingkungan |
executable | 'bun' | 'deno' | 'node' | Auto-detected | Runtime JavaScript yang digunakan |
executableArgs | string[] | [] | Argumen untuk diteruskan ke executable |
extraArgs | Record<string, string | null> | {} | Argumen tambahan |
fallbackModel | string | undefined | Model yang digunakan jika model utama gagal |
forkSession | boolean | false | Saat melanjutkan dengan resume, fork ke ID sesi baru alih-alih melanjutkan sesi asli |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Callback hook untuk event |
includePartialMessages | boolean | false | Sertakan event pesan parsial |
maxThinkingTokens | number | undefined | Token maksimal untuk proses thinking |
maxTurns | number | undefined | Putaran percakapan maksimal |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | Konfigurasi server MCP |
model | string | Default dari CLI | Model Claude yang digunakan |
pathToClaudeCodeExecutable | string | Auto-detected | Path ke executable Claude Code |
permissionMode | PermissionMode | 'default' | Mode izin untuk sesi |
permissionPromptToolName | string | undefined | Nama tool MCP untuk prompt izin |
plugins | SdkPluginConfig[] | [] | Muat plugin kustom dari path lokal. Lihat Plugins untuk detail |
resume | string | undefined | ID sesi untuk dilanjutkan |
settingSources | SettingSource[] | [] (tidak ada pengaturan) | Kontrol sumber pengaturan filesystem mana yang akan dimuat. Saat dihilangkan, tidak ada pengaturan yang dimuat. Catatan: Harus menyertakan 'project' untuk memuat file CLAUDE.md |
stderr | (data: string) => void | undefined | Callback untuk output stderr |
strictMcpConfig | boolean | false | Terapkan validasi MCP yang ketat |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (prompt kosong) | Konfigurasi system prompt. Teruskan string untuk prompt kustom, atau { type: 'preset', preset: 'claude_code' } untuk menggunakan system prompt Claude Code. Saat menggunakan bentuk objek preset, tambahkan append untuk memperluas system prompt dengan instruksi tambahan |
Query
Antarmuka yang dikembalikan oleh fungsi query().
Metode
| Metode | Deskripsi |
|---|---|
interrupt() | Mengganggu query (hanya tersedia dalam mode input streaming) |
setPermissionMode() | Mengubah mode izin (hanya tersedia dalam mode input streaming) |
AgentDefinition
Konfigurasi untuk subagent yang didefinisikan secara programatis.
| Field | Diperlukan | Deskripsi |
|---|---|---|
description | Ya | Deskripsi bahasa alami tentang kapan menggunakan agent ini |
tools | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi semua tools |
prompt | Ya | System prompt agent |
model | Tidak | Override model untuk agent ini. Jika dihilangkan, menggunakan model utama |
SettingSource
Mengontrol sumber konfigurasi berbasis filesystem mana yang dimuat pengaturan SDK.
| Nilai | Deskripsi | Lokasi |
|---|---|---|
'user' | Pengaturan pengguna global | ~/.claude/settings.json |
'project' | Pengaturan proyek bersama (version controlled) | .claude/settings.json |
'local' | Pengaturan proyek lokal (gitignored) | .claude/settings.local.json |
Perilaku default
SaatsettingSources dihilangkan atau undefined, SDK tidak memuat pengaturan filesystem apa pun. Ini memberikan isolasi untuk aplikasi SDK.
Mengapa menggunakan settingSources?
Muat semua pengaturan filesystem (perilaku legacy):Preseden pengaturan
Saat beberapa sumber dimuat, pengaturan digabungkan dengan preseden ini (tertinggi ke terendah):- Pengaturan lokal (
.claude/settings.local.json) - Pengaturan proyek (
.claude/settings.json) - Pengaturan pengguna (
~/.claude/settings.json)
agents, allowedTools) selalu menimpa pengaturan filesystem.
PermissionMode
CanUseTool
Tipe fungsi izin kustom untuk mengontrol penggunaan tool.
PermissionResult
Hasil pemeriksaan izin.
McpServerConfig
Konfigurasi untuk server MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
SdkPluginConfig
Konfigurasi untuk memuat plugin di SDK.
| Field | Tipe | Deskripsi |
|---|---|---|
type | 'local' | Harus 'local' (hanya plugin lokal yang didukung saat ini) |
path | string | Path absolut atau relatif ke direktori plugin |
Tipe Pesan
SDKMessage
Tipe union dari semua pesan yang mungkin dikembalikan oleh query.
SDKAssistantMessage
Pesan respons asisten.
SDKUserMessage
Pesan input pengguna.
SDKUserMessageReplay
Pesan pengguna yang diputar ulang dengan UUID yang diperlukan.
SDKResultMessage
Pesan hasil akhir.
SDKSystemMessage
Pesan inisialisasi sistem.
SDKPartialAssistantMessage
Pesan parsial streaming (hanya saat includePartialMessages adalah true).
SDKCompactBoundaryMessage
Pesan yang menunjukkan batas pemadatan percakapan.
SDKPermissionDenial
Informasi tentang penggunaan tool yang ditolak.
Tipe Hook
HookEvent
Event hook yang tersedia.
HookCallback
Tipe fungsi callback hook.
HookCallbackMatcher
Konfigurasi hook dengan matcher opsional.
HookInput
Tipe union dari semua tipe input hook.
BaseHookInput
Antarmuka dasar yang diperluas oleh semua tipe input hook.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Nilai pengembalian hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipe Input Tool
Dokumentasi skema input untuk semua tool Claude Code bawaan. Tipe-tipe ini diekspor dari@anthropic-ai/claude-agent-sdk dan dapat digunakan untuk interaksi tool yang type-safe.
ToolInput
Catatan: Ini adalah tipe dokumentasi-only untuk kejelasan. Ini mewakili union dari semua tipe input tool.
Task
Nama tool:Task
Bash
Nama tool:Bash
BashOutput
Nama tool:BashOutput
Edit
Nama tool:Edit
Read
Nama tool:Read
Write
Nama tool:Write
Glob
Nama tool:Glob
Grep
Nama tool:Grep
KillBash
Nama tool:KillBash
NotebookEdit
Nama tool:NotebookEdit
WebFetch
Nama tool:WebFetch
WebSearch
Nama tool:WebSearch
TodoWrite
Nama tool:TodoWrite
ExitPlanMode
Nama tool:ExitPlanMode
ListMcpResources
Nama tool:ListMcpResources
ReadMcpResource
Nama tool:ReadMcpResource
Tipe Output Tool
Dokumentasi skema output untuk semua tool Claude Code bawaan. Tipe-tipe ini mewakili data respons aktual yang dikembalikan oleh setiap tool.ToolOutput
Catatan: Ini adalah tipe dokumentasi-only untuk kejelasan. Ini mewakili union dari semua tipe output tool.
Task
Nama tool:Task
Bash
Nama tool:Bash
BashOutput
Nama tool:BashOutput
Edit
Nama tool:Edit
Read
Nama tool:Read
Write
Nama tool:Write
Glob
Nama tool:Glob
Grep
Nama tool:Grep
KillBash
Nama tool:KillBash
NotebookEdit
Nama tool:NotebookEdit
WebFetch
Nama tool:WebFetch
WebSearch
Nama tool:WebSearch
TodoWrite
Nama tool:TodoWrite
ExitPlanMode
Nama tool:ExitPlanMode
ListMcpResources
Nama tool:ListMcpResources
ReadMcpResource
Nama tool:ReadMcpResource
Tipe Izin
PermissionUpdate
Operasi untuk memperbarui izin.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Tipe Lainnya
ApiKeySource
ConfigScope
NonNullableUsage
Versi Usage dengan semua field nullable dibuat non-nullable.
Usage
Statistik penggunaan token (dari @anthropic-ai/sdk).
CallToolResult
Tipe hasil tool MCP (dari @modelcontextprotocol/sdk/types.js).
AbortError
Kelas error kustom untuk operasi abort.
Lihat juga
- Ringkasan SDK - Konsep SDK umum
- Referensi SDK Python - Dokumentasi SDK Python
- Referensi CLI - Antarmuka command-line
- Alur kerja umum - Panduan langkah demi langkah