Memahami system prompt
System prompt adalah set instruksi awal yang membentuk bagaimana Claude berperilaku sepanjang percakapan.Perilaku default: Agent SDK menggunakan system prompt kosong secara default untuk fleksibilitas maksimum. Untuk menggunakan system prompt Claude Code (instruksi tool, panduan kode, dll.), tentukan
systemPrompt: { preset: "claude_code" } di TypeScript atau system_prompt="claude_code" di Python.- Instruksi penggunaan tool dan tool yang tersedia
- Panduan gaya dan format kode
- Pengaturan nada respons dan verbositas
- Instruksi keamanan dan keselamatan
- Konteks tentang direktori kerja saat ini dan lingkungan
Metode modifikasi
Metode 1: File CLAUDE.md (instruksi tingkat proyek)
File CLAUDE.md menyediakan konteks dan instruksi spesifik proyek yang secara otomatis dibaca oleh Agent SDK ketika berjalan di sebuah direktori. Mereka berfungsi sebagai “memori” persisten untuk proyek Anda.Cara CLAUDE.md bekerja dengan SDK
Lokasi dan penemuan:- Tingkat proyek:
CLAUDE.mdatau.claude/CLAUDE.mddi direktori kerja Anda - Tingkat pengguna:
~/.claude/CLAUDE.mduntuk instruksi global di semua proyek
settingSources (TypeScript) atau setting_sources (Python):
- Sertakan
'project'untuk memuat CLAUDE.md tingkat proyek - Sertakan
'user'untuk memuat CLAUDE.md tingkat pengguna (~/.claude/CLAUDE.md)
claude_code TIDAK secara otomatis memuat CLAUDE.md - Anda juga harus menentukan setting sources.
Format konten:
File CLAUDE.md menggunakan markdown biasa dan dapat berisi:
- Panduan dan standar coding
- Konteks spesifik proyek
- Perintah atau workflow umum
- Konvensi API
- Persyaratan testing
Contoh CLAUDE.md
Menggunakan CLAUDE.md dengan SDK
Kapan menggunakan CLAUDE.md
Terbaik untuk:- Konteks yang dibagikan tim - Panduan yang harus diikuti semua orang
- Konvensi proyek - Standar coding, struktur file, pola penamaan
- Perintah umum - Perintah build, test, deploy spesifik untuk proyek Anda
- Memori jangka panjang - Konteks yang harus bertahan di semua sesi
- Instruksi yang dikontrol versi - Commit ke git agar tim tetap sinkron
- ✅ Persisten di semua sesi dalam proyek
- ✅ Dibagikan dengan tim melalui git
- ✅ Penemuan otomatis (tidak perlu perubahan kode)
- ⚠️ Memerlukan loading settings melalui
settingSources
Metode 2: Output styles (konfigurasi persisten)
Output styles adalah konfigurasi tersimpan yang memodifikasi system prompt Claude. Mereka disimpan sebagai file markdown dan dapat digunakan kembali di berbagai sesi dan proyek.Membuat output style
Menggunakan output styles
Setelah dibuat, aktifkan output styles melalui:- CLI:
/output-style [style-name] - Settings:
.claude/settings.local.json - Buat baru:
/output-style:new [description]
settingSources: ['user'] atau settingSources: ['project'] (TypeScript) / setting_sources=["user"] atau setting_sources=["project"] (Python) dalam opsi Anda.
Metode 3: Menggunakan systemPrompt dengan append
Anda dapat menggunakan preset Claude Code dengan properti append untuk menambahkan instruksi kustom Anda sambil mempertahankan semua fungsionalitas bawaan.
Metode 4: Custom system prompt
Anda dapat menyediakan string kustom sebagaisystemPrompt untuk mengganti default sepenuhnya dengan instruksi Anda sendiri.
Perbandingan keempat pendekatan
| Fitur | CLAUDE.md | Output Styles | systemPrompt dengan append | Custom systemPrompt |
|---|---|---|---|---|
| Persistensi | File per-proyek | Disimpan sebagai file | Hanya sesi | Hanya sesi |
| Reusabilitas | Per-proyek | Lintas proyek | Duplikasi kode | Duplikasi kode |
| Manajemen | Di filesystem | CLI + file | Dalam kode | Dalam kode |
| Tool default | Dipertahankan | Dipertahankan | Dipertahankan | Hilang (kecuali disertakan) |
| Keamanan bawaan | Dipertahankan | Dipertahankan | Dipertahankan | Harus ditambahkan |
| Konteks lingkungan | Otomatis | Otomatis | Otomatis | Harus disediakan |
| Level kustomisasi | Hanya penambahan | Ganti default | Hanya penambahan | Kontrol penuh |
| Kontrol versi | Dengan proyek | Ya | Dengan kode | Dengan kode |
| Cakupan | Spesifik proyek | Pengguna atau proyek | Sesi kode | Sesi kode |
systemPrompt: { type: "preset", preset: "claude_code", append: "..." } di TypeScript atau system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} di Python.
Kasus penggunaan dan praktik terbaik
Kapan menggunakan CLAUDE.md
Terbaik untuk:- Standar dan konvensi coding spesifik proyek
- Mendokumentasikan struktur dan arsitektur proyek
- Mencantumkan perintah umum (build, test, deploy)
- Konteks yang dibagikan tim yang harus dikontrol versi
- Instruksi yang berlaku untuk semua penggunaan SDK dalam proyek
- “Semua endpoint API harus menggunakan pola async/await”
- “Jalankan
npm run lint:fixsebelum commit” - “Migrasi database ada di direktori
migrations/”
settingSources: ['project'] (TypeScript) atau setting_sources=["project"] (Python). Preset system prompt claude_code TIDAK secara otomatis memuat CLAUDE.md tanpa pengaturan ini.
Kapan menggunakan output styles
Terbaik untuk:- Perubahan perilaku persisten di berbagai sesi
- Konfigurasi yang dibagikan tim
- Asisten khusus (code reviewer, data scientist, DevOps)
- Modifikasi prompt kompleks yang memerlukan versioning
- Membuat asisten optimisasi SQL khusus
- Membangun code reviewer yang fokus pada keamanan
- Mengembangkan asisten pengajaran dengan pedagogi spesifik
Kapan menggunakan systemPrompt dengan append
Terbaik untuk:
- Menambahkan standar atau preferensi coding spesifik
- Menyesuaikan format output
- Menambahkan pengetahuan domain-spesifik
- Memodifikasi verbositas respons
- Meningkatkan perilaku default Claude Code tanpa kehilangan instruksi tool
Kapan menggunakan custom systemPrompt
Terbaik untuk:
- Kontrol penuh atas perilaku Claude
- Tugas khusus sesi tunggal
- Menguji strategi prompt baru
- Situasi di mana tool default tidak diperlukan
- Membangun agen khusus dengan perilaku unik
Menggabungkan pendekatan
Anda dapat menggabungkan metode ini untuk fleksibilitas maksimum:Contoh: Output style dengan penambahan spesifik sesi
Lihat juga
- Output styles - Dokumentasi lengkap output styles
- Panduan TypeScript SDK - Panduan penggunaan SDK lengkap
- Referensi TypeScript SDK - Dokumentasi API lengkap
- Panduan konfigurasi - Opsi konfigurasi umum