Probieren Sie die neue V2-Schnittstelle (Vorschau): Eine vereinfachte Schnittstelle mit
send()- und stream()-Mustern ist jetzt verfügbar und macht Multi-Turn-Konversationen einfacher. Erfahren Sie mehr über die TypeScript V2-VorschauInstallation
Das SDK bündelt eine native Claude Code-Binärdatei für Ihre Plattform als optionale Abhängigkeit wie
@anthropic-ai/claude-agent-sdk-darwin-arm64. Sie müssen Claude Code nicht separat installieren. Wenn Ihr Paketmanager optionale Abhängigkeiten überspringt, wirft das SDK Native CLI binary for <platform> not found; setzen Sie stattdessen pathToClaudeCodeExecutable auf eine separat installierte claude-Binärdatei.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 Zeichenkette 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.
startup()
Wärmt den CLI-Unterprozess vor, indem er ihn spawnt und den Initialize-Handshake abschließt, bevor eine Eingabeaufforderung verfügbar ist. Das zurückgegebene WarmQuery-Handle akzeptiert später eine Eingabeaufforderung und schreibt sie in einen bereits bereiten Prozess, sodass der erste query()-Aufruf ohne Kosten für das Spawnen und Initialisieren des Unterprozesses aufgelöst wird.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
options | Options | Optionales Konfigurationsobjekt. Gleich wie der options-Parameter für query() |
initializeTimeoutMs | number | Maximale Zeit in Millisekunden zum Warten auf die Unterprozessinitialisierung. Standardwert ist 60000. Wenn die Initialisierung nicht rechtzeitig abgeschlossen wird, lehnt das Promise mit einem Timeout-Fehler ab |
Rückgabewert
Gibt einPromise<WarmQuery> zurück, das aufgelöst wird, sobald der Unterprozess gespawnt wurde und seinen Initialize-Handshake abgeschlossen hat.
Beispiel
Rufen Siestartup() früh auf, beispielsweise beim Anwendungsstart, und rufen Sie dann .query() auf dem zurückgegebenen Handle auf, sobald eine Eingabeaufforderung bereit ist. Dies verschiebt das Spawnen und die Initialisierung des Unterprozesses aus dem kritischen Pfad.
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 AnyZodRawShape | Zod-Schema, das die Eingabeparameter des Tools definiert (unterstützt sowohl Zod 3 als auch Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Asynchrone Funktion, die die Tool-Logik ausführt |
extras | { annotations?: ToolAnnotations } | Optionale MCP-Tool-Anmerkungen, die Verhaltenshinweise für Clients bereitstellen |
ToolAnnotations
Erneut exportiert aus @modelcontextprotocol/sdk/types.js. Alle Felder sind optionale Hinweise; Clients sollten sich nicht auf sie für Sicherheitsentscheidungen verlassen.
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
title | string | undefined | Benutzerfreundlicher Titel für das Tool |
readOnlyHint | boolean | false | Wenn true, ändert das Tool seine Umgebung nicht |
destructiveHint | boolean | true | Wenn true, kann das Tool destruktive Updates durchführen (nur sinnvoll, wenn readOnlyHint false ist) |
idempotentHint | boolean | false | Wenn true, haben wiederholte Aufrufe mit denselben Argumenten keine zusätzliche Auswirkung (nur sinnvoll, wenn readOnlyHint false ist) |
openWorldHint | boolean | true | Wenn true, interagiert das Tool mit externen Entitäten (z. B. Websuche). Wenn false, ist die Domäne des Tools geschlossen (z. B. ein Memory-Tool) |
createSdkMcpServer()
Erstellt eine MCP-Server-Instanz, die im selben Prozess wie Ihre Anwendung ausgeführt wird.
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
options.name | string | Der Name des MCP-Servers |
options.version | string | Optionale Versionsnummer |
options.tools | Array<SdkMcpToolDefinition> | Array von Tool-Definitionen, die mit tool() erstellt wurden |
listSessions()
Entdeckt und listet vergangene Sitzungen mit leichten Metadaten auf. Filtern Sie nach Projektverzeichnis oder listen Sie Sitzungen über alle Projekte auf.
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
options.dir | string | undefined | Verzeichnis, für das Sitzungen aufgelistet werden sollen. Wenn weggelassen, werden Sitzungen über alle Projekte zurückgegeben |
options.limit | number | undefined | Maximale Anzahl der zurückzugebenden Sitzungen |
options.includeWorktrees | boolean | true | Wenn dir sich in einem Git-Repository befindet, Sitzungen aus allen Worktree-Pfaden einbeziehen |
Rückgabetyp: SDKSessionInfo
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
sessionId | string | Eindeutige Sitzungs-ID (UUID) |
summary | string | Anzeigetitel: benutzerdefinierter Titel, automatisch generierte Zusammenfassung oder erste Eingabeaufforderung |
lastModified | number | Letzte Änderungszeit in Millisekunden seit Epoch |
fileSize | number | undefined | Sitzungsdateigröße in Bytes. Nur für lokale JSONL-Speicherung gefüllt |
customTitle | string | undefined | Vom Benutzer festgelegter Sitzungstitel (über /rename) |
firstPrompt | string | undefined | Erste aussagekräftige Benutzer-Eingabeaufforderung in der Sitzung |
gitBranch | string | undefined | Git-Branch am Ende der Sitzung |
cwd | string | undefined | Arbeitsverzeichnis für die Sitzung |
tag | string | undefined | Vom Benutzer festgelegtes Sitzungs-Tag (siehe tagSession()) |
createdAt | number | undefined | Erstellungszeit in Millisekunden seit Epoch, vom Zeitstempel des ersten Eintrags |
Beispiel
Geben Sie die 10 neuesten Sitzungen für ein Projekt aus. Ergebnisse werden nachlastModified absteigend sortiert, sodass das erste Element das neueste ist. Lassen Sie dir weg, um über alle Projekte zu suchen.
getSessionMessages()
Liest Benutzer- und Assistenten-Nachrichten aus einem vergangenen Sitzungstranskript.
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
sessionId | string | erforderlich | Sitzungs-UUID zum Lesen (siehe listSessions()) |
options.dir | string | undefined | Projektverzeichnis, in dem die Sitzung zu finden ist. Wenn weggelassen, werden alle Projekte durchsucht |
options.limit | number | undefined | Maximale Anzahl der zurückzugebenden Nachrichten |
options.offset | number | undefined | Anzahl der Nachrichten, die vom Anfang übersprungen werden sollen |
Rückgabetyp: SessionMessage
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
type | "user" | "assistant" | Nachrichtenrolle |
uuid | string | Eindeutige Nachrichten-ID |
session_id | string | Sitzung, zu der diese Nachricht gehört |
message | unknown | Rohe Nachricht-Payload aus dem Transkript |
parent_tool_use_id | null | Reserviert |
Beispiel
getSessionInfo()
Liest Metadaten für eine einzelne Sitzung nach ID, ohne das vollständige Projektverzeichnis zu scannen.
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
sessionId | string | erforderlich | UUID der zu suchenden Sitzung |
options.dir | string | undefined | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |
SDKSessionInfo zurück, oder undefined, wenn die Sitzung nicht gefunden wird.
renameSession()
Benennt eine Sitzung um, indem ein benutzerdefinierter Titeleintrag angehängt wird. Wiederholte Aufrufe sind sicher; der neueste Titel gewinnt.
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
sessionId | string | erforderlich | UUID der umzubenennenden Sitzung |
title | string | erforderlich | Neuer Titel. Muss nach dem Trimmen von Leerzeichen nicht leer sein |
options.dir | string | undefined | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |
tagSession()
Taggt eine Sitzung. Übergeben Sie null, um das Tag zu löschen. Wiederholte Aufrufe sind sicher; das neueste Tag gewinnt.
Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
sessionId | string | erforderlich | UUID der zu taggenden Sitzung |
tag | string | null | erforderlich | Tag-Zeichenkette oder null zum Löschen |
options.dir | string | undefined | Projektverzeichnispfad. Wenn weggelassen, werden alle Projektverzeichnisse durchsucht |
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 |
agent | string | undefined | Agent-Name für den Hauptthread. Der Agent muss in der agents-Option oder in den Einstellungen definiert sein |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Programmatische Definition von Subagenten |
allowDangerouslySkipPermissions | boolean | false | Aktivieren Sie das Umgehen von Berechtigungen. Erforderlich bei Verwendung von permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Tools, die automatisch genehmigt werden, ohne zu fragen. Dies beschränkt Claude nicht nur auf diese Tools; nicht aufgelistete Tools fallen durch permissionMode und canUseTool. Verwenden Sie disallowedTools, um Tools zu blockieren. Siehe Berechtigungen |
betas | SdkBeta[] | [] | Beta-Funktionen aktivieren |
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 |
debug | boolean | false | Aktivieren Sie den Debug-Modus für den Claude Code-Prozess |
debugFile | string | undefined | Schreiben Sie Debug-Protokolle in einen bestimmten Dateipfad. Aktiviert implizit den Debug-Modus |
disallowedTools | string[] | [] | Tools, die immer verweigert werden. Deny-Regeln werden zuerst überprüft und überschreiben allowedTools und permissionMode (einschließlich bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Steuert, wie viel Aufwand Claude in seine Antwort investiert. Funktioniert mit adaptivem Denken, um die Denktiefe zu lenken |
enableFileCheckpointing | boolean | false | Aktivieren Sie die Dateienänderungsverfolgung zum Zurückspulen. Siehe Datei-Checkpointing |
env | Record<string, string | undefined> | process.env | Umgebungsvariablen. Setzen Sie CLAUDE_AGENT_SDK_CLIENT_APP, um Ihre App im User-Agent-Header zu identifizieren |
executable | 'bun' | 'deno' | 'node' | Automatisch erkannt | JavaScript-Laufzeit zum Verwenden |
executableArgs | string[] | [] | Argumente, die an die ausführbare Datei übergeben werden sollen |
extraArgs | Record<string, string | null> | {} | Zusätzliche Argumente |
fallbackModel | string | undefined | Modell, das verwendet werden soll, 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 einbeziehen |
maxBudgetUsd | number | undefined | Beenden Sie die Abfrage, wenn die clientseitige Kostenschätzung diesen USD-Wert erreicht. Verglichen mit derselben Schätzung wie total_cost_usd; siehe Kosten und Nutzung verfolgen für Genauigkeitsvorbehalt |
maxThinkingTokens | number | undefined | Veraltet: Verwenden Sie stattdessen thinking. Maximale Token für den Denkprozess |
maxTurns | number | undefined | Maximale agentengesteuerte Turns (Tool-Use-Roundtrips) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | MCP-Server-Konfigurationen |
model | string | Standard aus CLI | Claude-Modell zum Verwenden |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Definieren Sie das Ausgabeformat für Agent-Ergebnisse. Siehe Strukturierte Ausgaben für Details |
pathToClaudeCodeExecutable | string | Automatisch aufgelöst aus gebündelter nativer Binärdatei | Pfad zur Claude Code-Ausführungsdatei. Nur erforderlich, wenn optionale Abhängigkeiten während der Installation übersprungen wurden oder Ihre Plattform nicht in der unterstützten Menge enthalten ist |
permissionMode | PermissionMode | 'default' | Berechtigungsmodus für die Sitzung |
permissionPromptToolName | string | undefined | MCP-Tool-Name für Berechtigungsaufforderungen |
persistSession | boolean | true | Wenn false, deaktiviert die Sitzungspersistenz auf der Festplatte. Sitzungen können später nicht fortgesetzt werden |
plugins | SdkPluginConfig[] | [] | Laden Sie benutzerdefinierte Plugins aus lokalen Pfaden. Siehe Plugins für Details |
promptSuggestions | boolean | false | Aktivieren Sie Eingabeaufforderungsvorschläge. Gibt nach jedem Turn eine prompt_suggestion-Nachricht mit einer vorhergesagten nächsten Benutzer-Eingabeaufforderung aus |
resume | string | undefined | Sitzungs-ID zum Fortsetzen |
resumeSessionAt | string | undefined | Sitzung bei einer bestimmten Nachrichten-UUID fortsetzen |
sandbox | SandboxSettings | undefined | Konfigurieren Sie das Sandbox-Verhalten programmatisch. Siehe Sandbox-Einstellungen für Details |
sessionId | string | Automatisch generiert | Verwenden Sie eine bestimmte UUID für die Sitzung, anstatt eine zu generieren |
settingSources | SettingSource[] | CLI-Standards (alle Quellen) | Steuern Sie, welche Dateisystem-Einstellungen geladen werden. Übergeben Sie [], um Benutzer-, Projekt- und lokale Einstellungen zu deaktivieren. Verwaltete Richtlinieneinstellungen werden unabhängig davon geladen. Siehe Claude Code-Funktionen verwenden |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Benutzerdefinierte Funktion zum Spawnen des Claude Code-Prozesses. Verwenden Sie, um Claude Code in VMs, Containern oder Remote-Umgebungen auszuführen |
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; excludeDynamicSections?: boolean } | undefined (minimale Eingabeaufforderung) | Konfiguration der Systemeingabeaufforderung. Übergeben Sie eine Zeichenkette für eine benutzerdefinierte Eingabeaufforderung oder { type: 'preset', preset: 'claude_code' }, um die Systemeingabeaufforderung von Claude Code zu verwenden. Bei Verwendung der Preset-Objektform fügen Sie append hinzu, um sie mit zusätzlichen Anweisungen zu erweitern, und setzen Sie excludeDynamicSections: true, um sitzungsspezifischen Kontext in die erste Benutzer-Nachricht zu verschieben, um bessere Prompt-Cache-Wiederverwendung über Maschinen hinweg |
thinking | ThinkingConfig | { type: 'adaptive' } für unterstützte Modelle | Steuert das Denk-/Reasoning-Verhalten von Claude. Siehe ThinkingConfig für Optionen |
toolConfig | ToolConfig | undefined | Konfiguration für das Verhalten integrierter Tools. Siehe ToolConfig für Details |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Tool-Konfiguration. Übergeben Sie ein Array von Tool-Namen oder verwenden Sie die Voreinstellung, um die Standard-Tools von Claude Code zu erhalten |
Query-Objekt
Schnittstelle, die von der query()-Funktion zurückgegeben wird.
Methoden
| Methode | Beschreibung |
|---|---|
interrupt() | Unterbricht die Abfrage (nur im Streaming-Eingabemodus verfügbar) |
rewindFiles(userMessageId, options?) | Stellt Dateien in ihren Zustand bei der angegebenen Benutzer-Nachricht wieder her. Übergeben Sie { dryRun: true }, um Änderungen in der Vorschau anzuzeigen. Erfordert enableFileCheckpointing: true. Siehe Datei-Checkpointing |
setPermissionMode() | Ändert den Berechtigungsmodus (nur im Streaming-Eingabemodus verfügbar) |
setModel() | Ändert das Modell (nur im Streaming-Eingabemodus verfügbar) |
setMaxThinkingTokens() | Veraltet: Verwenden Sie stattdessen die thinking-Option. Ändert die maximalen Denk-Token |
initializationResult() | Gibt das vollständige Initialisierungsergebnis zurück, einschließlich unterstützter Befehle, Modelle, Kontoinformationen und Ausgabestil-Konfiguration |
supportedCommands() | Gibt verfügbare Slash-Befehle zurück |
supportedModels() | Gibt verfügbare Modelle mit Anzeigeinformationen zurück |
supportedAgents() | Gibt verfügbare Subagenten als AgentInfo[] zurück |
mcpServerStatus() | Gibt den Status verbundener MCP-Server zurück |
accountInfo() | Gibt Kontoinformationen zurück |
reconnectMcpServer(serverName) | Verbinden Sie einen MCP-Server nach Name erneut |
toggleMcpServer(serverName, enabled) | Aktivieren oder deaktivieren Sie einen MCP-Server nach Name |
setMcpServers(servers) | Ersetzen Sie dynamisch die Menge der MCP-Server für diese Sitzung. Gibt Informationen darüber zurück, welche Server hinzugefügt, entfernt und welche Fehler aufgetreten sind |
streamInput(stream) | Streamen Sie Eingabenachrichten zur Abfrage für Multi-Turn-Konversationen |
stopTask(taskId) | Beenden Sie eine laufende Hintergrund-Aufgabe nach ID |
close() | Schließen Sie die Abfrage und beenden Sie den zugrunde liegenden Prozess. Beendet die Abfrage erzwungen und bereinigt alle Ressourcen |
WarmQuery
Handle, das von startup() zurückgegeben wird. Der Unterprozess ist bereits gespawnt und initialisiert, sodass das Aufrufen von query() auf diesem Handle die Eingabeaufforderung direkt in einen bereiten Prozess ohne Startup-Latenz schreibt.
Methoden
| Methode | Beschreibung |
|---|---|
query(prompt) | Senden Sie eine Eingabeaufforderung an den vorgewärmten Unterprozess und geben Sie ein Query zurück. Kann nur einmal pro WarmQuery aufgerufen werden |
close() | Schließen Sie den Unterprozess, ohne eine Eingabeaufforderung zu senden. Verwenden Sie dies, um eine warme Abfrage zu verwerfen, die nicht mehr benötigt wird |
WarmQuery implementiert AsyncDisposable, sodass es mit await using für automatische Bereinigung verwendet werden kann.
SDKControlInitializeResponse
Rückgabetyp von initializationResult(). Enthält Sitzungsinitialisierungsdaten.
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 vom übergeordneten Element |
disallowedTools | Nein | Array von Tool-Namen, die für diesen Agent explizit nicht zulässig sind |
prompt | Ja | Die Systemeingabeaufforderung des Agenten |
model | Nein | Modellüberschreibung für diesen Agenten. Wenn weggelassen oder 'inherit', verwendet das Hauptmodell |
mcpServers | Nein | MCP-Server-Spezifikationen für diesen Agenten |
skills | Nein | Array von Skill-Namen, die in den Agent-Kontext vorgeladen werden sollen |
maxTurns | Nein | Maximale Anzahl agentengesteuerter Turns (API-Roundtrips) vor dem Stoppen |
criticalSystemReminder_EXPERIMENTAL | Nein | Experimentell: Kritische Erinnerung, die zur Systemeingabeaufforderung hinzugefügt wird |
AgentMcpServerSpec
Gibt MCP-Server an, die einem Subagenten zur Verfügung stehen. Kann ein Server-Name (Zeichenkette, die auf einen Server aus der mcpServers-Konfiguration des übergeordneten Elements verweist) oder eine Inline-Server-Konfiguration sein, die Server-Namen auf Konfigurationen abbildet.
McpServerConfigForProcessTransport McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig ist.
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 query() die gleichen Dateisystem-Einstellungen wie die Claude Code CLI: Benutzer, Projekt und lokal. Verwaltete Richtlinieneinstellungen werden in allen Fällen geladen. Siehe Was settingSources nicht steuert für Eingaben, die unabhängig von dieser Option gelesen werden, und wie man sie deaktiviert.
Warum settingSources verwenden
Dateisystem-Einstellungen deaktivieren:Einstellungspriorität
Wenn mehrere Quellen geladen werden, werden Einstellungen mit dieser Priorität zusammengeführt (höchste zu niedrigste):- Lokale Einstellungen (
.claude/settings.local.json) - Projekteinstellungen (
.claude/settings.json) - Benutzereinstellungen (
~/.claude/settings.json)
agents und allowedTools überschreiben Benutzer-, Projekt- und lokale Dateisystem-Einstellungen. Verwaltete Richtlinieneinstellungen haben Vorrang vor programmatischen Optionen.
PermissionMode
CanUseTool
Benutzerdefinierte Berechtigungsfunktionstyp zur Steuerung der Tool-Nutzung.
| Option | Typ | Beschreibung |
|---|---|---|
signal | AbortSignal | Signalisiert, wenn die Operation abgebrochen werden soll |
suggestions | PermissionUpdate[] | Vorgeschlagene Berechtigungsaktualisierungen, damit der Benutzer nicht erneut für dieses Tool aufgefordert wird |
blockedPath | string | Der Dateipfad, der die Berechtigungsanfrage ausgelöst hat, falls zutreffend |
decisionReason | string | Erklärt, warum diese Berechtigungsanfrage ausgelöst wurde |
toolUseID | string | Eindeutige ID für diesen spezifischen Tool-Aufruf innerhalb der Assistenten-Nachricht |
agentID | string | Wenn innerhalb eines Sub-Agenten ausgeführt, die ID des Sub-Agenten |
PermissionResult
Ergebnis einer Berechtigungsprüfung.
ToolConfig
Konfiguration für das Verhalten integrierter Tools.
| Feld | Typ | Beschreibung |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Aktiviert das preview-Feld auf AskUserQuestion-Optionen und legt sein Inhaltsformat fest. Wenn nicht gesetzt, gibt Claude keine Vorschau aus |
McpServerConfig
Konfiguration für MCP-Server.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Konfiguration zum Laden von Plugins im SDK.
| Feld | Typ | Beschreibung |
|---|---|---|
type | 'local' | Muss 'local' sein (derzeit 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
Assistenten-Antwortnachricht.
message-Feld ist eine BetaMessage aus dem Anthropic SDK. Es enthält Felder wie id, content, model, stop_reason und usage.
SDKAssistantMessageError ist einer von: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens' oder 'unknown'.
SDKUserMessage
Benutzer-Eingabenachricht.
shouldQuery auf false, um die Nachricht zum Transkript hinzuzufügen, ohne einen Assistenten-Turn auszulösen. Die Nachricht wird gehalten und in die nächste Benutzer-Nachricht zusammengeführt, die einen Turn auslöst. Verwenden Sie dies, um Kontext einzufügen, z. B. die Ausgabe eines Befehls, den Sie außerhalb des Bands ausgeführt haben, ohne einen Modell-Aufruf dafür auszugeben.
SDKUserMessageReplay
Wiedergegebene Benutzer-Nachricht mit erforderlicher UUID.
SDKResultMessage
Endgültige Ergebnis-Nachricht.
SDKSystemMessage
System-Initialisierungsnachricht.
SDKPartialAssistantMessage
Streaming-Teilnachricht (nur wenn includePartialMessages true ist).
SDKCompactBoundaryMessage
Nachricht, die eine Konversations-Komprimierungsgrenze anzeigt.
SDKPluginInstallMessage
Plugin-Installationsfortschritt-Ereignis. Wird ausgegeben, wenn CLAUDE_CODE_SYNC_PLUGIN_INSTALL gesetzt ist, damit Ihre Agent SDK-Anwendung die Marketplace-Plugin-Installation vor dem ersten Turn verfolgen kann. Die started- und completed-Status klammern die Gesamtinstallation. Die installed- und failed-Status melden einzelne Marketplaces und enthalten name.
SDKPermissionDenial
Informationen über einen verweigerten Tool-Einsatz.
Hook-Typen
Einen umfassenden Leitfaden zur Verwendung von Hooks mit Beispielen und häufigen Mustern finden Sie im Hooks-Leitfaden.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
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
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.
ToolInputSchemas
Union aller Tool-Eingabetypen, exportiert aus @anthropic-ai/claude-agent-sdk.
Agent
Tool-Name:Agent (zuvor Task, das immer noch als Alias akzeptiert wird)
AskUserQuestion
Tool-Name:AskUserQuestion
Bash
Tool-Name:Bash
Monitor
Tool-Name:Monitor
persistent: true für Sitzungslängen-Watches wie Log-Tails. Monitor folgt den gleichen Berechtigungsregeln wie Bash. Siehe die Monitor-Tool-Referenz für Verhalten und Anbieter-Verfügbarkeit.
TaskOutput
Tool-Name:TaskOutput
Edit
Tool-Name:Edit
Read
Tool-Name:Read
pages für PDF-Seitenbereiche (z. B. "1-5").
Write
Tool-Name:Write
Glob
Tool-Name:Glob
Grep
Tool-Name:Grep
TaskStop
Tool-Name:TaskStop
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
Config
Tool-Name:Config
EnterWorktree
Tool-Name:EnterWorktree
path, um stattdessen in einen vorhandenen Worktree des aktuellen Repositorys zu wechseln. name und path schließen sich gegenseitig aus.
Tool-Ausgabetypen
Dokumentation von Ausgabeschemas für alle integrierten Claude Code-Tools. Diese Typen werden aus@anthropic-ai/claude-agent-sdk exportiert und stellen die tatsächlichen Antwortdaten dar, die von jedem Tool zurückgegeben werden.
ToolOutputSchemas
Union aller Tool-Ausgabetypen.
Agent
Tool-Name:Agent (zuvor Task, das immer noch als Alias akzeptiert wird)
status-Feld: "completed" für abgeschlossene Aufgaben, "async_launched" für Hintergrund-Aufgaben und "sub_agent_entered" für interaktive Subagenten.
AskUserQuestion
Tool-Name:AskUserQuestion
Bash
Tool-Name:Bash
backgroundTaskId.
Monitor
Tool-Name:Monitor
TaskStop, um die Watch früh zu stornieren.
Edit
Tool-Name:Edit
Read
Tool-Name:Read
type-Feld.
Write
Tool-Name:Write
Glob
Tool-Name:Glob
Grep
Tool-Name:Grep
mode: Dateiliste, Inhalt mit Übereinstimmungen oder Übereinstimmungszahlen.
TaskStop
Tool-Name:TaskStop
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
Config
Tool-Name:Config
EnterWorktree
Tool-Name:EnterWorktree
Berechtigungstypen
PermissionUpdate
Operationen zum Aktualisieren von Berechtigungen.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Andere Typen
ApiKeySource
SdkBeta
Verfügbare Beta-Funktionen, die über die betas-Option aktiviert werden können. Siehe Beta-Header für weitere Informationen.
SlashCommand
Informationen über einen verfügbaren Slash-Befehl.
ModelInfo
Informationen über ein verfügbares Modell.
AgentInfo
Informationen über einen verfügbaren Subagenten, der über das Agent-Tool aufgerufen werden kann.
| Feld | Typ | Beschreibung |
|---|---|---|
name | string | Agent-Typ-Identifikator (z. B. "Explore", "general-purpose") |
description | string | Beschreibung, wann dieser Agent verwendet werden soll |
model | string | undefined | Modell-Alias, den dieser Agent verwendet. Wenn weggelassen, erbt das übergeordnete Modell |
McpServerStatus
Status eines verbundenen MCP-Servers.
McpServerStatusConfig
Die Konfiguration eines MCP-Servers, wie von mcpServerStatus() gemeldet. Dies ist die Union aller MCP-Server-Transporttypen.
McpServerConfig für Details zu jedem Transporttyp.
AccountInfo
Kontoinformationen für den authentifizierten Benutzer.
ModelUsage
Pro-Modell-Nutzungsstatistiken, die in Ergebnis-Nachrichten zurückgegeben werden. Der costUSD-Wert ist eine clientseitige Schätzung. Siehe Kosten und Nutzung verfolgen für Abrechnungsvorbehalt.
ConfigScope
NonNullableUsage
Eine Version von Usage mit allen nullable Feldern, die nicht nullable gemacht werden.
Usage
Token-Nutzungsstatistiken (aus @anthropic-ai/sdk).
CallToolResult
MCP-Tool-Ergebnistyp (aus @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Steuert das Denk-/Reasoning-Verhalten von Claude. Hat Vorrang vor dem veralteten maxThinkingTokens.
SpawnedProcess
Schnittstelle für benutzerdefiniertes Process-Spawning (verwendet mit spawnClaudeCodeProcess-Option). ChildProcess erfüllt bereits diese Schnittstelle.
SpawnOptions
Optionen, die an die benutzerdefinierte Spawn-Funktion übergeben werden.
McpSetServersResult
Ergebnis einer setMcpServers()-Operation.
RewindFilesResult
Ergebnis einer rewindFiles()-Operation.
SDKStatusMessage
Status-Update-Nachricht (z. B. Komprimierung).
SDKTaskNotificationMessage
Benachrichtigung, wenn eine Hintergrund-Aufgabe abgeschlossen, fehlgeschlagen oder gestoppt wird. Hintergrund-Aufgaben umfassen run_in_background Bash-Befehle, Monitor-Watches und Hintergrund-Subagenten.
SDKToolUseSummaryMessage
Zusammenfassung der Tool-Nutzung in einer Konversation.
SDKHookStartedMessage
Wird ausgegeben, wenn ein Hook mit der Ausführung beginnt.
SDKHookProgressMessage
Wird ausgegeben, während ein Hook läuft, mit Stdout/Stderr-Ausgabe.
SDKHookResponseMessage
Wird ausgegeben, wenn ein Hook die Ausführung beendet.
SDKToolProgressMessage
Wird regelmäßig ausgegeben, während ein Tool ausgeführt wird, um Fortschritt anzuzeigen.
SDKAuthStatusMessage
Wird während Authentifizierungsflüssen ausgegeben.
SDKTaskStartedMessage
Wird ausgegeben, wenn eine Hintergrund-Aufgabe beginnt. Das task_type-Feld ist "local_bash" für Hintergrund-Bash-Befehle und Monitor-Watches, "local_agent" für Subagenten oder "remote_agent".
SDKTaskProgressMessage
Wird regelmäßig ausgegeben, während eine Hintergrund-Aufgabe läuft.
SDKFilesPersistedEvent
Wird ausgegeben, wenn Datei-Checkpoints auf der Festplatte persistiert werden.
SDKRateLimitEvent
Wird ausgegeben, wenn die Sitzung auf ein Ratenlimit trifft.
SDKLocalCommandOutputMessage
Ausgabe aus einem lokalen Slash-Befehl (z. B. /voice oder /cost). Wird als Assistenten-ähnlicher Text im Transkript angezeigt.
SDKPromptSuggestionMessage
Wird nach jedem Turn ausgegeben, wenn promptSuggestions aktiviert ist. Enthält eine vorhergesagte nächste Benutzer-Eingabeaufforderung.
AbortError
Benutzerdefinierte Fehlerklasse für Abbruchoperationen.
Sandbox-Konfiguration
SandboxSettings
Konfiguration für Sandbox-Verhalten. Verwenden Sie dies, um Command-Sandboxing zu aktivieren und Netzwerkbeschränkungen programmatisch zu konfigurieren.
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
enabled | boolean | false | Aktivieren Sie den Sandbox-Modus für die Befehlsausführung |
autoAllowBashIfSandboxed | boolean | true | Bash-Befehle automatisch genehmigen, wenn Sandbox aktiviert ist |
excludedCommands | string[] | [] | Befehle, die immer Sandbox-Beschränkungen umgehen (z. B. ['docker']). Diese werden automatisch ohne Modellbeteiligung unsandboxed ausgeführt |
allowUnsandboxedCommands | boolean | true | Erlauben Sie dem Modell, die Ausführung von Befehlen außerhalb der Sandbox anzufordern. Wenn true, kann das Modell dangerouslyDisableSandbox in der Tool-Eingabe setzen, was auf das Berechtigungssystem zurückfällt |
network | SandboxNetworkConfig | undefined | Netzwerkspezifische Sandbox-Konfiguration |
filesystem | SandboxFilesystemConfig | undefined | Dateisystemspezifische Sandbox-Konfiguration für Lese-/Schreibbeschränkungen |
ignoreViolations | Record<string, string[]> | undefined | Zuordnung von Verletzungskategorien zu Mustern zum Ignorieren (z. B. { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Aktivieren Sie eine schwächere verschachtelte Sandbox für Kompatibilität |
ripgrep | { command: string; args?: string[] } | undefined | Benutzerdefinierte ripgrep-Binärkonfiguration für Sandbox-Umgebungen |
Beispielverwendung
SandboxNetworkConfig
Netzwerkspezifische Konfiguration für den Sandbox-Modus.
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
allowedDomains | string[] | [] | Domänennamen, auf die Sandbox-Prozesse zugreifen können |
deniedDomains | string[] | [] | Domänennamen, auf die Sandbox-Prozesse nicht zugreifen können. Hat Vorrang vor allowedDomains |
allowManagedDomainsOnly | boolean | false | Beschränken Sie den Netzwerkzugriff nur auf die Domänen in allowedDomains |
allowLocalBinding | boolean | false | Erlauben Sie Prozessen, sich an lokale Ports zu binden (z. B. für Dev-Server) |
allowUnixSockets | string[] | [] | Unix-Socket-Pfade, auf die Prozesse zugreifen können (z. B. Docker-Socket) |
allowAllUnixSockets | boolean | false | Erlauben Sie Zugriff auf alle Unix-Sockets |
httpProxyPort | number | undefined | HTTP-Proxy-Port für Netzwerkanfragen |
socksProxyPort | number | undefined | SOCKS-Proxy-Port für Netzwerkanfragen |
SandboxFilesystemConfig
Dateisystemspezifische Konfiguration für den Sandbox-Modus.
| Eigenschaft | Typ | Standard | Beschreibung |
|---|---|---|---|
allowWrite | string[] | [] | Dateipfadmuster, um Schreibzugriff zu ermöglichen |
denyWrite | string[] | [] | Dateipfadmuster, um Schreibzugriff zu verweigern |
denyRead | string[] | [] | Dateipfadmuster, um Lesezugriff zu verweigern |
Berechtigungen-Fallback für Unsandboxed-Befehle
WennallowUnsandboxedCommands aktiviert ist, kann das Modell anfordern, Befehle außerhalb der Sandbox auszuführen, indem es dangerouslyDisableSandbox: true in der Tool-Eingabe setzt. Diese Anfragen fallen auf das bestehende Berechtigungssystem zurück, was bedeutet, dass Ihr canUseTool-Handler aufgerufen wird, sodass Sie benutzerdefinierte Autorisierungslogik implementieren können.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Eine statische Liste von Befehlen, die immer automatisch die Sandbox umgehen (z. B.['docker']). Das Modell hat keine Kontrolle darüber.allowUnsandboxedCommands: Lässt das Modell zur Laufzeit entscheiden, ob es die Ausführung außerhalb der Sandbox anfordert, indem esdangerouslyDisableSandbox: truein der Tool-Eingabe setzt.
- Modell-Anfragen prüfen: Protokollieren Sie, wenn das Modell unsandboxed Ausführung anfordert
- Allowlists implementieren: Nur bestimmte Befehle dürfen unsandboxed ausgeführt werden
- Genehmigungsworkflows hinzufügen: Erfordern Sie explizite Autorisierung für privilegierte Operationen
Siehe auch
- SDK-Übersicht - Allgemeine SDK-Konzepte
- Python SDK-Referenz - Python SDK-Dokumentation
- CLI-Referenz - Befehlszeilenschnittstelle
- Häufige Workflows - Schritt-für-Schritt-Anleitungen