Systemanfragen definieren Claudes Verhalten, Fähigkeiten und Antwortstil. Das Claude Agent SDK bietet drei Möglichkeiten, Systemanfragen anzupassen: Verwendung von Ausgabestilen (persistente, dateibasierte Konfigurationen), Anhängen an Claudes Code-Anfrage oder Verwendung einer vollständig benutzerdefinierten Anfrage.
Eine Systemanfrage ist der anfängliche Anweisungssatz, der definiert, wie sich Claude während eines Gesprächs verhält.
Standardverhalten: Das Agent SDK verwendet standardmäßig eine minimale Systemanfrage. Sie enthält nur wesentliche Tool-Anweisungen, lässt aber Claudes Code-Codierungsrichtlinien, Antwortstil und Projektkontext weg. Um die vollständige Claude Code-Systemanfrage einzubeziehen, geben Sie systemPrompt: { preset: "claude_code" } in TypeScript oder system_prompt={"type": "preset", "preset": "claude_code"} in Python an.
Claudes Code-Systemanfrage umfasst:
CLAUDE.md-Dateien bieten projektspezifischen Kontext und Anweisungen, die vom Agent SDK automatisch gelesen werden, wenn es in einem Verzeichnis ausgeführt wird. Sie dienen als persistentes „Gedächtnis" für Ihr Projekt.
Speicherort und Erkennung:
CLAUDE.md oder .claude/CLAUDE.md in Ihrem Arbeitsverzeichnis~/.claude/CLAUDE.md für globale Anweisungen über alle Projekte hinwegWICHTIG: Das SDK liest CLAUDE.md-Dateien nur, wenn Sie settingSources (TypeScript) oder setting_sources (Python) explizit konfigurieren:
'project' ein, um CLAUDE.md auf Projektebene zu laden'user' ein, um CLAUDE.md auf Benutzerebene zu laden (~/.claude/CLAUDE.md)Die claude_code-Systemanfrage-Voreinstellung lädt CLAUDE.md NICHT automatisch - Sie müssen auch Einstellungsquellen angeben.
Inhaltsformat: CLAUDE.md-Dateien verwenden einfaches Markdown und können enthalten:
# Projektrichtlinien
## Code-Stil
- TypeScript-Strict-Modus verwenden
- Funktionale Komponenten in React bevorzugen
- Immer JSDoc-Kommentare für öffentliche APIs einschließen
## Testen
- `npm test` vor dem Commit ausführen
- Mindestens 80% Code-Abdeckung beibehalten
- Jest für Unit-Tests, Playwright für E2E verwenden
## Befehle
- Build: `npm run build`
- Dev-Server: `npm run dev`
- Typprüfung: `npm run typecheck`import { query } from "@anthropic-ai/claude-agent-sdk";
// WICHTIG: Sie müssen settingSources angeben, um CLAUDE.md zu laden
// Die claude_code-Voreinstellung allein lädt CLAUDE.md-Dateien NICHT
const messages = [];
for await (const message of query({
prompt: "Add a new React component for user profiles",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code", // Claudes Code-Systemanfrage verwenden
},
settingSources: ["project"], // Erforderlich, um CLAUDE.md aus dem Projekt zu laden
},
})) {
messages.push(message);
}
// Jetzt hat Claude Zugriff auf Ihre Projektrichtlinien aus CLAUDE.mdAm besten für:
Wichtige Merkmale:
settingSourcesAusgabestile sind gespeicherte Konfigurationen, die Claudes Systemanfrage ändern. Sie werden als Markdown-Dateien gespeichert und können über Sitzungen und Projekte hinweg 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: Erstellen Sie einen Code-Review-Spezialisten
await createOutputStyle(
"Code Reviewer",
"Thorough code review assistant",
`You are an expert code reviewer.
For every code submission:
1. Check for bugs and security issues
2. Evaluate performance
3. Suggest improvements
4. Rate code quality (1-10)`
);Aktivieren Sie Ausgabestile nach der Erstellung über:
/output-style [style-name].claude/settings.local.json/output-style:new [description]Hinweis für SDK-Benutzer: Ausgabestile werden geladen, wenn Sie settingSources: ['user'] oder settingSources: ['project'] (TypeScript) / setting_sources=["user"] oder setting_sources=["project"] (Python) in Ihren Optionen einschließen.
systemPrompt mit AnhangSie können die Claude Code-Voreinstellung mit einer append-Eigenschaft verwenden, um Ihre benutzerdefinierten Anweisungen hinzuzufügen und gleichzeitig alle integrierten Funktionen beizubehalten.
import { query } from "@anthropic-ai/claude-agent-sdk";
const messages = [];
for await (const message of query({
prompt: "Help me write a Python function to calculate fibonacci numbers",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append:
"Always include detailed docstrings and type hints in Python code.",
},
},
})) {
messages.push(message);
if (message.type === "assistant") {
console.log(message.message.content);
}
}Sie können eine benutzerdefinierte Zeichenkette als systemPrompt bereitstellen, um die Standardeinstellung vollständig durch Ihre eigenen Anweisungen zu ersetzen.
import { query } from "@anthropic-ai/claude-agent-sdk";
const customPrompt = `You are a Python coding specialist.
Follow these guidelines:
- Write clean, well-documented code
- Use type hints for all functions
- Include comprehensive docstrings
- Prefer functional programming patterns when appropriate
- Always explain your code choices`;
const messages = [];
for await (const message of query({
prompt: "Create a data processing pipeline",
options: {
systemPrompt: customPrompt,
},
})) {
messages.push(message);
if (message.type === "assistant") {
console.log(message.message.content);
}
}| Funktion | CLAUDE.md | Ausgabestile | systemPrompt mit Anhang | Benutzerdefinierte systemPrompt |
|---|---|---|---|---|
| Persistenz | Pro-Projekt-Datei | Als Dateien gespeichert | Nur Sitzung | Nur Sitzung |
| Wiederverwendbarkeit | Pro-Projekt | Über Projekte hinweg | Code-Duplizierung | Code-Duplizierung |
| Verwaltung | Im Dateisystem | CLI + Dateien | Im Code | Im Code |
| Standard-Tools | Beibehalten | Beibehalten | Beibehalten | Verloren (sofern nicht enthalten) |
| Integrierte Sicherheit | Beibehalten | Beibehalten | Beibehalten | Muss hinzugefügt werden |
| Umgebungskontext | Automatisch | Automatisch | Automatisch | Muss bereitgestellt werden |
| Anpassungsebene | Nur Ergänzungen | Standard ersetzen | Nur Ergänzungen | Vollständige Kontrolle |
| Versionskontrolle | Mit Projekt | Ja | Mit Code | Mit Code |
| Umfang | Projektspezifisch | Benutzer oder Projekt | Code-Sitzung | Code-Sitzung |
Hinweis: „Mit Anhang" 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:
npm run lint:fix vor dem Commit ausführen"migrations/"Wichtig: Um CLAUDE.md-Dateien zu laden, müssen Sie explizit settingSources: ['project'] (TypeScript) oder setting_sources=["project"] (Python) festlegen. Die claude_code-Systemanfrage-Voreinstellung lädt CLAUDE.md ohne diese Einstellung NICHT automatisch.
Am besten für:
Beispiele:
systemPrompt mit Anhang verwendenAm besten für:
systemPrompt verwendenAm besten für:
Sie können diese Methoden kombinieren, um maximale Flexibilität zu erreichen:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Angenommen, der Ausgabestil „Code Reviewer" ist aktiv (über /output-style)
// Sitzungsspezifische Fokusbereich hinzufügen
const messages = [];
for await (const message of query({
prompt: "Review this authentication module",
options: {
systemPrompt: {
type: "preset",
preset: "claude_code",
append: `
For this review, prioritize:
- OAuth 2.0 compliance
- Token storage security
- Session management
`,
},
},
})) {
messages.push(message);
}Was this page helpful?