Installazione
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à di 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.
tool()
Crea una definizione di strumento MCP type-safe per l’uso con i server MCP dell’SDK.
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
name | string | Il nome dello strumento |
description | string | Una descrizione di cosa fa lo strumento |
inputSchema | Schema extends ZodRawShape | Schema Zod che definisce i parametri di input dello strumento |
handler | (args, extra) => Promise<CallToolResult> | Funzione asincrona che esegue la logica dello strumento |
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 strumenti creati con tool() |
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 |
agents | Record<string, [AgentDefinition](#agentdefinition)> | undefined | Definisci programmaticamente i subagent |
allowedTools | string[] | Tutti gli strumenti | Elenco dei nomi degli strumenti consentiti |
canUseTool | CanUseTool | undefined | Funzione di autorizzazione personalizzata per l’uso dello strumento |
continue | boolean | false | Continua la conversazione più recente |
cwd | string | process.cwd() | Directory di lavoro corrente |
disallowedTools | string[] | [] | Elenco dei nomi degli strumenti non consentiti |
env | Dict<string> | process.env | Variabili di ambiente |
executable | 'bun' | 'deno' | 'node' | Rilevamento automatico | Runtime JavaScript da utilizzare |
executableArgs | string[] | [] | Argomenti da passare all’eseguibile |
extraArgs | Record<string, string | null> | {} | Argomenti aggiuntivi |
fallbackModel | string | undefined | Modello da utilizzare 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 eventi di messaggi parziali |
maxThinkingTokens | number | undefined | Token massimi per il processo di thinking |
maxTurns | number | undefined | Turni di conversazione massimi |
mcpServers | Record<string, [McpServerConfig](#mcpserverconfig)> | {} | Configurazioni del server MCP |
model | string | Predefinito da CLI | Modello Claude da utilizzare |
pathToClaudeCodeExecutable | string | Rilevamento automatico | Percorso all’eseguibile Claude Code |
permissionMode | PermissionMode | 'default' | Modalità di autorizzazione per la sessione |
permissionPromptToolName | string | undefined | Nome dello strumento MCP per i prompt di autorizzazione |
plugins | SdkPluginConfig[] | [] | Carica plugin personalizzati da percorsi locali. Vedi Plugin per i dettagli |
resume | string | undefined | ID di sessione da riprendere |
settingSources | SettingSource[] | [] (nessuna impostazione) | Controlla quali impostazioni del filesystem caricare. Se omesso, nessuna impostazione viene caricata. Nota: Deve includere 'project' per caricare i file CLAUDE.md |
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 } | undefined (prompt vuoto) | Configurazione del prompt di sistema. Passa una stringa per un prompt personalizzato, o { type: 'preset', preset: 'claude_code' } per utilizzare il prompt di sistema di Claude Code. Quando si utilizza la forma dell’oggetto preset, aggiungi append per estendere il prompt di sistema con istruzioni aggiuntive |
Query
Interfaccia restituita dalla funzione query().
Metodi
| Metodo | Descrizione |
|---|---|
interrupt() | Interrompe la query (disponibile solo in modalità input di streaming) |
setPermissionMode() | Cambia la modalità di autorizzazione (disponibile solo in modalità input di streaming) |
AgentDefinition
Configurazione per un subagent definito programmaticamente.
| Campo | Obbligatorio | Descrizione |
|---|---|---|
description | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agent |
tools | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |
prompt | Sì | Il prompt di sistema dell’agent |
model | No | Override del modello per questo agent. Se omesso, utilizza il modello principale |
SettingSource
Controlla quali fonti di configurazione basate su filesystem l’SDK carica le impostazioni da.
| Valore | Descrizione | Posizione |
|---|---|---|
'user' | Impostazioni utente globali | ~/.claude/settings.json |
'project' | Impostazioni di progetto condivise (controllate dalla versione) | .claude/settings.json |
'local' | Impostazioni di progetto locali (gitignored) | .claude/settings.local.json |
Comportamento predefinito
QuandosettingSources è omesso o undefined, l’SDK non carica alcuna impostazione del filesystem. Questo fornisce isolamento per le applicazioni SDK.
Perché utilizzare settingSources?
Carica tutte le impostazioni del filesystem (comportamento legacy):Precedenza delle impostazioni
Quando più fonti vengono caricate, le impostazioni vengono unite con questa precedenza (da più alta a più bassa):- Impostazioni locali (
.claude/settings.local.json) - Impostazioni di progetto (
.claude/settings.json) - Impostazioni utente (
~/.claude/settings.json)
agents, allowedTools) sovrascrivono sempre le impostazioni del filesystem.
PermissionMode
CanUseTool
Tipo di funzione di autorizzazione personalizzata per controllare l’uso dello strumento.
PermissionResult
Risultato di un controllo di autorizzazione.
McpServerConfig
Configurazione per i server MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
SdkPluginConfig
Configurazione per il caricamento dei plugin nell’SDK.
| Campo | Tipo | Descrizione |
|---|---|---|
type | 'local' | Deve essere 'local' (attualmente sono supportati solo i plugin locali) |
path | string | Percorso assoluto o relativo alla directory del plugin |
Tipi di messaggi
SDKMessage
Tipo di unione di tutti i possibili messaggi restituiti dalla query.
SDKAssistantMessage
Messaggio di risposta dell’assistente.
SDKUserMessage
Messaggio di input dell’utente.
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.
SDKPermissionDenial
Informazioni su un uso dello strumento negato.
Tipi di hook
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
NotificationHookInput
UserPromptSubmitHookInput
SessionStartHookInput
SessionEndHookInput
StopHookInput
SubagentStopHookInput
PreCompactHookInput
HookJSONOutput
Valore di ritorno dell’hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipi di input dello strumento
Documentazione degli schemi di input per tutti gli strumenti Claude Code incorporati. Questi tipi vengono esportati da@anthropic-ai/claude-agent-sdk e possono essere utilizzati per interazioni di strumenti type-safe.
ToolInput
Nota: Questo è un tipo solo per la documentazione per chiarezza. Rappresenta l’unione di tutti i tipi di input dello strumento.
Task
Nome dello strumento:Task
Bash
Nome dello strumento:Bash
BashOutput
Nome dello strumento:BashOutput
Edit
Nome dello strumento:Edit
Read
Nome dello strumento:Read
Write
Nome dello strumento:Write
Glob
Nome dello strumento:Glob
Grep
Nome dello strumento:Grep
KillBash
Nome dello strumento:KillBash
NotebookEdit
Nome dello strumento:NotebookEdit
WebFetch
Nome dello strumento:WebFetch
WebSearch
Nome dello strumento:WebSearch
TodoWrite
Nome dello strumento:TodoWrite
ExitPlanMode
Nome dello strumento:ExitPlanMode
ListMcpResources
Nome dello strumento:ListMcpResources
ReadMcpResource
Nome dello strumento:ReadMcpResource
Tipi di output dello strumento
Documentazione degli schemi di output per tutti gli strumenti Claude Code incorporati. Questi tipi rappresentano i dati di risposta effettivi restituiti da ogni strumento.ToolOutput
Nota: Questo è un tipo solo per la documentazione per chiarezza. Rappresenta l’unione di tutti i tipi di output dello strumento.
Task
Nome dello strumento:Task
Bash
Nome dello strumento:Bash
BashOutput
Nome dello strumento:BashOutput
Edit
Nome dello strumento:Edit
Read
Nome dello strumento:Read
Write
Nome dello strumento:Write
Glob
Nome dello strumento:Glob
Grep
Nome dello strumento:Grep
KillBash
Nome dello strumento:KillBash
NotebookEdit
Nome dello strumento:NotebookEdit
WebFetch
Nome dello strumento:WebFetch
WebSearch
Nome dello strumento:WebSearch
TodoWrite
Nome dello strumento:TodoWrite
ExitPlanMode
Nome dello strumento:ExitPlanMode
ListMcpResources
Nome dello strumento:ListMcpResources
ReadMcpResource
Nome dello strumento:ReadMcpResource
Tipi di autorizzazione
PermissionUpdate
Operazioni per l’aggiornamento delle autorizzazioni.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Altri tipi
ApiKeySource
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 dello strumento MCP (da @modelcontextprotocol/sdk/types.js).
AbortError
Classe di errore personalizzata per le operazioni di abort.
Vedi anche
- Panoramica dell’SDK - Concetti generali dell’SDK
- Riferimento SDK Python - Documentazione dell’SDK Python
- Riferimento CLI - Interfaccia della riga di comando
- Flussi di lavoro comuni - Guide passo dopo passo