System-Prompts definieren Claudes Verhalten, Fähigkeiten und Antwort-Stil. Das Claude Agent SDK bietet drei Möglichkeiten, System-Prompts anzupassen: die Verwendung von Output-Stilen (persistente, dateibasierte Konfigurationen), das Anhängen an Claude Codes Prompt oder die Verwendung eines vollständig benutzerdefinierten Prompts.
Ein System-Prompt ist der anfängliche Anweisungssatz, der bestimmt, wie sich Claude während einer Unterhaltung verhält.
Standardverhalten: Das Agent SDK verwendet standardmäßig einen leeren System-Prompt für maximale Flexibilität. Um Claude Codes System-Prompt (Tool-Anweisungen, Code-Richtlinien usw.) zu verwenden, geben Sie systemPrompt: { preset: "claude_code" } in TypeScript oder system_prompt="claude_code" in Python an.
Claude Codes System-Prompt umfasst:
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.
Nach der Erstellung aktivieren Sie Output-Stile über:
/output-style [stil-name].claude/settings.local.json/output-style:new [beschreibung]systemPrompt mit append verwendenSie können das Claude Code Preset mit einer append-Eigenschaft verwenden, um Ihre benutzerdefinierten Anweisungen hinzuzufügen, während Sie alle eingebauten Funktionen beibehalten.
Sie können einen benutzerdefinierten String als systemPrompt bereitstellen, um den Standard vollständig durch Ihre eigenen Anweisungen zu ersetzen.
| Feature | Output-Stile | systemPrompt mit append | Benutzerdefinierter systemPrompt |
|---|---|---|---|
| Persistenz | ✅ Als Dateien gespeichert | ❌ Nur Sitzung | ❌ Nur Sitzung |
| Wiederverwendbarkeit | ✅ Projektübergreifend | ❌ Code-Duplikation | ❌ Code-Duplikation |
| Verwaltung | ✅ CLI + Dateien | ⚠️ Im Code | ⚠️ Im Code |
| Standard-Tools | ✅ Erhalten | ✅ Erhalten | ❌ Verloren (außer wenn eingeschlossen) |
| Eingebaute Sicherheit | ✅ Beibehalten | ✅ Beibehalten | ❌ Muss hinzugefügt werden |
Hinweis: "Mit append" bedeutet die Verwendung von systemPrompt: { type: "preset", preset: "claude_code", append: "..." } in TypeScript oder system_prompt={"type": "preset", "preset": "claude_code", "append": "..."} in Python.
Am besten für:
Beispiele:
systemPrompt mit append verwendet werden sollteAm besten für:
systemPrompt verwendet werden sollteAm besten für:
Sie können diese Methoden für maximale Flexibilität kombinieren:
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',
`Sie sind ein Experte für Code-Reviews.
Für jede Code-Einreichung:
1. Prüfen Sie auf Bugs und Sicherheitsprobleme
2. Bewerten Sie die Performance
3. Schlagen Sie Verbesserungen vor
4. Bewerten Sie die Code-Qualität (1-10)`
)import { query } from "@anthropic-ai/claude-agent-sdk"
const messages = []
for await (const message of query({
prompt: "Hilf mir, eine Python-Funktion zur Berechnung von Fibonacci-Zahlen zu schreiben",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append: "Fügen Sie immer detaillierte Docstrings und Type Hints in Python-Code ein."
}
}
})) {
messages.push(message)
if (message.type === 'assistant') {
console.log(message.message.content)
}
}import { query } from "@anthropic-ai/claude-agent-sdk"
const customPrompt = `Sie sind ein Python-Coding-Spezialist.
Befolgen Sie diese Richtlinien:
- Schreiben Sie sauberen, gut dokumentierten Code
- Verwenden Sie Type Hints für alle Funktionen
- Fügen Sie umfassende Docstrings ein
- Bevorzugen Sie funktionale Programmiermuster, wenn angemessen
- Erklären Sie immer Ihre Code-Entscheidungen`
const messages = []
for await (const message of query({
prompt: "Erstelle eine Datenverarbeitungs-Pipeline",
options: {
systemPrompt: customPrompt
}
})) {
messages.push(message)
if (message.type === 'assistant') {
console.log(message.message.content)
}
}| 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 |
import { query } from "@anthropic-ai/claude-agent-sdk"
// 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 Authentifizierungsmodul",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append: `
Für diese Überprüfung priorisieren Sie:
- OAuth 2.0 Compliance
- Token-Speicher-Sicherheit
- Session-Management
`
}
}
})) {
messages.push(message)
}