Probieren Sie die neue V2-Schnittstelle (Vorschau): Eine vereinfachte Schnittstelle mit send()- und receive()-Mustern ist jetzt verfügbar und macht Multi-Turn-Konversationen einfacher. Erfahren Sie mehr über die TypeScript V2-Vorschau
npm install @anthropic-ai/claude-agent-sdkquery()Die primäre Funktion für die Interaktion mit Claude Code. Erstellt einen asynchronen Generator, der Nachrichten streamt, sobald sie ankommen.
function query({
prompt,
options
}: {
prompt: string | AsyncIterable<SDKUserMessage>;
options?: Options;
}): Query| 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) |
Gibt ein Query-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.
function tool<Schema extends ZodRawShape>(
name: string,
description: string,
inputSchema: Schema,
handler: (args: z.infer<ZodObject<Schema>>, extra: unknown) => Promise<CallToolResult>
): SdkMcpToolDefinition<Schema>| 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.
function createSdkMcpServer(options: {
name: string;
version?: string;
tools?: Array<SdkMcpToolDefinition<any>>;
}): McpSdkServerConfigWithInstance| 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 |
OptionsKonfigurationsobjekt 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 | Programmatisch definierte Subagenten |
allowDangerouslySkipPermissions | boolean | false | Umgehen von Berechtigungen aktivieren. Erforderlich bei Verwendung von permissionMode: 'bypassPermissions' |
allowedTools | string[] | Alle Tools | Liste der zulässigen Tool-Namen |
betas | SdkBeta[] | [] | Beta-Funktionen aktivieren (z. B. ['context-1m-2025-08-07']) |
canUseTool | CanUseTool | undefined | Benutzerdefinierte Berechtigungsfunktion für die Tool-Nutzung |
continue | boolean | false | Die neueste Konversation fortsetzen |
cwd | string | process.cwd() | Aktuelles Arbeitsverzeichnis |
disallowedTools | string[] | [] | Liste der nicht zulässigen Tool-Namen |
enableFileCheckpointing | boolean | false | Dateiänderungsverfolgung für Zurückspulen aktivieren. Siehe Datei-Checkpointing |
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 zur Verwendung, 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 |
maxBudgetUsd | number | undefined | Maximales Budget in USD für die Abfrage |
maxThinkingTokens | number | undefined | Maximale Token für den Denkprozess |
maxTurns | number | undefined | Maximale Konversations-Turns |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | MCP-Server-Konfigurationen |
model | string | Standard aus CLI | Zu verwendendes Claude-Modell |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Ausgabeformat für Agent-Ergebnisse definieren. Siehe Strukturierte Ausgaben für Details |
pathToClaudeCodeExecutable | string | Verwendet integrierte ausführbare Datei | Pfad zur Claude Code-ausführbaren Datei |
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 |
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 |
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 | Strikte MCP-Validierung erzwingen |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string } | undefined (minimale Aufforderung) | Systemanforderungskonfiguration. Übergeben Sie einen String für eine benutzerdefinierte Aufforderung oder { type: 'preset', preset: 'claude_code' }, um die Systemaufforderung von Claude Code zu verwenden. Wenn Sie die Preset-Objektform verwenden, fügen Sie append hinzu, um die Systemaufforderung mit zusätzlichen Anweisungen zu erweitern |
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 |
QuerySchnittstelle, die von der query()-Funktion zurückgegeben wird.
interface Query extends AsyncGenerator<SDKMessage, void> {
interrupt(): Promise<void>;
rewindFiles(userMessageUuid: string): Promise<void>;
setPermissionMode(mode: PermissionMode): Promise<void>;
setModel(model?: string): Promise<void>;
setMaxThinkingTokens(maxThinkingTokens: number | null): Promise<void>;
supportedCommands(): Promise<SlashCommand[]>;
supportedModels(): Promise<ModelInfo[]>;
mcpServerStatus(): Promise<McpServerStatus[]>;
accountInfo(): Promise<AccountInfo>;
}| Methode | Beschreibung |
|---|---|
interrupt() | Unterbricht die Abfrage (nur im Streaming-Eingabemodus verfügbar) |
rewindFiles(userMessageUuid) | Stellt Dateien in ihren Zustand bei der angegebenen Benutzernachricht wieder her. 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() | Ändert die maximalen Denktoken (nur im Streaming-Eingabemodus verfügbar) |
supportedCommands() | Gibt verfügbare Schrägstrich-Befehle zurück |
supportedModels() | Gibt verfügbare Modelle mit Anzeigeinformationen zurück |
mcpServerStatus() | Gibt den Status verbundener MCP-Server zurück |
accountInfo() | Gibt Kontoinformationen zurück |
AgentDefinitionKonfiguration für einen programmatisch definierten Subagenten.
type AgentDefinition = {
description: string;
tools?: string[];
prompt: string;
model?: 'sonnet' | 'opus' | 'haiku' | 'inherit';
}| 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, verwendet das Hauptmodell |
SettingSourceSteuert, welche dateisystembasierte Konfigurationsquellen das SDK lädt.
type SettingSource = 'user' | 'project' | 'local';| Wert | Beschreibung | Ort |
|---|---|---|
'user' | Globale Benutzereinstellungen | ~/.claude/settings.json |
'project' | Gemeinsame Projekteinstellungen (versionskontrolliert) | .claude/settings.json |
'local' | Lokale Projekteinstellungen (gitignoriert) | .claude/settings.local.json |
Wenn settingSources weggelassen oder undefined ist, lädt das SDK keine Dateisystem-Einstellungen. Dies bietet Isolation für SDK-Anwendungen.
Laden Sie alle Dateisystem-Einstellungen (Legacy-Verhalten):
// Laden Sie alle Einstellungen wie SDK v0.0.x
const result = query({
prompt: "Analyze this code",
options: {
settingSources: ['user', 'project', 'local'] // Laden Sie alle Einstellungen
}
});Laden Sie nur bestimmte Einstellungsquellen:
// Laden Sie nur Projekteinstellungen, ignorieren Sie Benutzer und lokal
const result = query({
prompt: "Run CI checks",
options: {
settingSources: ['project'] // Nur .claude/settings.json
}
});Test- und CI-Umgebungen:
// Stellen Sie konsistentes Verhalten in CI sicher, indem Sie lokale Einstellungen ausschließen
const result = query({
prompt: "Run tests",
options: {
settingSources: ['project'], // Nur teamweit gemeinsame Einstellungen
permissionMode: 'bypassPermissions'
}
});SDK-only-Anwendungen:
// Definieren Sie alles programmatisch (Standardverhalten)
// Keine Dateisystem-Abhängigkeiten - settingSources standardmäßig auf []
const result = query({
prompt: "Review this PR",
options: {
// settingSources: [] ist der Standard, keine Angabe erforderlich
agents: { /* ... */ },
mcpServers: { /* ... */ },
allowedTools: ['Read', 'Grep', 'Glob']
}
});Laden von CLAUDE.md-Projektanweisungen:
// Laden Sie Projekteinstellungen, um CLAUDE.md-Dateien einzuschließen
const result = query({
prompt: "Add a new feature following project conventions",
options: {
systemPrompt: {
type: 'preset',
preset: 'claude_code' // Erforderlich zur Verwendung von CLAUDE.md
},
settingSources: ['project'], // Lädt CLAUDE.md aus dem Projektverzeichnis
allowedTools: ['Read', 'Write', 'Edit']
}
});Wenn mehrere Quellen geladen werden, werden Einstellungen mit dieser Priorität zusammengeführt (höchste zu niedrigste):
.claude/settings.local.json).claude/settings.json)~/.claude/settings.json)Programmatische Optionen (wie agents, allowedTools) überschreiben immer Dateisystem-Einstellungen.
PermissionModetype PermissionMode =
| 'default' // Standardberechtigungsverhalten
| 'acceptEdits' // Dateibearbeitungen automatisch akzeptieren
| 'bypassPermissions' // Alle Berechtigungsprüfungen umgehen
| 'plan' // Planungsmodus - keine AusführungCanUseToolBenutzerdefinierter Berechtigungsfunktionstyp zur Steuerung der Tool-Nutzung.
type CanUseTool = (
toolName: string,
input: ToolInput,
options: {
signal: AbortSignal;
suggestions?: PermissionUpdate[];
}
) => Promise<PermissionResult>;PermissionResultErgebnis einer Berechtigungsprüfung.
type PermissionResult =
| {
behavior: 'allow';
updatedInput: ToolInput;
updatedPermissions?: PermissionUpdate[];
}
| {
behavior: 'deny';
message: string;
interrupt?: boolean;
}McpServerConfigKonfiguration für MCP-Server.
type McpServerConfig =
| McpStdioServerConfig
| McpSSEServerConfig
| McpHttpServerConfig
| McpSdkServerConfigWithInstance;McpStdioServerConfigtype McpStdioServerConfig = {
type?: 'stdio';
command: string;
args?: string[];
env?: Record<string, string>;
}McpSSEServerConfigtype McpSSEServerConfig = {
type: 'sse';
url: string;
headers?: Record<string, string>;
}McpHttpServerConfigtype McpHttpServerConfig = {
type: 'http';
url: string;
headers?: Record<string, string>;
}McpSdkServerConfigWithInstancetype McpSdkServerConfigWithInstance = {
type: 'sdk';
name: string;
instance: McpServer;
}SdkPluginConfigKonfiguration zum Laden von Plugins im SDK.
type SdkPluginConfig = {
type: 'local';
path: string;
}| Feld | Typ | Beschreibung |
|---|---|---|
type | 'local' | Muss 'local' sein (derzeit werden nur lokale Plugins unterstützt) |
path | string | Absoluter oder relativer Pfad zum Plugin-Verzeichnis |
Beispiel:
plugins: [
{ type: 'local', path: './my-plugin' },
{ type: 'local', path: '/absolute/path/to/plugin' }
]Vollständige Informationen zum Erstellen und Verwenden von Plugins finden Sie unter Plugins.
SDKMessageUnion-Typ aller möglichen Nachrichten, die von der Abfrage zurückgegeben werden.
type SDKMessage =
| SDKAssistantMessage
| SDKUserMessage
| SDKUserMessageReplay
| SDKResultMessage
| SDKSystemMessage
| SDKPartialAssistantMessage
| SDKCompactBoundaryMessage;SDKAssistantMessageAntwortnachricht des Assistenten.
type SDKAssistantMessage = {
type: 'assistant';
uuid: UUID;
session_id: string;
message: APIAssistantMessage; // Aus Anthropic SDK
parent_tool_use_id: string | null;
}SDKUserMessageBenutzereingabenachricht.
type SDKUserMessage = {
type: 'user';
uuid?: UUID;
session_id: string;
message: APIUserMessage; // Aus Anthropic SDK
parent_tool_use_id: string | null;
}SDKUserMessageReplayWiedergegebene Benutzernachricht mit erforderlicher UUID.
type SDKUserMessageReplay = {
type: 'user';
uuid: UUID;
session_id: string;
message: APIUserMessage;
parent_tool_use_id: string | null;
}SDKResultMessageEndgültige Ergebnisnachricht.
type SDKResultMessage =
| {
type: 'result';
subtype: 'success';
uuid: UUID;
session_id: string;
duration_ms: number;
duration_api_ms: number;
is_error: boolean;
num_turns: number;
result: string;
total_cost_usd: number;
usage: NonNullableUsage;
modelUsage: { [modelName: string]: ModelUsage };
permission_denials: SDKPermissionDenial[];
structured_output?: unknown;
}
| {
type: 'result';
subtype:
| 'error_max_turns'
| 'error_during_execution'
| 'error_max_budget_usd'
| 'error_max_structured_output_retries';
uuid: UUID;
session_id: string;
duration_ms: number;
duration_api_ms: number;
is_error: boolean;
num_turns: number;
total_cost_usd: number;
usage: NonNullableUsage;
modelUsage: { [modelName: string]: ModelUsage };
permission_denials: SDKPermissionDenial[];
errors: string[];
}SDKSystemMessageSysteminitialisierungsnachricht.
type SDKSystemMessage = {
type: 'system';
subtype: 'init';
uuid: UUID;
session_id: string;
apiKeySource: ApiKeySource;
cwd: string;
tools: string[];
mcp_servers: {
name: string;
status: string;
}[];
model: string;
permissionMode: PermissionMode;
slash_commands: string[];
output_style: string;
}SDKPartialAssistantMessageStreaming-Teilnachricht (nur wenn includePartialMessages true ist).
type SDKPartialAssistantMessage = {
type: 'stream_event';
event: RawMessageStreamEvent; // Aus Anthropic SDK
parent_tool_use_id: string | null;
uuid: UUID;
session_id: string;
}SDKCompactBoundaryMessageNachricht, die eine Konversationskomprimierungsgrenze anzeigt.
type SDKCompactBoundaryMessage = {
type: 'system';
subtype: 'compact_boundary';
uuid: UUID;
session_id: string;
compact_metadata: {
trigger: 'manual' | 'auto';
pre_tokens: number;
};
}SDKPermissionDenialInformationen über eine verweigerte Tool-Nutzung.
type SDKPermissionDenial = {
tool_name: string;
tool_use_id: string;
tool_input: ToolInput;
}Eine umfassende Anleitung zur Verwendung von Hooks mit Beispielen und häufigen Mustern finden Sie im Hooks-Leitfaden.
HookEventVerfügbare Hook-Ereignisse.
type HookEvent =
| 'PreToolUse'
| 'PostToolUse'
| 'PostToolUseFailure'
| 'Notification'
| 'UserPromptSubmit'
| 'SessionStart'
| 'SessionEnd'
| 'Stop'
| 'SubagentStart'
| 'SubagentStop'
| 'PreCompact'
| 'PermissionRequest';HookCallbackHook-Callback-Funktionstyp.
type HookCallback = (
input: HookInput, // Union aller Hook-Eingabetypen
toolUseID: string | undefined,
options: { signal: AbortSignal }
) => Promise<HookJSONOutput>;HookCallbackMatcherHook-Konfiguration mit optionalem Matcher.
interface HookCallbackMatcher {
matcher?: string;
hooks: HookCallback[];
}HookInputUnion-Typ aller Hook-Eingabetypen.
type HookInput =
| PreToolUseHookInput
| PostToolUseHookInput
| PostToolUseFailureHookInput
| NotificationHookInput
| UserPromptSubmitHookInput
| SessionStartHookInput
| SessionEndHookInput
| StopHookInput
| SubagentStartHookInput
| SubagentStopHookInput
| PreCompactHookInput
| PermissionRequestHookInput;BaseHookInputBasisschnittstelle, die alle Hook-Eingabetypen erweitern.
type BaseHookInput = {
session_id: string;
transcript_path: string;
cwd: string;
permission_mode?: string;
}PreToolUseHookInputtype PreToolUseHookInput = BaseHookInput & {
hook_event_name: 'PreToolUse';
tool_name: string;
tool_input: unknown;
}PostToolUseHookInputtype PostToolUseHookInput = BaseHookInput & {
hook_event_name: 'PostToolUse';
tool_name: string;
tool_input: unknown;
tool_response: unknown;
}PostToolUseFailureHookInputtype PostToolUseFailureHookInput = BaseHookInput & {
hook_event_name: 'PostToolUseFailure';
tool_name: string;
tool_input: unknown;
error: string;
is_interrupt?: boolean;
}NotificationHookInputtype NotificationHookInput = BaseHookInput & {
hook_event_name: 'Notification';
message: string;
title?: string;
}UserPromptSubmitHookInputtype UserPromptSubmitHookInput = BaseHookInput & {
hook_event_name: 'UserPromptSubmit';
prompt: string;
}SessionStartHookInputtype SessionStartHookInput = BaseHookInput & {
hook_event_name: 'SessionStart';
source: 'startup' | 'resume' | 'clear' | 'compact';
}SessionEndHookInputtype SessionEndHookInput = BaseHookInput & {
hook_event_name: 'SessionEnd';
reason: ExitReason; // String aus EXIT_REASONS-Array
}StopHookInputtype StopHookInput = BaseHookInput & {
hook_event_name: 'Stop';
stop_hook_active: boolean;
}SubagentStartHookInputtype SubagentStartHookInput = BaseHookInput & {
hook_event_name: 'SubagentStart';
agent_id: string;
agent_type: string;
}SubagentStopHookInputtype SubagentStopHookInput = BaseHookInput & {
hook_event_name: 'SubagentStop';
stop_hook_active: boolean;
}PreCompactHookInputtype PreCompactHookInput = BaseHookInput & {
hook_event_name: 'PreCompact';
trigger: 'manual' | 'auto';
custom_instructions: string | null;
}PermissionRequestHookInputtype PermissionRequestHookInput = BaseHookInput & {
hook_event_name: 'PermissionRequest';
tool_name: string;
tool_input: unknown;
permission_suggestions?: PermissionUpdate[];
}HookJSONOutputHook-Rückgabewert.
type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;AsyncHookJSONOutputtype AsyncHookJSONOutput = {
async: true;
asyncTimeout?: number;
}SyncHookJSONOutputtype SyncHookJSONOutput = {
continue?: boolean;
suppressOutput?: boolean;
stopReason?: string;
decision?: 'approve' | 'block';
systemMessage?: string;
reason?: string;
hookSpecificOutput?:
| {
hookEventName: 'PreToolUse';
permissionDecision?: 'allow' | 'deny' | 'ask';
permissionDecisionReason?: string;
updatedInput?: Record<string, unknown>;
}
| {
hookEventName: 'UserPromptSubmit';
additionalContext?: string;
}
| {
hookEventName: 'SessionStart';
additionalContext?: string;
}
| {
hookEventName: 'PostToolUse';
additionalContext?: string;
};
}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.
ToolInputHinweis: Dies ist ein reiner Dokumentationstyp zur Verdeutlichung. Er stellt die Union aller Tool-Eingabetypen dar.
type ToolInput =
| AgentInput
| AskUserQuestionInput
| BashInput
| BashOutputInput
| FileEditInput
| FileReadInput
| FileWriteInput
| GlobInput
| GrepInput
| KillShellInput
| NotebookEditInput
| WebFetchInput
| WebSearchInput
| TodoWriteInput
| ExitPlanModeInput
| ListMcpResourcesInput
| ReadMcpResourceInput;Tool-Name: Task
interface AgentInput {
/**
* Eine kurze (3-5 Wörter) Beschreibung der Aufgabe
*/
description: string;
/**
* Die Aufgabe, die der Agent ausführen soll
*/
prompt: string;
/**
* Der Typ des spezialisierten Agenten, der für diese Aufgabe verwendet werden soll
*/
subagent_type: string;
}Startet einen neuen Agenten, um komplexe, mehrstufige Aufgaben autonom zu bewältigen.
Tool-Name: AskUserQuestion
interface AskUserQuestionInput {
/**
* Fragen, die der Benutzer beantworten soll (1-4 Fragen)
*/
questions: Array<{
/**
* Die vollständige Frage, die dem Benutzer gestellt werden soll. Sollte klar und spezifisch sein
* und mit einem Fragezeichen enden.
*/
question: string;
/**
* Sehr kurzes Label, das als Chip/Tag angezeigt wird (max. 12 Zeichen).
* Beispiele: "Auth method", "Library", "Approach"
*/
header: string;
/**
* Die verfügbaren Auswahlmöglichkeiten (2-4 Optionen). Eine "Other"-Option wird
* automatisch bereitgestellt.
*/
options: Array<{
/**
* Anzeigetext für diese Option (1-5 Wörter)
*/
label: string;
/**
* Erklärung, was diese Option bedeutet
*/
description: string;
}>;
/**
* Auf true setzen, um mehrere Auswahlen zu ermöglichen
*/
multiSelect: boolean;
}>;
/**
* Benutzerantworten, die vom Berechtigungssystem ausgefüllt werden.
* Ordnet Fragetext ausgewählten Optionslabeln zu.
* Multi-Select-Antworten sind durch Kommas getrennt.
*/
answers?: Record<string, string>;
}Stellt dem Benutzer während der Ausführung Klärungsfragen. Siehe Genehmigungen und Benutzereingaben verarbeiten für Verwendungsdetails.
Tool-Name: Bash
interface BashInput {
/**
* Der auszuführende Befehl
*/
command: string;
/**
* Optionales Timeout in Millisekunden (max. 600000)
*/
timeout?: number;
/**
* Klare, prägnante Beschreibung, was dieser Befehl in 5-10 Wörtern tut
*/
description?: string;
/**
* Auf true setzen, um diesen Befehl im Hintergrund auszuführen
*/
run_in_background?: boolean;
}Führt Bash-Befehle in einer persistenten Shell-Sitzung mit optionalem Timeout und Hintergrundausführung aus.
Tool-Name: BashOutput
interface BashOutputInput {
/**
* Die ID der Hintergrund-Shell, von der die Ausgabe abgerufen werden soll
*/
bash_id: string;
/**
* Optionaler Regex zum Filtern von Ausgabezeilen
*/
filter?: string;
}Ruft die Ausgabe einer laufenden oder abgeschlossenen Hintergrund-Bash-Shell ab.
Tool-Name: Edit
interface FileEditInput {
/**
* Der absolute Pfad zur zu ändernden Datei
*/
file_path: string;
/**
* Der zu ersetzende Text
*/
old_string: string;
/**
* Der Text, durch den er ersetzt werden soll (muss sich von old_string unterscheiden)
*/
new_string: string;
/**
* Alle Vorkommen von old_string ersetzen (Standard false)
*/
replace_all?: boolean;
}Führt genaue String-Ersetzungen in Dateien durch.
Tool-Name: Read
interface FileReadInput {
/**
* Der absolute Pfad zur zu lesenden Datei
*/
file_path: string;
/**
* Die Zeilennummer, ab der gelesen werden soll
*/
offset?: number;
/**
* Die Anzahl der zu lesenden Zeilen
*/
limit?: number;
}Liest Dateien aus dem lokalen Dateisystem, einschließlich Text, Bilder, PDFs und Jupyter-Notebooks.
Tool-Name: Write
interface FileWriteInput {
/**
* Der absolute Pfad zur zu schreibenden Datei
*/
file_path: string;
/**
* Der in die Datei zu schreibende Inhalt
*/
content: string;
}Schreibt eine Datei in das lokale Dateisystem und überschreibt sie, falls vorhanden.
Tool-Name: Glob
interface GlobInput {
/**
* Das Glob-Muster, das gegen Dateien abgeglichen werden soll
*/
pattern: string;
/**
* Das zu durchsuchende Verzeichnis (Standard: cwd)
*/
path?: string;
}Schnelle Dateimusterabgleichung, die mit jeder Codebasis-Größe funktioniert.
Tool-Name: Grep
interface GrepInput {
/**
* Das reguläre Ausdrucksmuster, nach dem gesucht werden soll
*/
pattern: string;
/**
* Datei oder Verzeichnis, in dem gesucht werden soll (Standard: cwd)
*/
path?: string;
/**
* Glob-Muster zum Filtern von Dateien (z. B. "*.js")
*/
glob?: string;
/**
* Dateityp, in dem gesucht werden soll (z. B. "js", "py", "rust")
*/
type?: string;
/**
* Ausgabemodus: "content", "files_with_matches" oder "count"
*/
output_mode?: 'content' | 'files_with_matches' | 'count';
/**
* Suche ohne Beachtung von Groß-/Kleinschreibung
*/
'-i'?: boolean;
/**
* Zeilennummern anzeigen (für Content-Modus)
*/
'-n'?: boolean;
/**
* Zeilen vor jedem Match anzeigen
*/
'-B'?: number;
/**
* Zeilen nach jedem Match anzeigen
*/
'-A'?: number;
/**
* Zeilen vor und nach jedem Match anzeigen
*/
'-C'?: number;
/**
* Ausgabe auf erste N Zeilen/Einträge begrenzen
*/
head_limit?: number;
/**
* Mehrzeilenmodus aktivieren
*/
multiline?: boolean;
}Leistungsstarkes Suchwerkzeug basierend auf ripgrep mit Regex-Unterstützung.
Tool-Name: KillBash
interface KillShellInput {
/**
* Die ID der zu beendenden Hintergrund-Shell
*/
shell_id: string;
}Beendet eine laufende Hintergrund-Bash-Shell nach ihrer ID.
Tool-Name: NotebookEdit
interface NotebookEditInput {
/**
* Der absolute Pfad zur Jupyter-Notebook-Datei
*/
notebook_path: string;
/**
* Die ID der zu bearbeitenden Zelle
*/
cell_id?: string;
/**
* Die neue Quelle für die Zelle
*/
new_source: string;
/**
* Der Typ der Zelle (Code oder Markdown)
*/
cell_type?: 'code' | 'markdown';
/**
* Der Typ der Bearbeitung (ersetzen, einfügen, löschen)
*/
edit_mode?: 'replace' | 'insert' | 'delete';
}Bearbeitet Zellen in Jupyter-Notebook-Dateien.
Tool-Name: WebFetch
interface WebFetchInput {
/**
* Die URL, von der Inhalte abgerufen werden sollen
*/
url: string;
/**
* Die Aufforderung, die auf den abgerufenen Inhalt angewendet werden soll
*/
prompt: string;
}Ruft Inhalte von einer URL ab und verarbeitet sie mit einem KI-Modell.
Tool-Name: WebSearch
interface WebSearchInput {
/**
* Die zu verwendende Suchabfrage
*/
query: string;
/**
* Nur Ergebnisse von diesen Domains einschließen
*/
allowed_domains?: string[];
/**
* Ergebnisse von diesen Domains niemals einschließen
*/
blocked_domains?: string[];
}Durchsucht das Web und gibt formatierte Ergebnisse zurück.
Tool-Name: TodoWrite
interface TodoWriteInput {
/**
* Die aktualisierte Todo-Liste
*/
todos: Array<{
/**
* Die Aufgabenbeschreibung
*/
content: string;
/**
* Der Aufgabenstatus
*/
status: 'pending' | 'in_progress' | 'completed';
/**
* Aktive Form der Aufgabenbeschreibung
*/
activeForm: string;
}>;
}Erstellt und verwaltet eine strukturierte Aufgabenliste zur Verfolgung des Fortschritts.
Tool-Name: ExitPlanMode
interface ExitPlanModeInput {
/**
* Der Plan, der vom Benutzer zur Genehmigung ausgeführt werden soll
*/
plan: string;
}Beendet den Planungsmodus und fordert den Benutzer auf, den Plan zu genehmigen.
Tool-Name: ListMcpResources
interface ListMcpResourcesInput {
/**
* Optionaler Servername zum Filtern von Ressourcen
*/
server?: string;
}Listet verfügbare MCP-Ressourcen von verbundenen Servern auf.
Tool-Name: ReadMcpResource
interface ReadMcpResourceInput {
/**
* Der MCP-Servername
*/
server: string;
/**
* Die zu lesende Ressourcen-URI
*/
uri: string;
}Liest eine bestimmte MCP-Ressource von einem Server.
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.
ToolOutputHinweis: Dies ist ein reiner Dokumentationstyp zur Verdeutlichung. Er stellt die Union aller Tool-Ausgabetypen dar.
type ToolOutput =
| TaskOutput
| AskUserQuestionOutput
| BashOutput
| BashOutputToolOutput
| EditOutput
| ReadOutput
| WriteOutput
| GlobOutput
| GrepOutput
| KillBashOutput
| NotebookEditOutput
| WebFetchOutput
| WebSearchOutput
| TodoWriteOutput
| ExitPlanModeOutput
| ListMcpResourcesOutput
| ReadMcpResourceOutput;Tool-Name: Task
interface TaskOutput {
/**
* Endgültige Ergebnisnachricht vom Subagenten
*/
result: string;
/**
* Token-Nutzungsstatistiken
*/
usage?: {
input_tokens: number;
output_tokens: number;
cache_creation_input_tokens?: number;
cache_read_input_tokens?: number;
};
/**
* Gesamtkosten in USD
*/
total_cost_usd?: number;
/**
* Ausführungsdauer in Millisekunden
*/
duration_ms?: number;
}Gibt das endgültige Ergebnis vom Subagenten nach Abschluss der delegierten Aufgabe zurück.
Tool-Name: AskUserQuestion
interface AskUserQuestionOutput {
/**
* Die gestellten Fragen
*/
questions: Array<{
question: string;
header: string;
options: Array<{
label: string;
description: string;
}>;
multiSelect: boolean;
}>;
/**
* Die vom Benutzer bereitgestellten Antworten.
* Ordnet Fragetext Antwortstring zu.
* Multi-Select-Antworten sind durch Kommas getrennt.
*/
answers: Record<string, string>;
}Gibt die gestellten Fragen und die Antworten des Benutzers zurück.
Tool-Name: Bash
interface BashOutput {
/**
* Kombinierte stdout- und stderr-Ausgabe
*/
output: string;
/**
* Exit-Code des Befehls
*/
exitCode: number;
/**
* Ob der Befehl aufgrund eines Timeouts beendet wurde
*/
killed?: boolean;
/**
* Shell-ID für Hintergrundprozesse
*/
shellId?: string;
}Gibt Befehlsausgabe mit Exit-Status zurück. Hintergrund-Befehle geben sofort mit einer shellId zurück.
Tool-Name: BashOutput
interface BashOutputToolOutput {
/**
* Neue Ausgabe seit der letzten Überprüfung
*/
output: string;
/**
* Aktueller Shell-Status
*/
status: 'running' | 'completed' | 'failed';
/**
* Exit-Code (wenn abgeschlossen)
*/
exitCode?: number;
}Gibt inkrementelle Ausgabe von Hintergrund-Shells zurück.
Tool-Name: Edit
interface EditOutput {
/**
* Bestätigungsnachricht
*/
message: string;
/**
* Anzahl der durchgeführten Ersetzungen
*/
replacements: number;
/**
* Dateipfad, der bearbeitet wurde
*/
file_path: string;
}Gibt eine Bestätigung erfolgreicher Bearbeitungen mit Ersetzungsanzahl zurück.
Tool name: Read
type ReadOutput =
| TextFileOutput
| ImageFileOutput
| PDFFileOutput
| NotebookFileOutput;
interface TextFileOutput {
/**
* File contents with line numbers
*/
content: string;
/**
* Total number of lines in file
*/
total_lines: number;
/**
* Lines actually returned
*/
lines_returned: number;
}
interface ImageFileOutput {
/**
* Base64 encoded image data
*/
image: string;
/**
* Image MIME type
*/
mime_type: string;
/**
* File size in bytes
*/
file_size: number;
}
interface PDFFileOutput {
/**
* Array of page contents
*/
pages: Array<{
page_number: number;
text?: string;
images?: Array<{
image: string;
mime_type: string;
}>;
}>;
/**
* Total number of pages
*/
total_pages: number;
}
interface NotebookFileOutput {
/**
* Jupyter notebook cells
*/
cells: Array<{
cell_type: 'code' | 'markdown';
source: string;
outputs?: any[];
execution_count?: number;
}>;
/**
* Notebook metadata
*/
metadata?: Record<string, any>;
}Gibt Dateiinhalte in einem für den Dateityp geeigneten Format zurück.
Tool name: Write
interface WriteOutput {
/**
* Success message
*/
message: string;
/**
* Number of bytes written
*/
bytes_written: number;
/**
* File path that was written
*/
file_path: string;
}Gibt eine Bestätigung nach erfolgreichem Schreiben der Datei zurück.
Tool name: Glob
interface GlobOutput {
/**
* Array of matching file paths
*/
matches: string[];
/**
* Number of matches found
*/
count: number;
/**
* Search directory used
*/
search_path: string;
}Gibt Dateipfade zurück, die dem Glob-Muster entsprechen, sortiert nach Änderungszeit.
Tool name: Grep
type GrepOutput =
| GrepContentOutput
| GrepFilesOutput
| GrepCountOutput;
interface GrepContentOutput {
/**
* Matching lines with context
*/
matches: Array<{
file: string;
line_number?: number;
line: string;
before_context?: string[];
after_context?: string[];
}>;
/**
* Total number of matches
*/
total_matches: number;
}
interface GrepFilesOutput {
/**
* Files containing matches
*/
files: string[];
/**
* Number of files with matches
*/
count: number;
}
interface GrepCountOutput {
/**
* Match counts per file
*/
counts: Array<{
file: string;
count: number;
}>;
/**
* Total matches across all files
*/
total: number;
}Gibt Suchergebnisse in dem durch output_mode angegebenen Format zurück.
Tool name: KillBash
interface KillBashOutput {
/**
* Success message
*/
message: string;
/**
* ID of the killed shell
*/
shell_id: string;
}Gibt eine Bestätigung nach Beendigung der Hintergrund-Shell zurück.
Tool name: NotebookEdit
interface NotebookEditOutput {
/**
* Success message
*/
message: string;
/**
* Type of edit performed
*/
edit_type: 'replaced' | 'inserted' | 'deleted';
/**
* Cell ID that was affected
*/
cell_id?: string;
/**
* Total cells in notebook after edit
*/
total_cells: number;
}Gibt eine Bestätigung nach Änderung des Jupyter-Notebooks zurück.
Tool name: WebFetch
interface WebFetchOutput {
/**
* AI model's response to the prompt
*/
response: string;
/**
* URL that was fetched
*/
url: string;
/**
* Final URL after redirects
*/
final_url?: string;
/**
* HTTP status code
*/
status_code?: number;
}Gibt die Analyse des abgerufenen Webinhalts durch das KI-Modell zurück.
Tool name: WebSearch
interface WebSearchOutput {
/**
* Search results
*/
results: Array<{
title: string;
url: string;
snippet: string;
/**
* Additional metadata if available
*/
metadata?: Record<string, any>;
}>;
/**
* Total number of results
*/
total_results: number;
/**
* The query that was searched
*/
query: string;
}Gibt formatierte Suchergebnisse aus dem Web zurück.
Tool name: TodoWrite
interface TodoWriteOutput {
/**
* Success message
*/
message: string;
/**
* Current todo statistics
*/
stats: {
total: number;
pending: number;
in_progress: number;
completed: number;
};
}Gibt eine Bestätigung mit aktuellen Aufgabenstatistiken zurück.
Tool name: ExitPlanMode
interface ExitPlanModeOutput {
/**
* Confirmation message
*/
message: string;
/**
* Whether user approved the plan
*/
approved?: boolean;
}Gibt eine Bestätigung nach Beendigung des Plan-Modus zurück.
Tool name: ListMcpResources
interface ListMcpResourcesOutput {
/**
* Available resources
*/
resources: Array<{
uri: string;
name: string;
description?: string;
mimeType?: string;
server: string;
}>;
/**
* Total number of resources
*/
total: number;
}Gibt eine Liste der verfügbaren MCP-Ressourcen zurück.
Tool name: ReadMcpResource
interface ReadMcpResourceOutput {
/**
* Resource contents
*/
contents: Array<{
uri: string;
mimeType?: string;
text?: string;
blob?: string;
}>;
/**
* Server that provided the resource
*/
server: string;
}Gibt den Inhalt der angeforderten MCP-Ressource zurück.
PermissionUpdateOperationen zum Aktualisieren von Berechtigungen.
type PermissionUpdate =
| {
type: 'addRules';
rules: PermissionRuleValue[];
behavior: PermissionBehavior;
destination: PermissionUpdateDestination;
}
| {
type: 'replaceRules';
rules: PermissionRuleValue[];
behavior: PermissionBehavior;
destination: PermissionUpdateDestination;
}
| {
type: 'removeRules';
rules: PermissionRuleValue[];
behavior: PermissionBehavior;
destination: PermissionUpdateDestination;
}
| {
type: 'setMode';
mode: PermissionMode;
destination: PermissionUpdateDestination;
}
| {
type: 'addDirectories';
directories: string[];
destination: PermissionUpdateDestination;
}
| {
type: 'removeDirectories';
directories: string[];
destination: PermissionUpdateDestination;
}PermissionBehaviortype PermissionBehavior = 'allow' | 'deny' | 'ask';PermissionUpdateDestinationtype PermissionUpdateDestination =
| 'userSettings' // Global user settings
| 'projectSettings' // Per-directory project settings
| 'localSettings' // Gitignored local settings
| 'session' // Current session onlyPermissionRuleValuetype PermissionRuleValue = {
toolName: string;
ruleContent?: string;
}ApiKeySourcetype ApiKeySource = 'user' | 'project' | 'org' | 'temporary';SdkBetaVerfügbare Beta-Funktionen, die über die Option betas aktiviert werden können. Weitere Informationen finden Sie unter Beta-Header.
type SdkBeta = 'context-1m-2025-08-07';| Value | Description | Compatible Models |
|---|---|---|
'context-1m-2025-08-07' | Aktiviert ein Fenster mit 1 Million Token context window | Claude Opus 4.6, Claude Sonnet 4.5, Claude Sonnet 4 |
SlashCommandInformationen über einen verfügbaren Schrägstrich-Befehl.
type SlashCommand = {
name: string;
description: string;
argumentHint: string;
}ModelInfoInformationen über ein verfügbares Modell.
type ModelInfo = {
value: string;
displayName: string;
description: string;
}McpServerStatusStatus eines verbundenen MCP-Servers.
type McpServerStatus = {
name: string;
status: 'connected' | 'failed' | 'needs-auth' | 'pending';
serverInfo?: {
name: string;
version: string;
};
}AccountInfoKontoinformationen für den authentifizierten Benutzer.
type AccountInfo = {
email?: string;
organization?: string;
subscriptionType?: string;
tokenSource?: string;
apiKeySource?: string;
}ModelUsageNutzungsstatistiken pro Modell, die in Ergebnismeldungen zurückgegeben werden.
type ModelUsage = {
inputTokens: number;
outputTokens: number;
cacheReadInputTokens: number;
cacheCreationInputTokens: number;
webSearchRequests: number;
costUSD: number;
contextWindow: number;
}ConfigScopetype ConfigScope = 'local' | 'user' | 'project';NonNullableUsageEine Version von Usage mit allen nullable Feldern, die nicht nullable gemacht wurden.
type NonNullableUsage = {
[K in keyof Usage]: NonNullable<Usage[K]>;
}UsageToken-Nutzungsstatistiken (von @anthropic-ai/sdk).
type Usage = {
input_tokens: number | null;
output_tokens: number | null;
cache_creation_input_tokens?: number | null;
cache_read_input_tokens?: number | null;
}CallToolResultMCP-Tool-Ergebnistyp (von @modelcontextprotocol/sdk/types.js).
type CallToolResult = {
content: Array<{
type: 'text' | 'image' | 'resource';
// Additional fields vary by type
}>;
isError?: boolean;
}AbortErrorBenutzerdefinierte Fehlerklasse für Abbruchvorgänge.
class AbortError extends Error {}SandboxSettingsKonfiguration für das Sandbox-Verhalten. Verwenden Sie dies, um Befehls-Sandboxing zu aktivieren und Netzwerkbeschränkungen programmgesteuert zu konfigurieren.
type SandboxSettings = {
enabled?: boolean;
autoAllowBashIfSandboxed?: boolean;
excludedCommands?: string[];
allowUnsandboxedCommands?: boolean;
network?: NetworkSandboxSettings;
ignoreViolations?: SandboxIgnoreViolations;
enableWeakerNestedSandbox?: boolean;
}| Property | Type | Default | Description |
|---|---|---|---|
enabled | boolean | false | Aktivieren Sie den Sandbox-Modus für die Befehlsausführung |
autoAllowBashIfSandboxed | boolean | false | Bash-Befehle automatisch genehmigen, wenn die 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 | false | Ermöglichen Sie dem Modell, die Ausführung von Befehlen außerhalb der Sandbox anzufordern. Wenn true, kann das Modell dangerouslyDisableSandbox in der Tooleingabe setzen, was auf das Berechtigungssystem zurückfällt |
network | NetworkSandboxSettings | undefined | Netzwerkspezifische Sandbox-Konfiguration |
ignoreViolations | SandboxIgnoreViolations | undefined | Konfigurieren Sie, welche Sandbox-Verstöße ignoriert werden sollen |
enableWeakerNestedSandbox | boolean | false | Aktivieren Sie eine schwächere verschachtelte Sandbox für Kompatibilität |
Dateisystem- und Netzwerkzugriffsbeschränkungen werden NICHT über Sandbox-Einstellungen konfiguriert. Stattdessen werden sie von Berechtigungsregeln abgeleitet:
Verwenden Sie Sandbox-Einstellungen für Befehls-Ausführungs-Sandboxing und Berechtigungsregeln für Dateisystem- und Netzwerkzugriffskontrolle.
import { query } from "@anthropic-ai/claude-agent-sdk";
const result = await query({
prompt: "Build and test my project",
options: {
sandbox: {
enabled: true,
autoAllowBashIfSandboxed: true,
network: {
allowLocalBinding: true
}
}
}
});Unix-Socket-Sicherheit: Die Option allowUnixSockets kann Zugriff auf leistungsstarke Systemdienste gewähren. Beispielsweise ermöglicht das Zulassen von /var/run/docker.sock effektiv vollständigen Hostsystemzugriff über die Docker-API und umgeht die Sandbox-Isolierung. Lassen Sie nur Unix-Sockets zu, die absolut notwendig sind, und verstehen Sie die Sicherheitsauswirkungen jedes einzelnen.
NetworkSandboxSettingsNetzwerkspezifische Konfiguration für den Sandbox-Modus.
type NetworkSandboxSettings = {
allowLocalBinding?: boolean;
allowUnixSockets?: string[];
allowAllUnixSockets?: boolean;
httpProxyPort?: number;
socksProxyPort?: number;
}| Property | Type | Default | Description |
|---|---|---|---|
allowLocalBinding | boolean | false | Ermöglichen 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 | Ermöglichen Sie Zugriff auf alle Unix-Sockets |
httpProxyPort | number | undefined | HTTP-Proxy-Port für Netzwerkanfragen |
socksProxyPort | number | undefined | SOCKS-Proxy-Port für Netzwerkanfragen |
SandboxIgnoreViolationsKonfiguration zum Ignorieren spezifischer Sandbox-Verstöße.
type SandboxIgnoreViolations = {
file?: string[];
network?: string[];
}| Property | Type | Default | Description |
|---|---|---|---|
file | string[] | [] | Dateipfad-Muster zum Ignorieren von Verstößen |
network | string[] | [] | Netzwerkmuster zum Ignorieren von Verstößen |
Wenn allowUnsandboxedCommands aktiviert ist, kann das Modell anfordern, Befehle außerhalb der Sandbox auszuführen, indem es dangerouslyDisableSandbox: true in der Tooleingabe setzt. Diese Anfragen fallen auf das vorhandene 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 die Sandbox immer automatisch umgehen (z. B. ['docker']). Das Modell hat keine Kontrolle darüber.allowUnsandboxedCommands: Ermöglicht dem Modell, zur Laufzeit zu entscheiden, ob unsandboxed Ausführung angefordert werden soll, indem dangerouslyDisableSandbox: true in der Tooleingabe gesetzt wird.import { query } from "@anthropic-ai/claude-agent-sdk";
const result = await query({
prompt: "Deploy my application",
options: {
sandbox: {
enabled: true,
allowUnsandboxedCommands: true // Model can request unsandboxed execution
},
permissionMode: "default",
canUseTool: async (tool, input) => {
// Check if the model is requesting to bypass the sandbox
if (tool === "Bash" && input.dangerouslyDisableSandbox) {
// The model wants to run this command outside the sandbox
console.log(`Unsandboxed command requested: ${input.command}`);
// Return true to allow, false to deny
return isCommandAuthorized(input.command);
}
return true;
}
}
});Dieses Muster ermöglicht es Ihnen:
Befehle, die mit dangerouslyDisableSandbox: true ausgeführt werden, haben vollständigen Systemzugriff. Stellen Sie sicher, dass Ihr canUseTool-Handler diese Anfragen sorgfältig validiert.
Wenn permissionMode auf bypassPermissions gesetzt ist und allowUnsandboxedCommands aktiviert ist, kann das Modell Befehle außerhalb der Sandbox autonom ausführen, ohne dass Genehmigungsaufforderungen angezeigt werden. Diese Kombination ermöglicht dem Modell effektiv, die Sandbox-Isolierung stillschweigend zu umgehen.
Was this page helpful?