Bangun agen AI kustom dengan Claude Code SDK
Install SDK
@anthropic-ai/claude-code
dari NPM:Set API key Anda
ANTHROPIC_API_KEY
:Buat agen pertama Anda
Jalankan agen
@anthropic-ai/claude-code
dari NPMclaude
. Gunakan flag --print
(atau -p
) untuk menjalankan dalam mode non-interaktif dan mencetak hasil akhir:Flag | Deskripsi | Contoh |
---|---|---|
--print , -p | Jalankan dalam mode non-interaktif | claude -p "query" |
--output-format | Tentukan format output (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Lanjutkan percakapan berdasarkan ID sesi | claude --resume abc123 |
--continue , -c | Lanjutkan percakapan terbaru | claude --continue |
--verbose | Aktifkan logging verbose | claude --verbose |
--append-system-prompt | Tambahkan ke system prompt (hanya dengan --print ) | claude --append-system-prompt "Instruksi kustom" |
--allowedTools | Daftar tool yang diizinkan dipisahkan spasi, atau string daftar tool yang diizinkan dipisahkan koma | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Daftar tool yang ditolak dipisahkan spasi, atau string daftar tool yang ditolak dipisahkan koma | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Muat server MCP dari file JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Tool MCP untuk menangani prompt izin (hanya dengan --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, seperti yang ditunjukkan dalam Quick start.
CLAUDE_CODE_USE_BEDROCK=1
dan konfigurasi kredensial AWSCLAUDE_CODE_USE_VERTEX=1
dan konfigurasi kredensial Google Cloud--allowedTools
. Nama tool MCP mengikuti pola mcp__<serverName>__<toolName>
di mana:serverName
adalah kunci dari file konfigurasi MCP AndatoolName
adalah tool spesifik yang disediakan oleh server tersebutmcp__<serverName>
), semua tool dari server tersebut akan diizinkan.Pola glob (misalnya, mcp__go*
) tidak didukung.--permission-prompt-tool
untuk memasukkan tool MCP yang akan kami gunakan untuk memeriksa apakah pengguna memberikan izin kepada model untuk memanggil tool tertentu. Ketika model memanggil tool, hal berikut terjadi:
--allowedTools
dan --disallowedTools
yang diteruskan ke SDK; jika salah satu dari ini mengizinkan atau menolak panggilan tool, kami melanjutkan dengan panggilan tool--permission-prompt-tool
--permission-prompt-tool
diteruskan nama tool dan input, dan harus mengembalikan payload yang di-JSON-stringify dengan hasilnya. Payload harus salah satu dari:
updatedInput
untuk memberi tahu model bahwa prompt izin memutasi inputnya; jika tidak, set updatedInput
ke input asli, seperti dalam contoh di atas. Misalnya, jika tool menunjukkan diff edit file kepada pengguna dan memungkinkan mereka mengedit diff secara manual, tool prompt izin harus mengembalikan edit yang diperbarui tersebut.init
awal, diikuti oleh daftar pesan pengguna dan asisten, diikuti oleh pesan sistem result
akhir dengan statistik. Setiap pesan dipancarkan sebagai objek JSON terpisah.
Message
dan MessageParam
tersedia di SDK Anthropic. Misalnya, lihat SDK Anthropic TypeScript dan Python.
stdin
di mana setiap pesan mewakili turn pengguna. Ini memungkinkan beberapa turn percakapan tanpa meluncurkan ulang binary claude
dan memungkinkan memberikan panduan kepada model s aat sedang memproses permintaan.
Setiap pesan adalah objek JSON ‘User message’, mengikuti format yang sama dengan skema pesan output. Pesan diformat menggunakan format jsonl di mana setiap baris input adalah objek JSON lengkap. Input JSON streaming memerlukan -p
dan --output-format stream-json
.
Saat ini ini terbatas pada pesan pengguna khusus teks.