Bedah Tuntas Cara Kerja Internal Claude Code — dari Agentic Loop hingga pemuatan konteks
(mintlify.com)Ringkasan inti tentang bagaimana Claude Code berjalan di terminal berdasarkan dokumentasi resmi (versi ringkasan Mintlify oleh VineeTagarwaL).
Bagaimana Claude Code bekerja?
Singkatnya, ini adalah loop “membaca → berpikir → memakai alat → melihat hasil → mengulang”.
6 tahap Agentic Loop
- Pengguna memasukkan pesan di terminal (atau mengirimkannya lewat
--print/ stdin) - Menyusun system prompt — tanggal saat ini, status git, file
CLAUDE.md, daftar alat yang tersedia - Memanggil Anthropic API → model membuat blok
tool_use(nama alat + input JSON) - Pemeriksaan izin — menentukan salah satu dari persetujuan otomatis / minta konfirmasi / blokir
- Menjalankan alat → hasilnya (isi file, output perintah, dan sebagainya) ditambahkan ke percakapan sebagai
tool_result - Model yang menerima hasil akan memanggil alat tambahan atau memberi respons akhir — diulang sampai tidak ada lagi pemanggilan alat
Loop ini hanya berjalan di proses terminal lokal. Kecuali alat yang secara eksplisit memanggil pihak luar seperti WebFetch, WebSearch, atau server MCP, file, shell, dan informasi autentikasi tidak keluar dari mesin.
Bagaimana konteks dibuat?
Saat percakapan dimulai, dua blok disusun lalu ditempelkan di depan setiap pemanggilan API.
- Konteks sistem — branch saat ini, 5 commit terbaru, hasil
git status --short(dipotong bila melebihi 2.000 karakter) - Konteks pengguna — file memori
CLAUDE.md(penelusuran hierarki 4 tahap), tanggal hari ini (Today's date is YYYY-MM-DD)
Kedua blok ini di-cache per percakapan denganlodash/memoize. SaatsetSystemPromptInjection()dipanggil, cache langsung diinisialisasi ulang.
Model izin — kapan alat dijalankan?
| Hasil | Perilaku |
|---|---|
allow |
Langsung dijalankan, hasil ditambahkan ke percakapan |
ask |
Dijeda → tampilkan dialog konfirmasi |
deny |
Ditolak → kembalikan error ke model |
- Mode
bypassPermissions: lewati semua pemeriksaan - Mode
acceptEdits: edit file disetujui otomatis, tetapi bash tetap meminta konfirmasi - Alat baca-saja seperti Read, Glob, dan Grep secara default otomatis disetujui di semua mode
Sub-agent (alat Task)
Claude dapat memunculkan sub-agent dengan alat Task (AgentTool). Sub-agent menjalankan Agentic Loop-nya sendiri dengan percakapan yang terisolasi dan, secara opsional, set alat yang dibatasi, lalu mengembalikan hasil ke agent induk setelah selesai. Ini bisa dijalankan secara lokal (in-process) atau di komputasi remote.
Penyimpanan dan pemulihan percakapan
Percakapan disimpan di ~/.claude/ sebagai file transkrip JSON.
--resume <session-id>atau--resumesaja untuk melanjutkan percakapan sebelumnya- Saat dilanjutkan: seluruh riwayat pesan dimuat, file
CLAUDE.mdditelusuri ulang, mode izin di-reset ke nilai bawaan konfigurasi - Percakapan panjang dipadatkan secara berkala — pesan lama diringkas untuk mengelola context window. Seluruh transkrip asli tetap disimpan di disk
Apa yang dikerjakan query engine
Setiap “turn” dijalankan oleh query.ts.
- Menampilkan streaming token ke terminal secara real-time
- Mendispatch blok
tool_useke handler yang sesuai - Mengelola anggaran token dan pemanggilan alat per turn
- Memicu compaction saat context window penuh
- Setiap alat memiliki properti
maxResultSizeChars— bila hasil melebihi batas ini, hasil disimpan ke file sementara dan model hanya menerima path file tersebut (mencegah overflow pada context window)
Sumber asli: How Claude Code works — Mintlify
Catatan: ini adalah dokumen mirror tidak resmi yang merapikan dokumentasi resmi Claude Code ke Mintlify oleh VineeTagarwaL.
1 komentar
Sejak 2023, struktur ReAct tampaknya tidak banyak berubah.