Prompt sistem mendefinisikan perilaku, kemampuan, dan gaya respons Claude. Claude Code SDK menyediakan tiga cara untuk menyesuaikan prompt sistem: menggunakan gaya output (konfigurasi persisten berbasis file), menambahkan ke prompt default, atau menggantinya sepenuhnya.

Memahami prompt sistem

Prompt sistem adalah set instruksi awal yang membentuk bagaimana Claude berperilaku sepanjang percakapan. Prompt sistem default Claude Code mencakup:
  • Instruksi penggunaan alat dan alat 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: Gaya output (konfigurasi persisten)

Gaya output adalah konfigurasi tersimpan yang memodifikasi prompt sistem Claude. Mereka disimpan sebagai file markdown dan dapat digunakan kembali di seluruh sesi dan proyek.

Membuat gaya output

import { writeFile, mkdir } from 'fs/promises'
import { join } from 'path'
import { homedir } from 'os'

async function createOutputStyle(name: string, description: string, prompt: string) {
  // Level pengguna: ~/.claude/output-styles
  // Level proyek: .claude/output-styles
  const outputStylesDir = join(homedir(), '.claude', 'output-styles')
  
  await mkdir(outputStylesDir, { recursive: true })
  
  const content = `---
name: ${name}
description: ${description}
---

${prompt}`
  
  const filePath = join(outputStylesDir, `${name.toLowerCase().replace(/\s+/g, '-')}.md`)
  await writeFile(filePath, content, 'utf-8')
}

// Contoh: Membuat spesialis review kode
await createOutputStyle(
  'Code Reviewer',
  'Asisten review kode menyeluruh',
  `Anda adalah seorang ahli review kode.

Untuk setiap pengajuan kode:
1. Periksa bug dan masalah keamanan
2. Evaluasi performa
3. Sarankan perbaikan
4. Beri nilai kualitas kode (1-10)`
)

Menggunakan gaya output

Setelah dibuat, aktifkan gaya output melalui:
  • CLI: /output-style [nama-gaya]
  • Pengaturan: .claude/settings.local.json
  • Buat baru: /output-style:new [deskripsi]

Metode 2: Menggunakan appendSystemPrompt

Opsi appendSystemPrompt menambahkan instruksi kustom Anda ke prompt sistem default sambil mempertahankan semua fungsionalitas bawaan.
import { query } from "@anthropic-ai/claude-code"

const messages = []

for await (const message of query({
  prompt: "Bantu saya menulis fungsi Python untuk menghitung bilangan fibonacci",
  options: {
    appendSystemPrompt: "Selalu sertakan docstring detail dan type hints dalam kode Python."
  }
})) {
  messages.push(message)
  if (message.type === 'assistant') {
    console.log(message.message.content)
  }
}

Metode 3: Menggunakan customSystemPrompt

Opsi customSystemPrompt mengganti seluruh prompt sistem default dengan instruksi kustom Anda.
import { query } from "@anthropic-ai/claude-code"

const customPrompt = `Anda adalah spesialis coding Python. 
Ikuti panduan berikut:
- Tulis kode yang bersih dan terdokumentasi dengan baik
- Gunakan type hints untuk semua fungsi
- Sertakan docstring yang komprehensif
- Lebih suka pola pemrograman fungsional bila sesuai
- Selalu jelaskan pilihan kode Anda`

const messages = []

for await (const message of query({
  prompt: "Buat pipeline pemrosesan data",
  options: {
    customSystemPrompt: customPrompt
  }
})) {
  messages.push(message)
  if (message.type === 'assistant') {
    console.log(message.message.content)
  }
}

Perbandingan ketiga pendekatan

FiturGaya OutputappendSystemPromptcustomSystemPrompt
Persistensi✅ Disimpan sebagai file❌ Hanya sesi❌ Hanya sesi
Dapat digunakan kembali✅ Lintas proyek❌ Duplikasi kode❌ Duplikasi kode
Manajemen✅ CLI + file⚠️ Dalam kode⚠️ Dalam kode
Alat default✅ Dipertahankan✅ Dipertahankan❌ Hilang (kecuali disertakan)
Keamanan bawaan✅ Dipelihara✅ Dipelihara❌ Harus ditambahkan
Konteks lingkungan✅ Otomatis✅ Otomatis❌ Harus disediakan
Level kustomisasi⚠️ Ganti default⚠️ Hanya tambahan✅ Kontrol penuh
Version control✅ Ya✅ Dengan kode✅ Dengan kode
Penemuan/output-style❌ Tidak dapat ditemukan❌ Tidak dapat ditemukan

Kasus penggunaan dan praktik terbaik

Kapan menggunakan gaya output

Terbaik untuk:
  • Perubahan perilaku persisten di seluruh sesi
  • Konfigurasi yang dibagikan tim
  • Asisten khusus (code reviewer, data scientist, DevOps)
  • Modifikasi prompt kompleks yang memerlukan versioning
Contoh:
  • Membuat asisten optimisasi SQL khusus
  • Membangun code reviewer yang berfokus pada keamanan
  • Mengembangkan asisten pengajaran dengan pedagogi spesifik

Kapan menggunakan appendSystemPrompt

Terbaik untuk:
  • Menambahkan standar atau preferensi coding spesifik
  • Menyesuaikan format output
  • Menambahkan pengetahuan domain-spesifik
  • Memodifikasi verbositas respons

Kapan menggunakan customSystemPrompt

Terbaik untuk:
  • Kontrol penuh atas perilaku Claude
  • Tugas sesi tunggal yang khusus
  • Menguji strategi prompt baru
  • Situasi di mana alat default tidak diperlukan

Menggabungkan pendekatan

Anda dapat menggabungkan metode ini untuk fleksibilitas maksimum:

Contoh: Gaya output dengan tambahan spesifik sesi

import { query } from "@anthropic-ai/claude-code"

// Dengan asumsi gaya output "Code Reviewer" aktif (melalui /output-style)
// Tambahkan area fokus spesifik sesi
const messages = []

for await (const message of query({
  prompt: "Review modul autentikasi ini",
  options: {
    appendSystemPrompt: `
      Untuk review ini, prioritaskan:
      - Kepatuhan OAuth 2.0
      - Keamanan penyimpanan token
      - Manajemen sesi
    `
  }
})) {
  messages.push(message)
}

Lihat juga