
Membangun Agen Otonom dengan Claude Code SDK: Panduan Praktis untuk Developer
Library resmi yang mengubah mesin agen Claude Code menjadi building block yang dapat diprogram untuk CI, automation, dan sistem multi-agent.
Membangun Agen Otonom dengan Claude Code SDK: Panduan Praktis untuk Developer
Claude Code SDK — yang secara resmi disebut Agent SDK — adalah library Python dan TypeScript yang memungkinkan Anda menjalankan mesin agentic Claude Code secara penuh secara programatik: tanpa terminal, tanpa manusia di keyboard, cukup aplikasi Anda memanggil fungsi async query() dan menerima aliran (stream) setiap langkah kerja agen tersebut. Jika Anda pernah menggunakan Claude Code secara interaktif, SDK ini memberikan loop read-files / edit-code / run-commands yang sama, sebagai library komposabel yang dapat Anda sematkan dalam pipeline CI, bot code-review, orkestrator multi-agen, atau layanan backend apa pun.
Apa Itu Agent SDK — dan Mengapa Ini Ada
Claude Code sudah dikenal sebagai alat terminal. Anda mengetik prompt, agen bernalar terhadap codebase Anda, memanggil tool bawaan (Read, Edit, Bash, Grep, dan lainnya), dan menuliskan hasilnya kembali kepada Anda. Namun begitu Anda ingin mengotomatiskan loop tersebut — memicu review pada setiap pull request, menyebarkannya ke beberapa sub-agen khusus, atau membangun produk di atasnya — CLI interaktif menjadi abstraksi yang kurang tepat. Anda membutuhkan library.
Agent SDK mengisi kekosongan tersebut. Menurut dokumentasi resmi Anthropic, SDK ini menyediakan "tool, agent loop, dan context management yang sama seperti yang menggerakkan Claude Code, yang dapat diprogram dalam Python dan TypeScript." Ini bukan bahasa marketing — ini adalah arsitektur yang sebenarnya. SDK menjalankan binary CLI Claude Code sebagai subprocess yang terkelola, berkomunikasi dengannya melalui stdio, dan menampilkan semuanya sebagai aliran async dari objek pesan bertipe yang dapat dikonsumsi dan direspons oleh kode Anda.
Perbedaan ini penting karena beberapa alasan:
Mesin yang sama, antarmuka yang berbeda. Ketika Anda beralih dari CLI ke SDK, Anda tidak berpindah ke tool yang lebih rendah atau lebih sederhana. SDK mewarisi semua kemampuan dalam CLI — konektivitas MCP server, lifecycle hooks, file skill, memori CLAUDE.md, delegasi sub-agen, dan seluruh jajaran tool.
SDK menjalankan eksekusi tool untuk Anda. Jika Anda menggunakan Anthropic Client SDK (package anthropic Python/JS tingkat rendah) dan ingin Claude memanggil tool, Anda harus mengimplementasikan tool loop sendiri: panggil API, deteksi respons tool use, eksekusi tool, kirimkan hasilnya kembali, ulangi sampai Claude berhenti. Agent SDK meringkas seluruh loop tersebut menjadi satu async for message in query(...) — Claude menangani tool mana yang dipanggil, mengeksekusinya di dalam subprocess-nya, dan terus melakukan loop hingga tugas selesai. Anda hanya perlu mengonsumsi stream tersebut.
Dirancang headless. Prompt izin CLI — "izinkan perintah bash ini?" — akan blocking menunggu input manusia. SDK menggantinya dengan opsi permissionMode dan sejumlah mode izin — misalnya acceptEdits untuk menyetujui secara otomatis edit file, dan bypassPermissions untuk menjalankan segala sesuatu tanpa prompt di lingkungan CI yang sandboxed — plus callback approval programatik untuk flow kustom. Nama dan perilaku mode yang tepat didokumentasikan dalam referensi SDK Anthropic (periksa daftar terkininya), namun efeknya sama: otomasi Anda tidak akan pernah macet menunggu penekanan tombol.
Mesin Claude Code yang sama, dua antarmuka: CLI interaktif untuk pekerjaan human-in-the-loop, Agent SDK untuk otomasi programatik dan headless di mana aplikasi Anda mengontrol prompt dan mode izin menggantikan dialog approval.
Menginstal SDK
Anthropic merilis dua package:
- TypeScript:
@anthropic-ai/claude-agent-sdk(npm) - Python:
claude-agent-sdk(pip; membutuhkan Python 3.10+)
Package TypeScript menyertakan binary Claude Code native untuk platform Anda, sehingga tidak diperlukan instalasi CLI terpisah. Autentikasi dilakukan melalui variabel environment ANTHROPIC_API_KEY yang diperoleh dari Anthropic Console. SDK ini juga mendukung Amazon Bedrock, Google Vertex AI, dan Microsoft Azure AI Foundry — lihat dokumentasi Anthropic untuk pola variabel environment yang relevan.
Konsep Inti
Memahami empat konsep berikut mencakup sebagian besar penggunaan SDK di dunia nyata.
1. Fungsi query() dan Aliran Pesan Async
Setiap interaksi SDK dimulai dengan query(). Anda memasukkan string prompt dan objek options; sebagai balasannya Anda mendapatkan iterator async yang menghasilkan objek pesan bertipe saat agen bekerja. Loop akan berakhir ketika agen selesai atau mengalami error.
Pesan yang Anda terima meliputi:
- AssistantMessage — teks penalaran Claude dan deskripsi tool call
- ToolResultMessage — output dari setiap eksekusi tool
- ResultMessage — hasil akhir, dengan field
subtypeyang menunjukkan sukses atau gagal - SystemMessage — event lifecycle sesi (subtype
initmembawasession_id)
Dalam sebagian besar kode produksi, Anda melakukan filter untuk ResultMessage untuk mengekstrak output akhir dan secara opsional mencatat blok AssistantMessage untuk melacak apa yang dilakukan agen.
2. Tool dan allowedTools
Jajaran tool bawaan SDK ini dipetakan langsung ke kemampuan Claude Code:
| Tool | Fungsinya |
|---|---|
| Read | Membaca file apa pun di working directory |
| Write | Membuat file baru |
| Edit | Melakukan edit yang presisi pada file yang sudah ada |
| Bash | Menjalankan perintah terminal, operasi git, skrip |
| Glob | Mencari file berdasarkan pola (**/*.ts, src/**/*.py) |
| Grep | Mencari isi file dengan regex |
| WebSearch | Mencari di web |
| WebFetch | Mengambil dan mengurai halaman web |
| AskUserQuestion | Mengajukan pertanyaan klarifikasi kepada pengguna (flow interaktif) |
| Agent | Menjalankan sub-agen yang didefinisikan dalam options Anda |
Opsi allowedTools menyetujui terlebih dahulu subset dari tool-tool ini, secara efektif memberikan izin kepada agen untuk memanggilnya tanpa gate tambahan apa pun. Agen audit read-only mungkin hanya mencantumkan ["Read", "Glob", "Grep"]; otomasi penuh mungkin menyertakan ["Read", "Edit", "Bash", "Glob", "Grep"].
3. Mode Izin
Mode izin mengontrol apa yang terjadi ketika agen ingin menggunakan tool yang belum disetujui terlebih dahulu di allowedTools:
acceptEdits— secara otomatis menyetujui edit file dan operasi filesystem umum; meminta prompt untuk hal lainnya. Terbaik untuk workflow pengembangan yang tepercaya.dontAsk— secara diam-diam menolak apa pun yang tidak ada diallowedTools. Terbaik untuk agen headless yang terkunci ketat.bypassPermissions— menjalankan setiap tool tanpa gating. Gunakan hanya di dalam lingkungan yang sandboxed.
SDK ini juga menyediakan callback approval programatik agar Anda dapat mengimplementasikan logika approval yang sepenuhnya kustom, dan nama mode yang tersedia dapat bertambah dari waktu ke waktu — konsultasikan referensi SDK Anthropic untuk daftar terkini yang otoritatif dan perilaku pasti masing-masing. Di CI, Anda hampir selalu akan menggunakan konfigurasi yang dibatasi ketat dan deny-by-default, atau bypassPermissions di dalam container sandbox yang Anda kontrol sendiri.
4. Sesi, Resumption, dan Context
Setiap panggilan ke query() membuat (atau melanjutkan) sebuah sesi. session_id dari sesi tersebut tiba di SystemMessage pertama dengan subtype === "init". Anda dapat menangkapnya dan meneruskannya sebagai resume: sessionId pada panggilan berikutnya untuk melanjutkan tepat dari titik di mana percakapan ditinggalkan — pembacaan file yang sama, riwayat penalaran yang sama, context window yang sama.
Begitulah cara Anda membangun agen multi-turn: satu panggilan query() menganalisis suatu modul, menangkap session_id, dan panggilan query() kedua (dengan resume) merujuk pada "itu" atau "file yang baru saja Anda baca" tanpa perlu menjelaskan ulang. Transkrip sesi ditulis ke disk lokal secara default; untuk produksi, Anda dapat melampirkan adapter SessionStore yang didukung S3, Redis, atau Postgres agar sesi tetap bertahan meski container di-restart.
Pola Build 1: Bot Code-Review CI
Ini adalah use case kanonik "otomasi headless". Pada setiap pull request, job CI melakukan checkout branch, menjalankan agen yang membaca file yang berubah, dan memposting komentar review.
Alur kerjanya:
- Event PR memicu workflow GitHub Actions (atau job GitLab CI).
- Runner melakukan checkout branch dan menjalankan skrip review Anda.
- Skrip Anda memanggil
query()dengan prompt review,allowedTools: ["Read", "Glob", "Grep", "Bash"], danpermissionMode: "dontAsk". - Claude membaca diff, mencari pola, bernalar terhadap temuannya.
ResultMessagemembawa teks review; skrip Anda memposting hasilnya ke PR melalui GitHub API.
Pilihan desain kunci di sini adalah menggunakan dontAsk dengan daftar tool read-only. Agen tidak dapat menulis file atau melakukan network call di luar apa yang diizinkan oleh tool, sehingga job CI Anda tidak dapat secara tidak sengaja melakukan merge commit atau memanggil API eksternal. Cap maxTurns (diatur dalam options) membatasi kedalaman agen sehingga loop yang tidak terkendali tidak menghabiskan budget.
Untuk arsitektur bergambar dari alur ini, lihat diagram di bawah.
Pipeline code-review yang sepenuhnya otomatis. Agen SDK berjalan di dalam container CI dengan daftar tool read-only; temuan mengalir kembali sebagai ResultMessage dan kode Anda memposting hasilnya sebagai komentar PR GitHub. Agen ini tidak pernah menulis file, tidak pernah keluar dari container.
Anda dapat memperluas pola ini dengan hooks — fitur SDK yang dibahas dalam pembahasan mendalam Claude Code hooks kami — untuk mencatat setiap tool call ke file audit, memblokir path file tertentu agar tidak dibaca, atau mengeluarkan telemetri terstruktur bersama review.
Pola Build 2: Chain Multi-Agen
Opsi agents pada SDK memungkinkan Anda mendefinisikan sub-agen bernama, masing-masing dengan system prompt, daftar tool, dan izinnya sendiri. Agen utama Anda mendelegasikan pekerjaan kepada mereka melalui tool Agent bawaan. Pesan sub-agen menyertakan field parent_tool_use_id sehingga Anda dapat melacak persis delegasi mana yang menghasilkan setiap bagian output.
Contoh praktisnya: chain agen security-audit di mana sub-agen code-scanner menemukan potensi vulnerability menggunakan Grep dan Glob, sub-agen dependency-checker menjalankan Bash untuk mengueri metadata package Anda, dan agen koordinator menyintesis kedua laporan tersebut menjadi satu audit terpadu. Setiap sub-agen memiliki akses tool minimum yang dibutuhkan untuk perannya, membatasi blast radius jika sub-agen berhalusinasi tentang perintah yang berbahaya.
Chain multi-agen bekerja dengan baik untuk tugas yang secara alami dapat didekomposisi: satu agen per concern, masing-masing dengan daftar tool yang ketat, diorkestrasi oleh koordinator yang hanya membutuhkan Read dan Agent. Untuk pandangan yang lebih luas tentang bagaimana arsitektur multi-agen berpadu dengan fitur Claude Code seperti memori CLAUDE.md dan file skill, lihat panduan harness engineering kami.
Pola Build 3: Pipeline Otomasi Headless
Di luar code review, SDK ini unggul untuk otomasi berulang apa pun di mana agen menjadi satu langkah dalam pipeline yang lebih besar:
Audit dependency malam hari. Job cron memanggil query() dengan prompt untuk memeriksa package yang sudah usang, menjalankan security scanner, dan menghasilkan laporan terstruktur. Tool Bash menjalankan npm audit atau pip check; Read memeriksa lock file. ResultMessage memberi masukan untuk notifikasi Slack.
Translation dan i18n saat PR merge. Ketika sebuah PR di-merge, webhook memicu agen yang membaca file string yang berubah dengan Glob dan Read, menghasilkan versi terjemahan dengan Write, dan membuka PR baru melalui Bash (menjalankan gh pr create).
Deteksi anomali log. Alirkan output log terbaru ke prompt query(). Agen membaca file konteks tambahan jika diperlukan, bernalar terhadap log, dan mengeluarkan temuan terstruktur. Tidak dibutuhkan penulisan file; daftar tool read-only sudah cukup.
Sinkronisasi dokumentasi. Setelah PR di-merge, agen membaca file sumber yang diperbarui dan menulis ulang halaman dokumentasi terkait, lalu commit perubahannya. permissionMode: "acceptEdits" menangani penulisan file tanpa prompt.
Kesamaan di antara semuanya: query() menggantikan integrasi LLM yang dibuat khusus. Anda tidak perlu mengimplementasikan tool loop, mengelola context window secara manual, atau mengurai output model untuk memutuskan apa yang harus dieksekusi selanjutnya. Agen menangani orkestrasi; Anda cukup menyediakan prompt dan mengonsumsi hasilnya.
Contoh Ilustratif yang Diterapkan: Agen Bug-Fixing
Quickstart resmi mendemonstrasikan pola ini secara jelas (kode di bawah mengikuti API yang didokumentasikan — verifikasi sintaks pastinya di dokumentasi quickstart Anthropic):
Python Ilustratif (verifikasi API pasti di dokumentasi resmi):
# Illustrative — confirm exact import paths and option names in official docs
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
async def run_bug_fixer(file_path: str):
async for message in query(
prompt=f"Review {file_path} for bugs that would cause crashes. Fix any issues.",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"],
permission_mode="acceptEdits",
),
):
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text)
elif isinstance(message, ResultMessage):
print(f"Completed: {message.subtype}")
asyncio.run(run_bug_fixer("src/utils.py"))TypeScript Ilustratif (verifikasi API pasti di dokumentasi resmi):
// Illustrative — confirm exact import paths and option names in official docs
import { query } from "@anthropic-ai/claude-agent-sdk";
for await (const message of query({
prompt: "Review src/utils.ts for crash-causing bugs and fix them.",
options: {
allowedTools: ["Read", "Edit", "Glob"],
permissionMode: "acceptEdits",
},
})) {
if (message.type === "assistant" && message.message?.content) {
for (const block of message.message.content) {
if ("text" in block) console.log(block.text);
}
}
if (message.type === "result") console.log("Done:", message.subtype);
}Apa yang terjadi saat ini dijalankan: Claude membaca utils.py (atau .ts) menggunakan tool Read, bernalar terhadap kode tersebut, mengidentifikasi edge case, lalu memanggil Edit untuk menyisipkan penanganan defensif. Anda melihat penalaran dan tool call mengalir sebagai objek AssistantMessage; ResultMessage akhir menandakan penyelesaian. Seluruh agent loop — termasuk membaca ulang file untuk memverifikasi edit — dikelola oleh SDK.
Inilah yang membuat SDK berbeda dari memanggil Anthropic models API secara langsung: Anda tidak perlu mengimplementasikan layer eksekusi tool. Claude memutuskan kapan memanggil Read, memanggilnya, mendapatkan isi file kembali, dan terus bernalar. Loop-nya otonom.
Izin, Sandboxing, dan Keamanan Produksi
Menjalankan agen otonom di produksi mengharuskan pemikiran yang cermat tentang apa yang dapat mereka sentuh. SDK menyediakan beberapa kontrol berjenjang.
Tool scoping adalah garis pertahanan pertama. Jika agen tidak membutuhkan Bash, jangan masukkan itu di allowedTools. Agen yang hanya memiliki ["Read", "Glob", "Grep"] tidak dapat mengubah file, menjalankan perintah shell, atau melakukan network call terlepas dari apa yang dikatakan prompt-nya.
Mode izin menyediakan gate kedua. dontAsk memastikan bahwa apa pun yang berada di luar allowedTools ditolak secara diam-diam daripada meminta prompt. Ini penting di lingkungan headless — prompt yang macet menunggu input pengguna akan menghentikan pipeline Anda.
Opsi cwd membatasi akses filesystem agen ke direktori tertentu. Dalam lingkungan multi-tenant, teruskan working directory per sesi sehingga agen dari tenant yang berbeda tidak dapat membaca file satu sama lain.
Isolasi tenant membutuhkan langkah tambahan: atur settingSources: [] sehingga tidak ada setting filesystem yang bocor antar tenant; atur CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 untuk mencegah auto-memory dimuat; arahkan CLAUDE_CONFIG_DIR ke path khusus per tenant. Hal-hal ini didokumentasikan secara rinci di panduan hosting Anthropic.
Container sandboxing adalah shell terluar. Untuk agen produksi yang membutuhkan akses Bash, jalankan SDK di dalam container dengan network egress dibatasi ke domain yang Anda izinkan secara eksplisit. Provider seperti Modal, E2B, Cloudflare Sandboxes, Fly Machines, dan Vercel Sandbox disebutkan dalam dokumentasi Anthropic sebagai opsi untuk deployment SDK yang sandboxed.
maxTurns membatasi jumlah round trip tool-use, membatasi baik biaya maupun loop yang tidak terkendali. Aturlah berdasarkan kompleksitas tugas yang diharapkan — review pembacaan file sederhana mungkin membutuhkan 5–10 turn; refactor multi-file yang kompleks mungkin membutuhkan 30–50.
Untuk tim yang membangun hooks dan flow izin produksi, panduan Claude Code hooks kami membahas secara rinci lifecycle hook PreToolUse dan PostToolUse, termasuk cara menulis callback hook yang memblokir, mengubah, atau mencatat tool call sebelum dieksekusi.
MCP: Menghubungkan Agen ke Sistem Eksternal
SDK ini mendukung penuh Model Context Protocol (MCP), yang memungkinkan Anda menghubungkan agen Anda ke sistem eksternal apa pun yang mengekspos MCP server: database, otomasi browser, Jira, Slack, GitHub, dan ratusan server yang dibangun oleh komunitas.
Anda mengonfigurasi MCP server di opsi mcpServers — setiap entri menentukan perintah yang dijalankan dan argumen opsional. SDK menjalankan server-server tersebut sebagai subprocess, dan agen dapat memanggil tool mereka dengan cara yang sama seperti memanggil tool bawaan. Begitulah cara Anda memberikan agen code-review akses ke issue tracker Anda, atau menghubungkan agen dokumentasi ke knowledge base perusahaan Anda.
Model izin juga berlaku untuk tool call MCP — allowedTools dapat mencakup nama tool MCP, dan permissionMode mengatur apa yang terjadi untuk tool yang tidak tercantum.
Gotcha dan Jebakan Umum
Sesi bersifat subprocess-local secara default. Transkrip sesi berada di disk lokal host di bawah ~/.claude/projects/. Dalam deployment yang di-containerize atau di-scale horizontal, ini berarti state sesi hilang saat restart atau penugasan ulang node. Gunakan adapter SessionStore untuk sesi apa pun yang perlu Anda lanjutkan lintas container.
Model subprocess memiliki implikasi memori. Setiap sesi yang berjalan adalah subprocess terpisah. Menjalankan lima puluh sesi konkuren berarti lima puluh proses Claude Code. Panduan resmi menyebutkan sekitar 1 GiB RAM per agen sebagai titik awal, tetapi penggunaan memori dunia nyata bergantung pada panjang sesi dan aktivitas tool. Sesuaikan ukuran container Anda dan atur maxTurns untuk membatasi kedalaman sesi.
Fanout sub-agen yang besar terkena rate limit. Jika orkestrator Anda mendelegasikan ke dua puluh sub-agen secara bersamaan, Anda kemungkinan besar akan terkena rate limit API Anthropic. Pecah fanout yang besar menjadi batch dan tambahkan sedikit delay antar dispatch.
bypassPermissions membutuhkan sandbox yang sesungguhnya. Mode ini melewati semua gate izin. Ini dirancang untuk lingkungan yang benar-benar terkendali seperti container CI di mana Anda memiliki seluruh kendali eksekusi. Menggunakannya di mesin developer — di mana agen memiliki akses ke SSH key, kredensial cloud, dan path filesystem sembarang — adalah risiko keamanan.
SDK TypeScript menyertakan binary Claude Code; Python tidak memerlukannya secara terpisah. Namun kedua SDK ini terpaku pada versi CLI tertentu. Saat Anda meng-upgrade package SDK, Anda juga meng-upgrade CLI yang mendasarinya. Tinjau changelog sebelum upgrade minor — perubahan perilaku yang breaking diumumkan di sana.
Teks prompt dan input tool tidak disertakan dalam ekspor OTEL secara default. Ini adalah perilaku privasi yang disengaja. Jika Anda membutuhkan tracing tingkat prompt untuk debugging, Anda harus opt in secara eksplisit melalui variabel environment yang didokumentasikan dalam panduan observability Anthropic.
Versi SDK yang lebih lama mungkin tidak mendukung model yang lebih baru. Dokumentasi Anthropic mencatat bahwa model terbaru dapat memerlukan versi SDK yang lebih baru karena perubahan pada API parameter thinking, sehingga SDK yang sudah usang dapat gagal terhadap model baru. Selalu periksa changelog dan pin versi yang sudah dikenal baik saat mengadopsi model baru.
SDK vs. CLI: Mana yang Anda Butuhkan?
Bagi sebagian besar developer, jawabannya adalah keduanya — dan itu memang disengaja.
CLI interaktif adalah tool yang tepat untuk pengembangan sehari-hari: mengeksplorasi codebase yang belum familiar, menyelesaikan bug kompleks secara interaktif, atau menjalankan refactor sekali pakai. SDK adalah tool yang tepat untuk apa pun yang harus berjalan tanpa manusia yang hadir: CI, tugas terjadwal, fitur aplikasi, dan pipeline multi-agen.
SDK dan CLI bukan produk yang saling bersaing. Workflow yang Anda kembangkan secara interaktif dengan CLI diterjemahkan langsung menjadi otomasi SDK — tool yang sama, konsep izin yang sama, memori CLAUDE.md dan sistem skill yang sama. Workflow review yang Anda prototipe dengan claude di terminal Anda hari ini menjadi bot CI bertenaga SDK besok.
Untuk tim yang menggunakan versi web Claude Code (dibahas dalam panduan Claude Code di web kami), SDK membuka jalan untuk mencampur sesi web dengan orkestrasi programatik — memulai tugas yang berjalan lama dari web, lalu terhubung dengannya secara programatik dari backend Anda.
Pertanyaan yang Sering Diajukan
Apa itu Claude Code SDK (Agent SDK) secara tepatnya?
Ini adalah library Python (claude-agent-sdk) dan TypeScript (@anthropic-ai/claude-agent-sdk) yang mengekspos mesin agentic Claude Code secara penuh — tool, izin, manajemen sesi, sub-agen, MCP — sebagai API async yang dapat diprogram. Anda memanggil query(), memasukkan prompt dan options, dan menerima aliran pekerjaan agen sebagai objek pesan bertipe.
Apakah saya perlu menginstal Claude Code untuk menggunakan SDK?
Untuk SDK TypeScript, tidak — package tersebut menyertakan binary Claude Code native. Untuk SDK Python, package claude-agent-sdk menangani dependensi tersebut. Anda tetap membutuhkan Anthropic API key dari Anthropic Console.
Dapatkah saya menggunakan SDK dengan model selain Claude pada API Anthropic?
Ya. SDK ini mendukung Amazon Bedrock, Google Vertex AI, Microsoft Azure AI Foundry, dan Claude Platform on AWS melalui variabel environment. Anda juga dapat merutekan request melalui proxy kustom dengan mengatur ANTHROPIC_BASE_URL.
Bagaimana cara menggunakan SDK dalam workflow GitHub Actions?
Tambahkan ANTHROPIC_API_KEY Anda sebagai secret GitHub Actions, checkout branch PR dalam workflow Anda, instal package SDK, dan jalankan skrip agen Anda. Gunakan permissionMode: "dontAsk" dengan daftar allowedTools read-only sehingga agen tidak dapat mengubah file di lingkungan CI Anda. Dokumentasi Anthropic juga membahas integrasi GitHub Actions khusus yang mengotomatiskan review PR dan triase issue tanpa perlu menulis kode SDK kustom.
Apa perbedaan antara Agent SDK dan Managed Agents? Agent SDK adalah library yang menjalankan agent loop di dalam proses dan infrastruktur Anda sendiri. Managed Agents adalah REST API terkelola (hosted) di mana Anthropic menjalankan agen dan sandbox — Anda mengirim event dan menerima stream hasilnya kembali. SDK lebih baik untuk prototyping lokal dan agen yang bekerja langsung pada filesystem Anda; Managed Agents lebih baik untuk produksi ketika Anda tidak ingin mengoperasikan infrastruktur container.
Bagaimana cara membatasi apa yang dapat diakses agen?
Gunakan allowedTools untuk membatasi tool mana yang tersedia, permissionMode: "dontAsk" untuk menolak apa pun di luar daftar tersebut, dan cwd untuk membatasi akses filesystem ke direktori tertentu. Untuk deployment multi-tenant, tambahkan pengaturan settingSources: [] dan CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Apakah SDK mendukung output streaming?
Ya — iterator async dari query() menstream pesan secara real time. Jika Anda tidak membutuhkan output live (untuk background job atau pipeline CI di mana Anda hanya mementingkan hasil akhirnya), dokumentasi Anthropic menjelaskan mode single-turn yang mengumpulkan semua pesan sebelum mengembalikan hasilnya. Lihat Streaming vs. single-turn mode di dokumentasi resmi.
Dapatkah saya menjalankan beberapa agen secara paralel?
Ya. Setiap panggilan query() menjalankan subprocess independen. Anda dapat menjalankan N sesi konkuren — tetapi masing-masing adalah proses terpisah, jadi sediakan memori sesuai dan perhatikan rate limit API. Untuk fanout sub-agen konkuren dari satu orkestrator, batch dispatch Anda untuk menghindari terkena rate limit.
Apa yang terjadi jika sesi crash di tengah tugas?
Secara default, transkrip sesi bersifat lokal terhadap container dan hilang saat restart. Untuk bertahan dari restart, konfigurasikan adapter SessionStore (S3, Redis, atau Postgres) dan masukkan dalam options. Anda kemudian dapat melanjutkan sesi berdasarkan session_id di container baru.
Menjalankan Agen Tanpa Setup Lokal
Proposisi nilai dari SDK adalah otomasi — namun menjalankan otomasi tersebut membutuhkan infrastruktur yang nyata: runtime Python atau Node, API key, strategi container, keputusan sandboxing, dan waktu yang dihabiskan untuk permission modeling sebelum deploy produksi pertama Anda.
Bagi developer yang ingin melakukan iterasi ide agen tanpa beban setup tersebut, Happycapy menjalankan agen bergaya Claude Code langsung di browser. Tidak ada instalasi lokal, tidak ada manajemen subprocess, dan tidak ada penyediaan container. Anda cukup membawa prompt, Happycapy menangani lingkungan eksekusinya — dengan akses ke 150+ model dan cloud sandbox yang aman. Ini adalah jalur cepat untuk melakukan prototipe perilaku agen yang nantinya akan Anda produksikan dengan SDK.

