Instalasi
Fungsi
query()
Fungsi utama untuk berinteraksi dengan Claude Code. Membuat generator async yang mengalirkan 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) |
Mengembalikan
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 | Mendefinisikan subagen secara programatis |
allowedTools | string[] | Semua tool | 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' | Terdeteksi otomatis | 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 maksimum untuk proses berpikir |
maxTurns | number | undefined | Giliran percakapan maksimum |
mcpServers | Record<string, [ McpServerConfig](#mcpserverconfig)> | {} | Konfigurasi server MCP |
model | string | Default dari CLI | Model Claude yang digunakan |
pathToClaudeCodeExecutable | string | Terdeteksi otomatis | Path ke executable Claude Code |
permissionMode | PermissionMode | 'default' | Mode izin untuk sesi |
permissionPromptToolName | string | undefined | Nama tool MCP untuk prompt izin |
resume | string | undefined | ID sesi untuk dilanjutkan |
settingSources | SettingSource [] | [] (tidak ada pengaturan) | Kontrol pengaturan filesystem mana yang dimuat. Jika dihilangkan, tidak ada pengaturan yang dimuat |
stderr | (data: string) => void | undefined | Callback untuk output stderr |
strictMcpConfig | boolean | false | Paksa validasi MCP yang ketat |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (prompt kosong) | Konfigurasi system prompt. Berikan string untuk prompt kustom, atau { type: 'preset', preset: 'claude_code' } untuk menggunakan system prompt Claude Code |
Query
Interface 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 subagen yang didefinisikan secara programatis.
Field | Wajib | Deskripsi |
---|---|---|
description | Ya | Deskripsi bahasa alami tentang kapan menggunakan agen ini |
tools | Tidak | Array nama tool yang diizinkan. Jika dihilangkan, mewarisi semua tool |
prompt | Ya | System prompt agen |
model | Tidak | Override model untuk agen ini. Jika dihilangkan, menggunakan model utama |
SettingSource
Mengontrol sumber konfigurasi berbasis filesystem mana yang dimuat pengaturannya oleh SDK.
Nilai | Deskripsi | Lokasi |
---|---|---|
'user' | Pengaturan pengguna global | ~/.claude/settings.json |
'project' | Pengaturan proyek bersama (dikontrol versi) | .claude/settings.json |
'local' | Pengaturan proyek lokal (diabaikan git) | .claude/settings.local.json |
Perilaku default
KetikasettingSources
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):Prioritas pengaturan
Ketika beberapa sumber dimuat, pengaturan digabungkan dengan prioritas ini (tertinggi ke terendah):- Pengaturan lokal (
.claude/settings.local.json
) - Pengaturan proyek (
.claude/settings.json
) - Pengaturan pengguna (
~/.claude/settings.json
)
agents
, allowedTools
) selalu mengganti 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
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 ketika includePartialMessages
adalah true).
SDKCompactBoundaryMessage
Pesan yang menunjukkan batas kompaksi 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
Interface dasar yang diperluas oleh semua tipe input hook.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Nilai kembalian hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipe Input Tool
Dokumentasi skema input untuk semua tool Claude Code bawaan. T ipe-tipe ini diekspor dari@anthropic-ai/claude-agent-sdk
dan dapat digunakan untuk interaksi tool yang type-safe.
ToolInput
Catatan: Ini adalah tipe khusus dokumentasi 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
MultiEdit
Nama tool:MultiEdit
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 khusus dokumentasi 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
MultiEdit
Nama tool:MultiEdit
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
- Ikhtisar SDK - Konsep SDK umum
- Referensi Python SDK - Dokumentasi Python SDK
- Referensi CLI - Interface command-line
- Alur kerja umum - Panduan langkah demi langkah