System-Prompts definieren Claudes Verhalten, Fähigkeiten und Antwort-Stil. Das Claude Code SDK bietet drei Möglichkeiten, System-Prompts anzupassen: die Verwendung von Output-Stilen (persistente, dateibasierte Konfigurationen), das Anhängen an den Standard-Prompt oder das vollständige Ersetzen.

System-Prompts verstehen

Ein System-Prompt ist der anfängliche Anweisungssatz, der bestimmt, wie sich Claude während einer Unterhaltung verhält. Claudes Code Standard-System-Prompt umfasst:
  • Tool-Nutzungsanweisungen und verfügbare Tools
  • Code-Stil und Formatierungsrichtlinien
  • Antwort-Ton und Ausführlichkeitseinstellungen
  • Sicherheits- und Schutzanweisungen
  • Kontext über das aktuelle Arbeitsverzeichnis und die Umgebung

Modifikationsmethoden

Methode 1: Output-Stile (persistente Konfigurationen)

Output-Stile sind gespeicherte Konfigurationen, die Claudes System-Prompt modifizieren. Sie werden als Markdown-Dateien gespeichert und können sitzungs- und projektübergreifend wiederverwendet werden.

Einen Output-Stil erstellen

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

async function createOutputStyle(name: string, description: string, prompt: string) {
  // Benutzerebene: ~/.claude/output-styles
  // Projektebene: .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')
}

// Beispiel: Einen Code-Review-Spezialisten erstellen
await createOutputStyle(
  'Code Reviewer',
  'Gründlicher Code-Review-Assistent',
  `Du bist ein erfahrener Code-Reviewer.

Für jede Code-Einreichung:
1. Überprüfe auf Bugs und Sicherheitsprobleme
2. Bewerte die Performance
3. Schlage Verbesserungen vor
4. Bewerte die Code-Qualität (1-10)`
)

Output-Stile verwenden

Nach der Erstellung aktivieren Sie Output-Stile über:
  • CLI: /output-style [stil-name]
  • Einstellungen: .claude/settings.local.json
  • Neu erstellen: /output-style:new [beschreibung]

Methode 2: appendSystemPrompt verwenden

Die appendSystemPrompt-Option fügt Ihre benutzerdefinierten Anweisungen zum Standard-System-Prompt hinzu, während alle eingebauten Funktionen erhalten bleiben.
import { query } from "@anthropic-ai/claude-code"

const messages = []

for await (const message of query({
  prompt: "Hilf mir dabei, eine Python-Funktion zur Berechnung von Fibonacci-Zahlen zu schreiben",
  options: {
    appendSystemPrompt: "Füge immer detaillierte Docstrings und Type-Hints in Python-Code ein."
  }
})) {
  messages.push(message)
  if (message.type === 'assistant') {
    console.log(message.message.content)
  }
}

Methode 3: customSystemPrompt verwenden

Die customSystemPrompt-Option ersetzt den gesamten Standard-System-Prompt durch Ihre benutzerdefinierten Anweisungen.
import { query } from "@anthropic-ai/claude-code"

const customPrompt = `Du bist ein Python-Coding-Spezialist. 
Befolge diese Richtlinien:
- Schreibe sauberen, gut dokumentierten Code
- Verwende Type-Hints für alle Funktionen
- Füge umfassende Docstrings ein
- Bevorzuge funktionale Programmiermuster, wenn angemessen
- Erkläre immer deine Code-Entscheidungen`

const messages = []

for await (const message of query({
  prompt: "Erstelle eine Datenverarbeitungs-Pipeline",
  options: {
    customSystemPrompt: customPrompt
  }
})) {
  messages.push(message)
  if (message.type === 'assistant') {
    console.log(message.message.content)
  }
}

Vergleich aller drei Ansätze

FeatureOutput-StileappendSystemPromptcustomSystemPrompt
Persistenz✅ Als Dateien gespeichert❌ Nur Sitzung❌ Nur Sitzung
Wiederverwendbarkeit✅ Projektübergreifend❌ Code-Duplizierung❌ Code-Duplizierung
Verwaltung✅ CLI + Dateien⚠️ Im Code⚠️ Im Code
Standard-Tools✅ Erhalten✅ Erhalten❌ Verloren (außer wenn eingeschlossen)
Eingebaute Sicherheit✅ Beibehalten✅ Beibehalten❌ Muss hinzugefügt werden
Umgebungskontext✅ Automatisch✅ Automatisch❌ Muss bereitgestellt werden
Anpassungsgrad⚠️ Standard ersetzen⚠️ Nur Ergänzungen✅ Vollständige Kontrolle
Versionskontrolle✅ Ja✅ Mit Code✅ Mit Code
Entdeckung/output-style❌ Nicht entdeckbar❌ Nicht entdeckbar

Anwendungsfälle und bewährte Praktiken

Wann Output-Stile verwenden

Am besten für:
  • Persistente Verhaltensänderungen über Sitzungen hinweg
  • Team-geteilte Konfigurationen
  • Spezialisierte Assistenten (Code-Reviewer, Data Scientist, DevOps)
  • Komplexe Prompt-Modifikationen, die Versionierung benötigen
Beispiele:
  • Erstellen eines dedizierten SQL-Optimierungs-Assistenten
  • Aufbau eines sicherheitsfokussierten Code-Reviewers
  • Entwicklung eines Lehr-Assistenten mit spezifischer Pädagogik

Wann appendSystemPrompt verwenden

Am besten für:
  • Hinzufügen spezifischer Coding-Standards oder Präferenzen
  • Anpassen der Ausgabe-Formatierung
  • Hinzufügen domänenspezifischen Wissens
  • Modifizieren der Antwort-Ausführlichkeit

Wann customSystemPrompt verwenden

Am besten für:
  • Vollständige Kontrolle über Claudes Verhalten
  • Spezialisierte Einzelsitzungs-Aufgaben
  • Testen neuer Prompt-Strategien
  • Situationen, in denen Standard-Tools nicht benötigt werden

Ansätze kombinieren

Sie können diese Methoden für maximale Flexibilität kombinieren:

Beispiel: Output-Stil mit sitzungsspezifischen Ergänzungen

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

// Angenommen, "Code Reviewer" Output-Stil ist aktiv (über /output-style)
// Sitzungsspezifische Schwerpunktbereiche hinzufügen
const messages = []

for await (const message of query({
  prompt: "Überprüfe dieses Authentifizierungs-Modul",
  options: {
    appendSystemPrompt: `
      Für diese Überprüfung priorisiere:
      - OAuth 2.0 Compliance
      - Token-Speicher-Sicherheit
      - Session-Management
    `
  }
})) {
  messages.push(message)
}

Siehe auch