Prova la nuova interfaccia V2 (anteprima): Un’interfaccia semplificata con i pattern
send() e stream() è ora disponibile, rendendo le conversazioni multi-turno più facili. Scopri di più sull’anteprima TypeScript V2Installazione
L’SDK raggruppa un binario nativo Claude Code per la tua piattaforma come dipendenza opzionale come
@anthropic-ai/claude-agent-sdk-darwin-arm64. Non è necessario installare Claude Code separatamente. Se il tuo gestore di pacchetti salta le dipendenze opzionali, l’SDK genera Native CLI binary for <platform> not found; imposta pathToClaudeCodeExecutable su un binario claude installato separatamente.Funzioni
query()
La funzione principale per interagire con Claude Code. Crea un generatore asincrono che trasmette i messaggi man mano che arrivano.
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
prompt | string | AsyncIterable<SDKUserMessage> | Il prompt di input come stringa o iterabile asincrono per la modalità streaming |
options | Options | Oggetto di configurazione opzionale (vedi il tipo Options di seguito) |
Restituisce
Restituisce un oggettoQuery che estende AsyncGenerator<SDKMessage, void> con metodi aggiuntivi.
startup()
Pre-riscalda il subprocess CLI generandolo e completando l’handshake di inizializzazione prima che un prompt sia disponibile. L’handle WarmQuery restituito accetta un prompt in seguito e lo scrive in un processo già pronto, quindi la prima chiamata query() si risolve senza pagare il costo di generazione e inizializzazione del subprocess inline.
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
options | Options | Oggetto di configurazione opzionale. Uguale al parametro options di query() |
initializeTimeoutMs | number | Tempo massimo in millisecondi per attendere l’inizializzazione del subprocess. Predefinito a 60000. Se l’inizializzazione non si completa in tempo, la promessa viene rifiutata con un errore di timeout |
Restituisce
Restituisce unaPromise<WarmQuery> che si risolve una volta che il subprocess è stato generato e ha completato il suo handshake di inizializzazione.
Esempio
Chiamastartup() presto, ad esempio all’avvio dell’applicazione, quindi chiama .query() sull’handle restituito una volta che un prompt è pronto. Questo sposta la generazione del subprocess e l’inizializzazione fuori dal percorso critico.
tool()
Crea una definizione di tool MCP type-safe per l’uso con i server MCP dell’SDK.
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
name | string | Il nome del tool |
description | string | Una descrizione di cosa fa il tool |
inputSchema | Schema extends AnyZodRawShape | Schema Zod che definisce i parametri di input del tool (supporta sia Zod 3 che Zod 4) |
handler | (args, extra) => Promise<CallToolResult> | Funzione asincrona che esegue la logica del tool |
extras | { annotations?: ToolAnnotations } | Annotazioni MCP tool opzionali che forniscono suggerimenti comportamentali ai client |
ToolAnnotations
Re-esportato da @modelcontextprotocol/sdk/types.js. Tutti i campi sono suggerimenti opzionali; i client non dovrebbero fare affidamento su di essi per decisioni di sicurezza.
| Campo | Tipo | Predefinito | Descrizione |
|---|---|---|---|
title | string | undefined | Titolo leggibile per il tool |
readOnlyHint | boolean | false | Se true, il tool non modifica il suo ambiente |
destructiveHint | boolean | true | Se true, il tool può eseguire aggiornamenti distruttivi (significativo solo quando readOnlyHint è false) |
idempotentHint | boolean | false | Se true, le chiamate ripetute con gli stessi argomenti non hanno effetto aggiuntivo (significativo solo quando readOnlyHint è false) |
openWorldHint | boolean | true | Se true, il tool interagisce con entità esterne (ad esempio, ricerca web). Se false, il dominio del tool è chiuso (ad esempio, un tool di memoria) |
createSdkMcpServer()
Crea un’istanza di server MCP che viene eseguita nello stesso processo della tua applicazione.
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
options.name | string | Il nome del server MCP |
options.version | string | Stringa di versione opzionale |
options.tools | Array<SdkMcpToolDefinition> | Array di definizioni di tool create con tool() |
listSessions()
Scopre ed elenca le sessioni passate con metadati leggeri. Filtra per directory di progetto o elenca le sessioni in tutti i progetti.
Parametri
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
options.dir | string | undefined | Directory per cui elencare le sessioni. Se omesso, restituisce le sessioni in tutti i progetti |
options.limit | number | undefined | Numero massimo di sessioni da restituire |
options.includeWorktrees | boolean | true | Quando dir si trova all’interno di un repository git, includi le sessioni da tutti i percorsi worktree |
Tipo di ritorno: SDKSessionInfo
| Proprietà | Tipo | Descrizione |
|---|---|---|
sessionId | string | Identificatore di sessione univoco (UUID) |
summary | string | Titolo di visualizzazione: titolo personalizzato, riepilogo generato automaticamente o primo prompt |
lastModified | number | Ora dell’ultima modifica in millisecondi dall’epoca |
fileSize | number | undefined | Dimensione del file di sessione in byte. Popolato solo per l’archiviazione JSONL locale |
customTitle | string | undefined | Titolo della sessione impostato dall’utente (tramite /rename) |
firstPrompt | string | undefined | Primo prompt utente significativo nella sessione |
gitBranch | string | undefined | Ramo Git alla fine della sessione |
cwd | string | undefined | Directory di lavoro per la sessione |
tag | string | undefined | Tag della sessione impostato dall’utente (vedi tagSession()) |
createdAt | number | undefined | Ora di creazione in millisecondi dall’epoca, dal timestamp della prima voce |
Esempio
Stampa le 10 sessioni più recenti per un progetto. I risultati sono ordinati perlastModified decrescente, quindi il primo elemento è il più recente. Ometti dir per cercare in tutti i progetti.
getSessionMessages()
Legge i messaggi dell’utente e dell’assistente da una trascrizione di sessione passata.
Parametri
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
sessionId | string | obbligatorio | UUID della sessione da leggere (vedi listSessions()) |
options.dir | string | undefined | Directory del progetto in cui trovare la sessione. Se omesso, cerca in tutti i progetti |
options.limit | number | undefined | Numero massimo di messaggi da restituire |
options.offset | number | undefined | Numero di messaggi da saltare dall’inizio |
Tipo di ritorno: SessionMessage
| Proprietà | Tipo | Descrizione |
|---|---|---|
type | "user" | "assistant" | Ruolo del messaggio |
uuid | string | Identificatore di messaggio univoco |
session_id | string | Sessione a cui appartiene questo messaggio |
message | unknown | Payload del messaggio grezzo dalla trascrizione |
parent_tool_use_id | null | Riservato |
Esempio
getSessionInfo()
Legge i metadati per una singola sessione per ID senza scansionare la directory del progetto completa.
Parametri
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
sessionId | string | obbligatorio | UUID della sessione da cercare |
options.dir | string | undefined | Percorso della directory del progetto. Se omesso, cerca in tutte le directory del progetto |
SDKSessionInfo, o undefined se la sessione non viene trovata.
renameSession()
Rinomina una sessione aggiungendo una voce di titolo personalizzato. Le chiamate ripetute sono sicure; il titolo più recente vince.
Parametri
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
sessionId | string | obbligatorio | UUID della sessione da rinominare |
title | string | obbligatorio | Nuovo titolo. Deve essere non vuoto dopo il trimming dello spazio bianco |
options.dir | string | undefined | Percorso della directory del progetto. Se omesso, cerca in tutte le directory del progetto |
tagSession()
Etichetta una sessione. Passa null per cancellare l’etichetta. Le chiamate ripetute sono sicure; l’etichetta più recente vince.
Parametri
| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
sessionId | string | obbligatorio | UUID della sessione da etichettare |
tag | string | null | obbligatorio | Stringa di etichetta, o null per cancellare |
options.dir | string | undefined | Percorso della directory del progetto. Se omesso, cerca in tutte le directory del progetto |
Tipi
Options
Oggetto di configurazione per la funzione query().
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
abortController | AbortController | new AbortController() | Controller per annullare le operazioni |
additionalDirectories | string[] | [] | Directory aggiuntive a cui Claude può accedere |
agent | string | undefined | Nome dell’agente per il thread principale. L’agente deve essere definito nell’opzione agents o nelle impostazioni |
agents | Record<string, [AgentDefinition](#agent-definition)> | undefined | Definisci programmaticamente i subagenti |
allowDangerouslySkipPermissions | boolean | false | Abilita il bypass dei permessi. Obbligatorio quando si usa permissionMode: 'bypassPermissions' |
allowedTools | string[] | [] | Tool da approvare automaticamente senza richiedere. Questo non limita Claude a solo questi tool; i tool non elencati ricadono in permissionMode e canUseTool. Usa disallowedTools per bloccare i tool. Vedi Permessi |
betas | SdkBeta[] | [] | Abilita le funzioni beta |
canUseTool | CanUseTool | undefined | Funzione di permesso personalizzata per l’uso dei tool |
continue | boolean | false | Continua la conversazione più recente |
cwd | string | process.cwd() | Directory di lavoro corrente |
debug | boolean | false | Abilita la modalità debug per il processo Claude Code |
debugFile | string | undefined | Scrivi i log di debug in un percorso di file specifico. Abilita implicitamente la modalità debug |
disallowedTools | string[] | [] | Tool da sempre negare. Le regole di negazione vengono controllate per prime e sovrascrivono allowedTools e permissionMode (incluso bypassPermissions) |
effort | 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'high' | Controlla quanto sforzo Claude mette nella sua risposta. Funziona con il pensiero adattivo per guidare la profondità del pensiero |
enableFileCheckpointing | boolean | false | Abilita il tracciamento dei cambiamenti di file per il rewind. Vedi File checkpointing |
env | Record<string, string | undefined> | process.env | Variabili di ambiente. Imposta CLAUDE_AGENT_SDK_CLIENT_APP per identificare la tua app nell’intestazione User-Agent |
executable | 'bun' | 'deno' | 'node' | Auto-rilevato | Runtime JavaScript da usare |
executableArgs | string[] | [] | Argomenti da passare all’eseguibile |
extraArgs | Record<string, string | null> | {} | Argomenti aggiuntivi |
fallbackModel | string | undefined | Modello da usare se il primario fallisce |
forkSession | boolean | false | Quando si riprende con resume, esegui il fork a un nuovo ID di sessione invece di continuare la sessione originale |
hooks | Partial<Record<HookEvent, HookCallbackMatcher[]>> | {} | Callback hook per gli eventi |
includePartialMessages | boolean | false | Includi gli eventi di messaggi parziali |
maxBudgetUsd | number | undefined | Interrompi la query quando la stima del costo lato client raggiunge questo valore in USD. Confrontato con la stessa stima di total_cost_usd; vedi Traccia costo e utilizzo per le avvertenze di accuratezza |
maxThinkingTokens | number | undefined | Deprecato: Usa thinking invece. Token massimi per il processo di pensiero |
maxTurns | number | undefined | Turni agentici massimi (round trip di uso dei tool) |
mcpServers | Record<string, [McpServerConfig](#mcp-server-config)> | {} | Configurazioni del server MCP |
model | string | Predefinito da CLI | Modello Claude da usare |
outputFormat | { type: 'json_schema', schema: JSONSchema } | undefined | Definisci il formato di output per i risultati dell’agente. Vedi Output strutturati per i dettagli |
pathToClaudeCodeExecutable | string | Auto-risolto dal binario nativo raggruppato | Percorso all’eseguibile Claude Code. Necessario solo se le dipendenze opzionali sono state saltate durante l’installazione o la tua piattaforma non è nel set supportato |
permissionMode | PermissionMode | 'default' | Modalità di permesso per la sessione |
permissionPromptToolName | string | undefined | Nome del tool MCP per i prompt di permesso |
persistSession | boolean | true | Quando false, disabilita la persistenza della sessione su disco. Le sessioni non possono essere riprese in seguito |
plugins | SdkPluginConfig[] | [] | Carica plugin personalizzati da percorsi locali. Vedi Plugins per i dettagli |
promptSuggestions | boolean | false | Abilita i suggerimenti di prompt. Emette un messaggio prompt_suggestion dopo ogni turno con un prompt utente successivo previsto |
resume | string | undefined | ID della sessione da riprendere |
resumeSessionAt | string | undefined | Riprendi la sessione a un UUID di messaggio specifico |
sandbox | SandboxSettings | undefined | Configura il comportamento della sandbox a livello di programmazione. Vedi Impostazioni sandbox per i dettagli |
sessionId | string | Auto-generato | Usa un UUID specifico per la sessione invece di generarne uno automaticamente |
settingSources | SettingSource[] | Impostazioni predefinite CLI (tutte le fonti) | Controlla quali impostazioni del filesystem caricare. Passa [] per disabilitare le impostazioni utente, progetto e locali. Le impostazioni della politica gestita vengono caricate indipendentemente. Vedi Usa le funzioni Claude Code |
spawnClaudeCodeProcess | (options: SpawnOptions) => SpawnedProcess | undefined | Funzione personalizzata per generare il processo Claude Code. Usa per eseguire Claude Code in VM, container o ambienti remoti |
stderr | (data: string) => void | undefined | Callback per l’output stderr |
strictMcpConfig | boolean | false | Applica la convalida MCP rigorosa |
systemPrompt | string | { type: 'preset'; preset: 'claude_code'; append?: string; excludeDynamicSections?: boolean } | undefined (prompt minimo) | Configurazione del prompt di sistema. Passa una stringa per un prompt personalizzato, o { type: 'preset', preset: 'claude_code' } per usare il prompt di sistema di Claude Code. Quando si usa la forma dell’oggetto preset, aggiungi append per estenderlo con istruzioni aggiuntive, e imposta excludeDynamicSections: true per spostare il contesto per sessione nel primo messaggio utente per un migliore riutilizzo della cache dei prompt tra le macchine |
thinking | ThinkingConfig | { type: 'adaptive' } per i modelli supportati | Controlla il comportamento di pensiero/ragionamento di Claude. Vedi ThinkingConfig per le opzioni |
toolConfig | ToolConfig | undefined | Configurazione per il comportamento dei tool incorporati. Vedi ToolConfig per i dettagli |
tools | string[] | { type: 'preset'; preset: 'claude_code' } | undefined | Configurazione dei tool. Passa un array di nomi di tool o usa il preset per ottenere i tool predefiniti di Claude Code |
Oggetto Query
Interfaccia restituita dalla funzione query().
Metodi
| Metodo | Descrizione |
|---|---|
interrupt() | Interrompe la query (disponibile solo in modalità input streaming) |
rewindFiles(userMessageId, options?) | Ripristina i file al loro stato al messaggio utente specificato. Passa { dryRun: true } per visualizzare in anteprima i cambiamenti. Richiede enableFileCheckpointing: true. Vedi File checkpointing |
setPermissionMode() | Cambia la modalità di permesso (disponibile solo in modalità input streaming) |
setModel() | Cambia il modello (disponibile solo in modalità input streaming) |
setMaxThinkingTokens() | Deprecato: Usa l’opzione thinking invece. Cambia i token di pensiero massimi |
initializationResult() | Restituisce il risultato di inizializzazione completo inclusi i comandi supportati, i modelli, le informazioni dell’account e la configurazione dello stile di output |
supportedCommands() | Restituisce i comandi slash disponibili |
supportedModels() | Restituisce i modelli disponibili con le informazioni di visualizzazione |
supportedAgents() | Restituisce i subagenti disponibili come AgentInfo[] |
mcpServerStatus() | Restituisce lo stato dei server MCP connessi |
accountInfo() | Restituisce le informazioni dell’account |
reconnectMcpServer(serverName) | Ricollega un server MCP per nome |
toggleMcpServer(serverName, enabled) | Abilita o disabilita un server MCP per nome |
setMcpServers(servers) | Sostituisci dinamicamente l’insieme dei server MCP per questa sessione. Restituisce informazioni su quali server sono stati aggiunti, rimossi e eventuali errori |
streamInput(stream) | Trasmetti i messaggi di input alla query per le conversazioni multi-turno |
stopTask(taskId) | Interrompi un’attività di background in esecuzione per ID |
close() | Chiudi la query e termina il processo sottostante. Termina forzatamente la query e pulisce tutte le risorse |
WarmQuery
Handle restituito da startup(). Il subprocess è già generato e inizializzato, quindi chiamare query() su questo handle scrive il prompt direttamente in un processo pronto senza latenza di avvio.
Metodi
| Metodo | Descrizione |
|---|---|
query(prompt) | Invia un prompt al subprocess pre-riscaldato e restituisci una Query. Può essere chiamato solo una volta per WarmQuery |
close() | Chiudi il subprocess senza inviare un prompt. Usa questo per scartare una query calda che non è più necessaria |
WarmQuery implementa AsyncDisposable, quindi può essere usato con await using per la pulizia automatica.
SDKControlInitializeResponse
Tipo di ritorno di initializationResult(). Contiene i dati di inizializzazione della sessione.
AgentDefinition
Configurazione per un subagente definito programmaticamente.
| Campo | Obbligatorio | Descrizione |
|---|---|---|
description | Sì | Descrizione in linguaggio naturale di quando usare questo agente |
tools | No | Array di nomi di tool consentiti. Se omesso, eredita tutti i tool dal genitore |
disallowedTools | No | Array di nomi di tool da esplicitamente disabilitare per questo agente |
prompt | Sì | Il prompt di sistema dell’agente |
model | No | Override del modello per questo agente. Se omesso o 'inherit', usa il modello principale |
mcpServers | No | Specifiche del server MCP per questo agente |
skills | No | Array di nomi di skill da precaricare nel contesto dell’agente |
maxTurns | No | Numero massimo di turni agentici (round trip API) prima di fermarsi |
criticalSystemReminder_EXPERIMENTAL | No | Sperimentale: Promemoria critico aggiunto al prompt di sistema |
AgentMcpServerSpec
Specifica i server MCP disponibili per un subagente. Può essere un nome di server (stringa che fa riferimento a un server dalla configurazione mcpServers del genitore) o una configurazione di server inline che mappa i nomi dei server alle configurazioni.
McpServerConfigForProcessTransport è McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig.
SettingSource
Controlla quali fonti di configurazione basate su filesystem l’SDK carica le impostazioni da.
| Valore | Descrizione | Posizione |
|---|---|---|
'user' | Impostazioni globali dell’utente | ~/.claude/settings.json |
'project' | Impostazioni del progetto condivise (controllate dalla versione) | .claude/settings.json |
'local' | Impostazioni del progetto locale (gitignorate) | .claude/settings.local.json |
Comportamento predefinito
QuandosettingSources è omesso o undefined, query() carica le stesse impostazioni del filesystem del CLI Claude Code: utente, progetto e locale. Le impostazioni della politica gestita vengono caricate in tutti i casi. Vedi Cosa settingSources non controlla per gli input che vengono letti indipendentemente da questa opzione, e come disabilitarli.
Perché usare settingSources
Disabilita le impostazioni del filesystem:Precedenza delle impostazioni
Quando più fonti vengono caricate, le impostazioni vengono unite con questa precedenza (più alta a più bassa):- Impostazioni locali (
.claude/settings.local.json) - Impostazioni del progetto (
.claude/settings.json) - Impostazioni dell’utente (
~/.claude/settings.json)
agents e allowedTools sovrascrivono le impostazioni del filesystem utente, progetto e locale. Le impostazioni della politica gestita hanno precedenza sulle opzioni programmatiche.
PermissionMode
CanUseTool
Tipo di funzione di permesso personalizzato per controllare l’uso dei tool.
| Opzione | Tipo | Descrizione |
|---|---|---|
signal | AbortSignal | Segnalato se l’operazione deve essere interrotta |
suggestions | PermissionUpdate[] | Aggiornamenti di permesso suggeriti in modo che l’utente non venga richiesto di nuovo per questo tool |
blockedPath | string | Il percorso del file che ha attivato la richiesta di permesso, se applicabile |
decisionReason | string | Spiega perché questa richiesta di permesso è stata attivata |
toolUseID | string | Identificatore univoco per questa specifica chiamata di tool all’interno del messaggio dell’assistente |
agentID | string | Se in esecuzione all’interno di un sub-agente, l’ID del sub-agente |
PermissionResult
Risultato di un controllo di permesso.
ToolConfig
Configurazione per il comportamento dei tool incorporati.
| Campo | Tipo | Descrizione |
|---|---|---|
askUserQuestion.previewFormat | 'markdown' | 'html' | Acconsente al campo preview su AskUserQuestion opzioni e imposta il suo formato di contenuto. Se non impostato, Claude non emette anteprime |
McpServerConfig
Configurazione per i server MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
McpClaudeAIProxyServerConfig
SdkPluginConfig
Configurazione per il caricamento dei plugin nell’SDK.
| Campo | Tipo | Descrizione |
|---|---|---|
type | 'local' | Deve essere 'local' (attualmente supportati solo plugin locali) |
path | string | Percorso assoluto o relativo alla directory del plugin |
Tipi di messaggio
SDKMessage
Tipo di unione di tutti i possibili messaggi restituiti dalla query.
SDKAssistantMessage
Messaggio di risposta dell’assistente.
message è un BetaMessage dall’SDK Anthropic. Include campi come id, content, model, stop_reason e usage.
SDKAssistantMessageError è uno di: 'authentication_failed', 'billing_error', 'rate_limit', 'invalid_request', 'server_error', 'max_output_tokens', o 'unknown'.
SDKUserMessage
Messaggio di input dell’utente.
shouldQuery a false per aggiungere il messaggio alla trascrizione senza attivare un turno dell’assistente. Il messaggio viene mantenuto e unito al prossimo messaggio utente che attiva un turno. Usa questo per iniettare contesto, come l’output di un comando che hai eseguito fuori banda, senza spendere una chiamata di modello su di esso.
SDKUserMessageReplay
Messaggio utente riprodotto con UUID obbligatorio.
SDKResultMessage
Messaggio di risultato finale.
SDKSystemMessage
Messaggio di inizializzazione del sistema.
SDKPartialAssistantMessage
Messaggio parziale di streaming (solo quando includePartialMessages è true).
SDKCompactBoundaryMessage
Messaggio che indica un limite di compattazione della conversazione.
SDKPluginInstallMessage
Evento di progresso dell’installazione del plugin. Emesso quando CLAUDE_CODE_SYNC_PLUGIN_INSTALL è impostato, in modo che la tua applicazione Agent SDK possa tracciare l’installazione del plugin del marketplace prima del primo turno. Gli stati started e completed racchiudono l’installazione complessiva. Gli stati installed e failed segnalano i singoli marketplace e includono name.
SDKPermissionDenial
Informazioni su un uso di tool negato.
Tipi di hook
Per una guida completa sull’uso degli hook con esempi e pattern comuni, vedi la guida Hooks.HookEvent
Eventi hook disponibili.
HookCallback
Tipo di funzione callback hook.
HookCallbackMatcher
Configurazione hook con matcher opzionale.
HookInput
Tipo di unione di tutti i tipi di input hook.
BaseHookInput
Interfaccia base che tutti i tipi di input hook estendono.
PreToolUseHookInput
PostToolUseHookInput
PostToolUseFailureHookInput
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStartHookInput
SubagentStopHookInput
PreCompactHookInput
PermissionRequestHookInput
SetupHookInput
TeammateIdleHookInput
TaskCompletedHookInput
ConfigChangeHookInput
WorktreeCreateHookInput
WorktreeRemoveHookInput
HookJSONOutput
Valore di ritorno hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipi di input dei tool
Documentazione degli schemi di input per tutti i tool Claude Code incorporati. Questi tipi vengono esportati da@anthropic-ai/claude-agent-sdk e possono essere usati per le interazioni dei tool type-safe.
ToolInputSchemas
Unione di tutti i tipi di input dei tool, esportati da @anthropic-ai/claude-agent-sdk.
Agent
Nome del tool:Agent (precedentemente Task, che è ancora accettato come alias)
AskUserQuestion
Nome del tool:AskUserQuestion
Bash
Nome del tool:Bash
Monitor
Nome del tool:Monitor
persistent: true per i watch di lunghezza della sessione come code tail. Monitor segue le stesse regole di permesso di Bash. Vedi il riferimento del tool Monitor per il comportamento e la disponibilità del provider.
TaskOutput
Nome del tool:TaskOutput
Edit
Nome del tool:Edit
Read
Nome del tool:Read
pages per gli intervalli di pagine PDF (ad esempio, "1-5").
Write
Nome del tool:Write
Glob
Nome del tool:Glob
Grep
Nome del tool:Grep
TaskStop
Nome del tool:TaskStop
NotebookEdit
Nome del tool:NotebookEdit
WebFetch
Nome del tool:WebFetch
WebSearch
Nome del tool:WebSearch
TodoWrite
Nome del tool:TodoWrite
ExitPlanMode
Nome del tool:ExitPlanMode
ListMcpResources
Nome del tool:ListMcpResources
ReadMcpResource
Nome del tool:ReadMcpResource
Config
Nome del tool:Config
EnterWorktree
Nome del tool:EnterWorktree
path per passare a un worktree esistente del repository corrente invece di crearne uno nuovo. name e path si escludono a vicenda.
Tipi di output dei tool
Documentazione degli schemi di output per tutti i tool Claude Code incorporati. Questi tipi vengono esportati da@anthropic-ai/claude-agent-sdk e rappresentano i dati di risposta effettivi restituiti da ogni tool.
ToolOutputSchemas
Unione di tutti i tipi di output dei tool.
Agent
Nome del tool:Agent (precedentemente Task, che è ancora accettato come alias)
status: "completed" per le attività finite, "async_launched" per le attività di background, e "sub_agent_entered" per i subagenti interattivi.
AskUserQuestion
Nome del tool:AskUserQuestion
Bash
Nome del tool:Bash
backgroundTaskId.
Monitor
Nome del tool:Monitor
TaskStop per annullare il watch in anticipo.
Edit
Nome del tool:Edit
Read
Nome del tool:Read
type.
Write
Nome del tool:Write
Glob
Nome del tool:Glob
Grep
Nome del tool:Grep
mode: elenco di file, contenuto con corrispondenze o conteggi di corrispondenze.
TaskStop
Nome del tool:TaskStop
NotebookEdit
Nome del tool:NotebookEdit
WebFetch
Nome del tool:WebFetch
WebSearch
Nome del tool:WebSearch
TodoWrite
Nome del tool:TodoWrite
ExitPlanMode
Nome del tool:ExitPlanMode
ListMcpResources
Nome del tool:ListMcpResources
ReadMcpResource
Nome del tool:ReadMcpResource
Config
Nome del tool:Config
EnterWorktree
Nome del tool:EnterWorktree
Tipi di permesso
PermissionUpdate
Operazioni per l’aggiornamento dei permessi.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Altri tipi
ApiKeySource
SdkBeta
Funzioni beta disponibili che possono essere abilitate tramite l’opzione betas. Vedi Intestazioni beta per ulteriori informazioni.
SlashCommand
Informazioni su un comando slash disponibile.
ModelInfo
Informazioni su un modello disponibile.
AgentInfo
Informazioni su un subagente disponibile che può essere invocato tramite il tool Agent.
| Campo | Tipo | Descrizione |
|---|---|---|
name | string | Identificatore del tipo di agente (ad esempio, "Explore", "general-purpose") |
description | string | Descrizione di quando usare questo agente |
model | string | undefined | Alias del modello che questo agente usa. Se omesso, eredita il modello del genitore |
McpServerStatus
Stato di un server MCP connesso.
McpServerStatusConfig
La configurazione di un server MCP come segnalato da mcpServerStatus(). Questa è l’unione di tutti i tipi di trasporto del server MCP.
McpServerConfig per i dettagli su ogni tipo di trasporto.
AccountInfo
Informazioni sull’account per l’utente autenticato.
ModelUsage
Statistiche di utilizzo per modello restituite nei messaggi di risultato. Il valore costUSD è una stima lato client. Vedi Traccia costo e utilizzo per le avvertenze di fatturazione.
ConfigScope
NonNullableUsage
Una versione di Usage con tutti i campi nullable resi non-nullable.
Usage
Statistiche di utilizzo dei token (da @anthropic-ai/sdk).
CallToolResult
Tipo di risultato del tool MCP (da @modelcontextprotocol/sdk/types.js).
ThinkingConfig
Controlla il comportamento di pensiero/ragionamento di Claude. Ha precedenza sul deprecato maxThinkingTokens.
SpawnedProcess
Interfaccia per la generazione di processi personalizzati (usata con l’opzione spawnClaudeCodeProcess). ChildProcess soddisfa già questa interfaccia.
SpawnOptions
Opzioni passate alla funzione di generazione personalizzata.
McpSetServersResult
Risultato di un’operazione setMcpServers().
RewindFilesResult
Risultato di un’operazione rewindFiles().
SDKStatusMessage
Messaggio di aggiornamento dello stato (ad esempio, compattazione).
SDKTaskNotificationMessage
Notifica quando un’attività di background si completa, fallisce o viene interrotta. Le attività di background includono i comandi Bash run_in_background, i watch Monitor e i subagenti di background.
SDKToolUseSummaryMessage
Riepilogo dell’uso dei tool in una conversazione.
SDKHookStartedMessage
Emesso quando un hook inizia l’esecuzione.
SDKHookProgressMessage
Emesso mentre un hook è in esecuzione, con output stdout/stderr.
SDKHookResponseMessage
Emesso quando un hook finisce l’esecuzione.
SDKToolProgressMessage
Emesso periodicamente mentre un tool è in esecuzione per indicare il progresso.
SDKAuthStatusMessage
Emesso durante i flussi di autenticazione.
SDKTaskStartedMessage
Emesso quando un’attività di background inizia. Il campo task_type è "local_bash" per i comandi Bash di background e i watch Monitor, "local_agent" per i subagenti, o "remote_agent".
SDKTaskProgressMessage
Emesso periodicamente mentre un’attività di background è in esecuzione.
SDKFilesPersistedEvent
Emesso quando i checkpoint dei file vengono persistiti su disco.
SDKRateLimitEvent
Emesso quando la sessione incontra un limite di velocità.
SDKLocalCommandOutputMessage
Output da un comando slash locale (ad esempio, /voice o /cost). Visualizzato come testo in stile assistente nella trascrizione.
SDKPromptSuggestionMessage
Emesso dopo ogni turno quando promptSuggestions è abilitato. Contiene un prompt utente successivo previsto.
AbortError
Classe di errore personalizzata per le operazioni di interruzione.
Configurazione della sandbox
SandboxSettings
Configurazione per il comportamento della sandbox. Usa questo per abilitare il sandboxing dei comandi e configurare le restrizioni di rete a livello di programmazione.
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
enabled | boolean | false | Abilita la modalità sandbox per l’esecuzione dei comandi |
autoAllowBashIfSandboxed | boolean | true | Auto-approva i comandi bash quando la sandbox è abilitata |
excludedCommands | string[] | [] | Comandi che sempre bypassano le restrizioni della sandbox (ad esempio, ['docker']). Questi vengono eseguiti senza sandbox automaticamente senza coinvolgimento del modello |
allowUnsandboxedCommands | boolean | true | Consenti al modello di richiedere l’esecuzione di comandi al di fuori della sandbox. Quando true, il modello può impostare dangerouslyDisableSandbox nell’input del tool, che ricade nel sistema di permessi |
network | SandboxNetworkConfig | undefined | Configurazione della sandbox specifica della rete |
filesystem | SandboxFilesystemConfig | undefined | Configurazione della sandbox specifica del filesystem per le restrizioni di lettura/scrittura |
ignoreViolations | Record<string, string[]> | undefined | Mappa delle categorie di violazione ai pattern da ignorare (ad esempio, { file: ['/tmp/*'], network: ['localhost'] }) |
enableWeakerNestedSandbox | boolean | false | Abilita una sandbox nidificata più debole per la compatibilità |
ripgrep | { command: string; args?: string[] } | undefined | Configurazione del binario ripgrep personalizzato per gli ambienti sandbox |
Esempio di utilizzo
SandboxNetworkConfig
Configurazione specifica della rete per la modalità sandbox.
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowedDomains | string[] | [] | Nomi di dominio a cui i processi in sandbox possono accedere |
deniedDomains | string[] | [] | Nomi di dominio a cui i processi in sandbox non possono accedere. Ha la precedenza su allowedDomains |
allowManagedDomainsOnly | boolean | false | Limita l’accesso di rete solo ai domini in allowedDomains |
allowLocalBinding | boolean | false | Consenti ai processi di associarsi alle porte locali (ad esempio, per i server di sviluppo) |
allowUnixSockets | string[] | [] | Percorsi dei socket Unix a cui i processi possono accedere (ad esempio, socket Docker) |
allowAllUnixSockets | boolean | false | Consenti l’accesso a tutti i socket Unix |
httpProxyPort | number | undefined | Porta del proxy HTTP per le richieste di rete |
socksProxyPort | number | undefined | Porta del proxy SOCKS per le richieste di rete |
SandboxFilesystemConfig
Configurazione specifica del filesystem per la modalità sandbox.
| Proprietà | Tipo | Predefinito | Descrizione |
|---|---|---|---|
allowWrite | string[] | [] | Pattern di percorso file per consentire l’accesso in scrittura a |
denyWrite | string[] | [] | Pattern di percorso file per negare l’accesso in scrittura a |
denyRead | string[] | [] | Pattern di percorso file per negare l’accesso in lettura a |
Fallback dei permessi per i comandi senza sandbox
QuandoallowUnsandboxedCommands è abilitato, il modello può richiedere di eseguire comandi al di fuori della sandbox impostando dangerouslyDisableSandbox: true nell’input del tool. Queste richieste ricadono nel sistema di permessi esistente, il che significa che il tuo handler canUseTool viene invocato, permettendoti di implementare la logica di autorizzazione personalizzata.
excludedCommands vs allowUnsandboxedCommands:excludedCommands: Un elenco statico di comandi che sempre bypassano la sandbox automaticamente (ad esempio,['docker']). Il modello non ha controllo su questo.allowUnsandboxedCommands: Consenti al modello di decidere in fase di esecuzione se richiedere l’esecuzione senza sandbox impostandodangerouslyDisableSandbox: truenell’input del tool.
- Controllare le richieste del modello: Registra quando il modello richiede l’esecuzione senza sandbox
- Implementare allowlist: Consenti solo comandi specifici di essere eseguiti senza sandbox
- Aggiungere flussi di lavoro di approvazione: Richiedi l’autorizzazione esplicita per le operazioni privilegiate
Vedi anche
- Panoramica dell’SDK - Concetti generali dell’SDK
- Riferimento Python SDK - Documentazione dell’SDK Python
- Riferimento CLI - Interfaccia della riga di comando
- Flussi di lavoro comuni - Guide passo dopo passo