Use this file to discover all available pages before exploring further.
Starting June 15, 2026, Agent SDK and claude -p usage on subscription plans will draw from a new monthly Agent SDK credit, separate from your interactive usage limits. See Use the Claude Agent SDK with your Claude plan for details.
Bangun agen AI yang secara mandiri membaca file, menjalankan perintah, mencari web, mengedit kode, dan banyak lagi. Agent SDK memberi Anda alat yang sama, loop agen, dan manajemen konteks yang mendukung Claude Code, dapat diprogram dalam Python dan TypeScript.
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptionsasync def main(): async for message in query( prompt="Find and fix the bug in auth.py", options=ClaudeAgentOptions(allowed_tools=["Read", "Edit", "Bash"]), ): print(message) # Claude reads the file, finds the bug, edits itasyncio.run(main())
Agent SDK mencakup alat bawaan untuk membaca file, menjalankan perintah, dan mengedit kode, sehingga agen Anda dapat mulai bekerja segera tanpa Anda perlu mengimplementasikan eksekusi alat. Selami panduan cepat atau jelajahi agen nyata yang dibangun dengan SDK:
TypeScript SDK menggabungkan biner Claude Code asli untuk platform Anda sebagai dependensi opsional, jadi Anda tidak perlu menginstal Claude Code secara terpisah.
2
Atur kunci API Anda
Dapatkan kunci API dari Konsol, kemudian atur sebagai variabel lingkungan:
export ANTHROPIC_API_KEY=your-api-key
SDK juga mendukung autentikasi melalui penyedia API pihak ketiga:
Amazon Bedrock: atur variabel lingkungan CLAUDE_CODE_USE_BEDROCK=1 dan konfigurasi kredensial AWS
Claude Platform on AWS: atur CLAUDE_CODE_USE_ANTHROPIC_AWS=1 dan ANTHROPIC_AWS_WORKSPACE_ID, kemudian konfigurasi kredensial AWS
Google Vertex AI: atur variabel lingkungan CLAUDE_CODE_USE_VERTEX=1 dan konfigurasi kredensial Google Cloud
Microsoft Azure: atur variabel lingkungan CLAUDE_CODE_USE_FOUNDRY=1 dan konfigurasi kredensial Azure
Kecuali sebelumnya disetujui, Anthropic tidak mengizinkan pengembang pihak ketiga untuk menawarkan login claude.ai atau batas laju untuk produk mereka, termasuk agen yang dibangun di Claude Agent SDK. Silakan gunakan metode autentikasi kunci API yang dijelaskan dalam dokumen ini.
3
Jalankan agen pertama Anda
Contoh ini membuat agen yang mencantumkan file di direktori saat ini menggunakan alat bawaan.
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptionsasync def main(): async for message in query( prompt="What files are in this directory?", options=ClaudeAgentOptions(allowed_tools=["Bash", "Glob"]), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Siap untuk membangun? Ikuti Panduan Cepat untuk membuat agen yang menemukan dan memperbaiki bug dalam hitungan menit.
Tanyakan pertanyaan klarifikasi kepada pengguna dengan opsi pilihan ganda
Contoh ini membuat agen yang mencari basis kode Anda untuk komentar TODO:
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptionsasync def main(): async for message in query( prompt="Find all TODO comments and create a summary", options=ClaudeAgentOptions(allowed_tools=["Read", "Glob", "Grep"]), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Jalankan kode khusus pada titik-titik kunci dalam siklus hidup agen. SDK hooks menggunakan fungsi callback untuk memvalidasi, mencatat, memblokir, atau mengubah perilaku agen.Hooks yang tersedia:PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd, UserPromptSubmit, dan banyak lagi.Contoh ini mencatat semua perubahan file ke file audit:
import asynciofrom datetime import datetimefrom claude_agent_sdk import query, ClaudeAgentOptions, HookMatcherasync def log_file_change(input_data, tool_use_id, context): file_path = input_data.get("tool_input", {}).get("file_path", "unknown") with open("./audit.log", "a") as f: f.write(f"{datetime.now()}: modified {file_path}\n") return {}async def main(): async for message in query( prompt="Refactor utils.py to improve readability", options=ClaudeAgentOptions( permission_mode="acceptEdits", hooks={ "PostToolUse": [ HookMatcher(matcher="Edit|Write", hooks=[log_file_change]) ] }, ), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Spawn agen khusus untuk menangani subtask yang terfokus. Agen utama Anda mendelegasikan pekerjaan, dan subagen melaporkan kembali dengan hasil.Tentukan agen khusus dengan instruksi khusus. Sertakan Agent dalam allowedTools karena subagen dipanggil melalui alat Agent:
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptions, AgentDefinitionasync def main(): async for message in query( prompt="Use the code-reviewer agent to review this codebase", options=ClaudeAgentOptions( allowed_tools=["Read", "Glob", "Grep", "Agent"], agents={ "code-reviewer": AgentDefinition( description="Expert code reviewer for quality and security reviews.", prompt="Analyze code quality and suggest improvements.", tools=["Read", "Glob", "Grep"], ) }, ), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Pesan dari dalam konteks subagen mencakup bidang parent_tool_use_id, memungkinkan Anda melacak pesan mana yang termasuk dalam eksekusi subagen mana.Pelajari lebih lanjut tentang subagents →
Terhubung ke sistem eksternal melalui Model Context Protocol: database, browser, API, dan ratusan lainnya.Contoh ini menghubungkan server Playwright MCP untuk memberikan agen Anda kemampuan otomasi browser:
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptionsasync def main(): async for message in query( prompt="Open example.com and describe what you see", options=ClaudeAgentOptions( mcp_servers={ "playwright": {"command": "npx", "args": ["@playwright/mcp@latest"]} } ), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Kontrol dengan tepat alat mana yang dapat digunakan agen Anda. Izinkan operasi yang aman, blokir yang berbahaya, atau minta persetujuan untuk tindakan sensitif.
Contoh ini membuat agen read-only yang dapat menganalisis tetapi tidak memodifikasi kode. allowed_tools pra-menyetujui Read, Glob, dan Grep.
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptionsasync def main(): async for message in query( prompt="Review this code for best practices", options=ClaudeAgentOptions( allowed_tools=["Read", "Glob", "Grep"], ), ): if hasattr(message, "result"): print(message.result)asyncio.run(main())
Pertahankan konteks di seluruh pertukaran berganda. Claude mengingat file yang dibaca, analisis yang dilakukan, dan riwayat percakapan. Lanjutkan sesi nanti, atau fork mereka untuk menjelajahi pendekatan berbeda.Contoh ini menangkap ID sesi dari kueri pertama, kemudian melanjutkan untuk terus dengan konteks penuh:
import asynciofrom claude_agent_sdk import query, ClaudeAgentOptions, SystemMessage, ResultMessageasync def main(): session_id = None # First query: capture the session ID async for message in query( prompt="Read the authentication module", options=ClaudeAgentOptions(allowed_tools=["Read", "Glob"]), ): if isinstance(message, SystemMessage) and message.subtype == "init": session_id = message.data["session_id"] # Resume with full context from the first query async for message in query( prompt="Now find all places that call it", # "it" = auth module options=ClaudeAgentOptions(resume=session_id), ): if isinstance(message, ResultMessage): print(message.result)asyncio.run(main())
SDK juga mendukung konfigurasi berbasis filesystem Claude Code. Dengan opsi default, SDK memuat ini dari .claude/ di direktori kerja Anda dan ~/.claude/. Untuk membatasi sumber mana yang dimuat, atur setting_sources (Python) atau settingSources (TypeScript) dalam opsi Anda.
Platform Claude menawarkan berbagai cara untuk membangun dengan Claude. Berikut cara Agent SDK cocok:
Agent SDK vs Client SDK
Agent SDK vs Claude Code CLI
Agent SDK vs Managed Agents
Anthropic Client SDK memberi Anda akses API langsung: Anda mengirim prompt dan mengimplementasikan eksekusi alat sendiri. Agent SDK memberi Anda Claude dengan eksekusi alat bawaan.Dengan Client SDK, Anda mengimplementasikan loop alat. Dengan Agent SDK, Claude menanganinya:
# Client SDK: You implement the tool loopresponse = client.messages.create(...)while response.stop_reason == "tool_use": result = your_tool_executor(response.tool_use) response = client.messages.create(tool_result=result, **params)# Agent SDK: Claude handles tools autonomouslyasync for message in query(prompt="Fix the bug in auth.py"): print(message)
Kemampuan yang sama, antarmuka berbeda:
Kasus penggunaan
Pilihan terbaik
Pengembangan interaktif
CLI
Pipeline CI/CD
SDK
Aplikasi khusus
SDK
Tugas sekali jalan
CLI
Otomasi produksi
SDK
Banyak tim menggunakan keduanya: CLI untuk pengembangan harian, SDK untuk produksi. Alur kerja diterjemahkan langsung di antara keduanya.
Managed Agents adalah REST API yang dihosting: Anthropic menjalankan agen dan sandbox, dan aplikasi Anda mengirim acara dan streaming kembali hasil. Agent SDK adalah perpustakaan yang menjalankan loop agen di dalam proses Anda sendiri.
Agent SDK
Managed Agents
Berjalan di
Proses Anda, infrastruktur Anda
Infrastruktur yang dikelola Anthropic
Antarmuka
Perpustakaan Python atau TypeScript
REST API
Agen bekerja pada
File di infrastruktur Anda
Sandbox yang dikelola per sesi
Status sesi
JSONL di sistem file Anda
Log acara yang dihosting Anthropic
Alat khusus
Fungsi Python atau TypeScript dalam proses
Claude memicu alat; Anda menjalankan dan mengembalikan hasil
Terbaik untuk
Prototyping lokal, agen yang bekerja langsung pada sistem file dan layanan Anda
Agen produksi tanpa mengoperasikan infrastruktur sandbox atau sesi, sesi yang berjalan lama dan asinkron
Jalur umum adalah membuat prototipe dengan Agent SDK secara lokal, kemudian pindah ke Managed Agents untuk produksi.
Untuk mitra yang mengintegrasikan Claude Agent SDK, penggunaan branding Claude bersifat opsional. Saat mereferensikan Claude dalam produk Anda:Diizinkan:
“Claude Agent” (lebih disukai untuk menu dropdown)
“Claude” (ketika sudah dalam menu berlabel “Agents”)
” Powered by Claude” (jika Anda memiliki nama agen yang ada)
Tidak diizinkan:
“Claude Code” atau “Claude Code Agent”
Elemen visual atau ASCII art bermerek Claude Code yang meniru Claude Code
Produk Anda harus mempertahankan branding sendiri dan tidak boleh terlihat seperti Claude Code atau produk Anthropic apa pun. Untuk pertanyaan tentang kepatuhan branding, hubungi tim penjualan Anthropic.
Penggunaan Claude Agent SDK diatur oleh Persyaratan Layanan Komersial Anthropic, termasuk ketika Anda menggunakannya untuk memberdayakan produk dan layanan yang Anda buat tersedia untuk pelanggan dan pengguna akhir Anda sendiri, kecuali sejauh komponen atau dependensi tertentu dicakup oleh lisensi berbeda seperti yang ditunjukkan dalam file LICENSE komponen tersebut.