Installation
Funktionen
query()
Die primäre Funktion für die Interaktion mit Claude Code. Erstellt einen asynchronen Generator, der Nachrichten streamt, wenn sie ankommen.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Die Eingabeaufforderung als String oder asynchrones Iterable für den Streaming-Modus |
options | Options | Optionales Konfigurationsobjekt (siehe Options-Typ unten) |
Rückgabewert
Gibt einQuery-Objekt zurück, das AsyncGenerator<SDKMessage, void> mit zusätzlichen Methoden erweitert.
tool()
Erstellt eine typsichere MCP-Tool-Definition zur Verwendung mit SDK MCP-Servern.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
name | string | Der Name des Tools |
description | string | Eine Beschreibung, was das Tool tut |
inputSchema | Schema extends ZodRawShape | Zod-Schema, das die Eingabeparameter des Tools definiert |
handler | (args, extra) => Promise<CallToolResult> | Asynchrone Funktion, die die Tool-Logik ausführt |
createSdkMcpServer()
Erstellt eine MCP-Server-Instanz, die im gleichen Prozess wie Ihre Anwendung ausgeführt wird.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
options.name | string | Der Name des MCP-Servers |
options.version | string | Optionale Versionszeichenfolge |
options.tools | Array<SdkMcpToolDefinition> | Array von Tool-Definitionen, die mit tool() erstellt wurden |
Typen
Options
Konfigurationsobjekt für die query()-Funktion.
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
abortController | AbortController | new AbortController() | Controller zum Abbrechen von Operationen |
additionalDirectories | string[] | [] | Zusätzliche Verzeichnisse, auf die Claude zugreifen kann |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | Programmatische Definition von Subagenten |
allowedTools | string[] | Alle Tools | Liste der zulässigen Tool-Namen |
canUseTool | CanUseTool | undefined | Benutzerdefinierte Berechtigungsfunktion für die Tool-Nutzung |
continue | boolean | false | Setzen Sie die neueste Konversation fort |
cwd | string | process.cwd() | Aktuelles Arbeitsverzeichnis |
disallowedTools | string[] | [] | Liste der nicht zulässigen Tool-Namen |
env | Dict<string> | process.env | Umgebungsvariablen |
executable | 'bun' | 'deno' | 'node' | Automatisch erkannt | Zu verwendende JavaScript-Laufzeit |
executableArgs | string[] | [] | Argumente, die an die ausführbare Datei übergeben werden |
extraArgs | Record<string, string | null> | {} | Zusätzliche Argumente |
fallbackModel | string | undefined | Modell, das verwendet wird, wenn das primäre fehlschlägt |
forkSession | boolean | false | Beim Fortsetzen mit resume zu einer neuen Sitzungs-ID verzweigen, anstatt die ursprüngliche Sitzung fortzusetzen |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Hook-Callbacks für Ereignisse |
includePartialMessages | boolean | false | Teilweise Nachrichtenereignisse einschließen |
maxThinkingTokens | number | undefined | Maximale Token für den Denkprozess |
maxTurns | number | undefined | Maximale Konversationsrunden |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | MCP-Server-Konfigurationen |
model | string | Standard aus CLI | Zu verwendendes Claude-Modell |
pathToClaudeCodeExecutable | string | Automatisch erkannt | Pfad zur Claude Code-Ausführungsdatei |
permissionMode | PermissionMode | 'default' | Berechtigungsmodus für die Sitzung |
permissionPromptToolName | string | undefined | MCP-Tool-Name für Berechtigungsaufforderungen |
plugins | SdkPluginConfig[] | [] | Laden Sie benutzerdefinierte Plugins aus lokalen Pfaden. Siehe Plugins für Details |
resume | string | undefined | Sitzungs-ID zum Fortsetzen |
settingSources | SettingSource[] | [] (keine Einstellungen) | Steuern Sie, welche Dateisystem-Einstellungen geladen werden. Wenn weggelassen, werden keine Einstellungen geladen. Hinweis: Muss 'project' enthalten, um CLAUDE.md-Dateien zu laden |
stderr | (data: string) => void | undefined | Callback für stderr-Ausgabe |
strictMcpConfig | boolean | false | Erzwingen Sie strikte MCP-Validierung |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (leere Aufforderung) | Systemanforderungskonfiguration. Übergeben Sie einen String für eine benutzerdefinierte Aufforderung oder { type: 'preset', preset: 'claude_code' }, um die Systemanforderung von Claude Code zu verwenden. Wenn Sie die Preset-Objektform verwenden, fügen Sie append hinzu, um die Systemanforderung mit zusätzlichen Anweisungen zu erweitern |
Query
Schnittstelle, die von der query()-Funktion zurückgegeben wird.
Methoden
| Methode | Beschreibung |
|---|---|
interrupt() | Unterbricht die Abfrage (nur im Streaming-Eingabemodus verfügbar) |
setPermissionMode() | Ändert den Berechtigungsmodus (nur im Streaming-Eingabemodus verfügbar) |
AgentDefinition
Konfiguration für einen programmatisch definierten Subagenten.
| Feld | Erforderlich | Beschreibung |
|---|---|---|
description | Ja | Natürlichsprachige Beschreibung, wann dieser Agent verwendet werden soll |
tools | Nein | Array von zulässigen Tool-Namen. Wenn weggelassen, erbt alle Tools |
prompt | Ja | Die Systemaufforderung des Agenten |
model | Nein | Modellüberschreibung für diesen Agenten. Wenn weggelassen, wird das Hauptmodell verwendet |
SettingSource
Steuert, welche dateisystembasierte Konfigurationsquellen das SDK Einstellungen aus lädt.
| Wert | Beschreibung | Ort |
|---|---|---|
'user' | Globale Benutzereinstellungen | ~/.claude/settings.json |
'project' | Gemeinsame Projekteinstellungen (versionskontrolliert) | .claude/settings.json |
'local' | Lokale Projekteinstellungen (gitignoriert) | .claude/settings.local.json |
Standardverhalten
WennsettingSources weggelassen oder undefined ist, lädt das SDK keine Dateisystem-Einstellungen. Dies bietet Isolation für SDK-Anwendungen.
Warum settingSources verwenden?
Alle Dateisystem-Einstellungen laden (Legacy-Verhalten):Einstellungspriorität
Wenn mehrere Quellen geladen werden, werden Einstellungen mit dieser Priorität zusammengeführt (höchste bis niedrigste):- Lokale Einstellungen (
.claude/settings.local.json) - Projekteinstellungen (
.claude/settings.json) - Benutzereinstellungen (
~/.claude/settings.json)
agents, allowedTools) überschreiben immer Dateisystem-Einstellungen.
PermissionMode
CanUseTool
Benutzerdefinierte Berechtigungsfunktionstyp zur Steuerung der Tool-Nutzung.
PermissionResult
Ergebnis einer Berechtigungsprüfung.
McpServerConfig
Konfiguration für MCP-Server.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
SdkPluginConfig
Konfiguration zum Laden von Plugins im SDK.
| Feld | Typ | Beschreibung |
|---|---|---|
type | 'local' | Muss 'local' sein (derzeit werden nur lokale Plugins unterstützt) |
path | string | Absoluter oder relativer Pfad zum Plugin-Verzeichnis |
Nachrichtentypen
SDKMessage
Union-Typ aller möglichen Nachrichten, die von der Abfrage zurückgegeben werden.
SDKAssistantMessage
Antwortnachricht des Assistenten.
SDKUserMessage
Benutzereingabenachricht.
SDKUserMessageReplay
Wiedergegebene Benutzernachricht mit erforderlicher UUID.
SDKResultMessage
Endgültige Ergebnisnachricht.
SDKSystemMessage
Systeminitalisierungsnachricht.
SDKPartialAssistantMessage
Streaming-Teilnachricht (nur wenn includePartialMessages true ist).
SDKCompactBoundaryMessage
Nachricht, die eine Konversationskomprimierungsgrenze anzeigt.
SDKPermissionDenial
Informationen über eine verweigerte Tool-Nutzung.
Hook-Typen
HookEvent
Verfügbare Hook-Ereignisse.
HookCallback
Hook-Callback-Funktionstyp.
HookCallbackMatcher
Hook-Konfiguration mit optionalem Matcher.
HookInput
Union-Typ aller Hook-Eingabetypen.
BaseHookInput
Basis-Schnittstelle, die alle Hook-Eingabetypen erweitern.
PreToolUseHookInput
PostToolUseHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Hook-Rückgabewert.
AsyncHookJSONOutput
SyncHookJSONOutput
Tool-Eingabetypen
Dokumentation von Eingabeschemas für alle integrierten Claude Code-Tools. Diese Typen werden aus@anthropic-ai/claude-agent-sdk exportiert und können für typsichere Tool-Interaktionen verwendet werden.
ToolInput
Hinweis: Dies ist ein reiner Dokumentationstyp zur Verdeutlichung. Er stellt die Union aller Tool-Eingabetypen dar.
Task
Tool-Name:Task
Bash
Tool-Name:Bash
BashOutput
Tool-Name:BashOutput
Edit
Tool-Name:Edit
Read
Tool-Name:Read
Write
Tool-Name:Write
Glob
Tool-Name:Glob
Grep
Tool-Name:Grep
KillBash
Tool-Name:KillBash
NotebookEdit
Tool-Name:NotebookEdit
WebFetch
Tool-Name:WebFetch
WebSearch
Tool-Name:WebSearch
TodoWrite
Tool-Name:TodoWrite
ExitPlanMode
Tool-Name:ExitPlanMode
ListMcpResources
Tool-Name:ListMcpResources
ReadMcpResource
Tool-Name:ReadMcpResource
Tool-Ausgabetypen
Dokumentation von Ausgabeschemas für alle integrierten Claude Code-Tools. Diese Typen stellen die tatsächlichen Antwortdaten dar, die von jedem Tool zurückgegeben werden.ToolOutput
Hinweis: Dies ist ein reiner Dokumentationstyp zur Verdeutlichung. Er stellt die Union aller Tool-Ausgabetypen dar.
Task
Tool-Name:Task
Bash
Tool-Name:Bash
BashOutput
Tool-Name:BashOutput
Edit
Tool-Name:Edit
Read
Tool-Name:Read
Write
Tool-Name:Write
Glob
Tool-Name:Glob
Grep
Tool-Name:Grep
KillBash
Tool-Name:KillBash
NotebookEdit
Tool-Name:NotebookEdit
WebFetch
Tool-Name:WebFetch
WebSearch
Tool-Name:WebSearch
TodoWrite
Tool-Name:TodoWrite
ExitPlanMode
Tool-Name:ExitPlanMode
ListMcpResources
Tool-Name:ListMcpResources
ReadMcpResource
Tool-Name:ReadMcpResource
Berechtigungstypen
PermissionUpdate
Operationen zum Aktualisieren von Berechtigungen.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Andere Typen
ApiKeySource
ConfigScope
NonNullableUsage
Eine Version von Usage mit allen nullable Feldern, die nicht nullable gemacht wurden.
Usage
Token-Nutzungsstatistiken (aus @anthropic-ai/sdk).
CallToolResult
MCP-Tool-Ergebnistyp (aus @modelcontextprotocol/sdk/types.js).
AbortError
Benutzerdefinierte Fehlerklasse für Abbruchoperationen.
Siehe auch
- SDK-Übersicht - Allgemeine SDK-Konzepte
- Python SDK-Referenz - Python SDK-Dokumentation
- CLI-Referenz - Befehlszeilenschnittstelle
- Häufige Workflows - Schritt-für-Schritt-Anleitungen