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.
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)`
)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.
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)
}
}Sie können einen benutzerdefinierten String als systemPrompt bereitstellen, um den Standard vollständig durch Ihre eigenen Anweisungen zu ersetzen.
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)
}
}| 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 |
| 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 |
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 { 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)
}