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à streaming |
options | Options | Oggetto di configurazione opzionale (vedi tipo Options sotto) |
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 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 del 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 create 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 | Definisce programmaticamente i subagenti |
allowedTools | string[] | Tutti gli strumenti | Elenco dei nomi degli strumenti consentiti |
canUseTool | CanUseTool | undefined | Funzione di permesso personalizzata per l’uso degli strumenti |
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 d’ambiente |
executable | 'bun' | 'deno' | 'node' | Rilevato automaticamente | 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 quello primario fallisce |
forkSession | boolean | false | Quando si riprende con resume , crea una nuova sessione ID invece di continuare la sessione originale |
hooks | Partial<Record< HookEvent , HookCallbackMatcher []>> | {} | Callback hook per eventi |
includePartialMessages | boolean | false | Includi eventi di messaggi parziali |
maxThinkingTokens | number | undefined | Token massimi per il processo di pensiero |
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 | Rilevato automaticamente | Percorso all’eseguibile Claude Code |
permissionMode | PermissionMode | 'default' | Modalità di permesso per la sessione |
permissionPromptToolName | string | undefined | Nome dello strumento MCP per i prompt di permesso |
resume | string | undefined | ID sessione da riprendere |
settingSources | SettingSource [] | [] (nessuna impostazione) | Controlla quali impostazioni del filesystem caricare. Quando omesso, nessuna impostazione viene caricata |
stderr | (data: string) => void | undefined | Callback per l’output stderr |
strictMcpConfig | boolean | false | Applica validazione 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 |
Query
Interfaccia restituita dalla funzione query()
.
Metodi
Metodo | Descrizione |
---|---|
interrupt() | Interrompe la query (disponibile solo in modalità input streaming) |
setPermissionMode() | Cambia la modalità di permesso (disponibile solo in modalità input streaming) |
AgentDefinition
Configurazione per un subagente definito programmaticamente.
Campo | Richiesto | Descrizione |
---|---|---|
description | Sì | Descrizione in linguaggio naturale di quando utilizzare questo agente |
tools | No | Array di nomi di strumenti consentiti. Se omesso, eredita tutti gli strumenti |
prompt | Sì | Il prompt di sistema dell’agente |
model | No | Override del modello per questo agente. Se omesso, utilizza il modello principale |
SettingSource
Controlla da quali fonti di configurazione basate sul filesystem l’SDK carica le impostazioni.
Valore | Descrizione | Posizione |
---|---|---|
'user' | Impostazioni utente globali | ~/.claude/settings.json |
'project' | Impostazioni progetto condivise (controllo versione) | .claude/settings.json |
'local' | Impostazioni 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 vengono caricate più fonti, le impostazioni vengono unite con questa precedenza (dalla più alta alla più bassa):- Impostazioni locali (
.claude/settings.local.json
) - Impostazioni progetto (
.claude/settings.json
) - Impostazioni utente (
~/.claude/settings.json
)
agents
, allowedTools
) sovrascrivono sempre le impostazioni del filesystem.
PermissionMode
CanUseTool
Tipo di funzione di permesso personalizzata per controllare l’uso degli strumenti.
PermissionResult
Risultato di un controllo di permesso.
McpServerConfig
Configurazione per i server MCP.
McpStdioServerConfig
McpSSEServerConfig
McpHttpServerConfig
McpSdkServerConfigWithInstance
Tipi di Messaggio
SDKMessage
Tipo 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 richiesto.
SDKResultMessage
Messaggio di risultato finale.
SDKSystemMessage
Messaggio di inizializzazione del sistema.
SDKPartialAssistantMessage
Messaggio parziale in streaming (solo quando includePartialMessages
è true).
SDKCompactBoundaryMessage
Messaggio che indica un confine di compattazione della conversazione.
SDKPermissionDenial
Informazioni su un uso di strumento negato.
Tipi Hook
HookEvent
Eventi hook disponibili.
HookCallback
Tipo di funzione callback hook.
HookCallbackMatcher
Configurazione hook con matcher opzionale.
HookInput
Tipo 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 hook.
AsyncHookJSONOutput
SyncHookJSONOutput
Tipi di Input Strumento
Documentazione degli schemi di input per tutti gli strumenti integrati di Claude Code. Questi tipi sono esportati da@anthropic-ai/claude-agent-sdk
e possono essere utilizzati per interazioni con strumenti type-safe.
ToolInput
Nota: Questo è un tipo solo per documentazione per chiarezza. Rappresenta l’unione di tutti i tipi di input strumento.
Task
Nome strumento:Task
Bash
Nome strumento:Bash
BashOutput
Nome strumento:BashOutput
Edit
Nome strumento:Edit
MultiEdit
Nome strumento:MultiEdit
Read
Nome strumento:Read
Write
Nome strumento:Write
Glob
Nome strumento:Glob
Grep
Nome strumento:Grep
KillBash
Nome strumento:KillBash
NotebookEdit
Nome strumento:NotebookEdit
WebFetch
Nome strumento:WebFetch
WebSearch
Nome strumento:WebSearch
TodoWrite
Nome strumento:TodoWrite
ExitPlanMode
Nome strumento:ExitPlanMode
ListMcpResources
Nome strumento:ListMcpResources
ReadMcpResource
Nome strumento:ReadMcpResource
Tipi di Output Strumento
Documentazione degli schemi di output per tutti gli strumenti integrati di Claude Code. Questi tipi rappresentano i dati di risposta effettivi restituiti da ogni strumento.ToolOutput
Nota: Questo è un tipo solo per documentazione per chiarezza. Rappresenta l’unione di tutti i tipi di output strumento.
Task
Nome strumento:Task
Bash
Nome strumento:Bash
BashOutput
Nome strumento:BashOutput
Edit
Nome strumento:Edit
MultiEdit
Nome strumento:MultiEdit
Read
Nome strumento:Read
Write
Nome strumento:Write
Glob
Nome strumento:Glob
Grep
Nome strumento:Grep
KillBash
Nome strumento:KillBash
NotebookEdit
Nome strumento:NotebookEdit
WebFetch
Nome strumento:WebFetch
WebSearch
Nome strumento:WebSearch
TodoWrite
Nome strumento:TodoWrite
ExitPlanMode
Nome strumento:ExitPlanMode
ListMcpResources
Nome strumento:ListMcpResources
ReadMcpResource
Nome strumento:ReadMcpResource
Tipi di Permesso
PermissionUpdate
Operazioni per aggiornare i permessi.
PermissionBehavior
PermissionUpdateDestination
PermissionRuleValue
Altri Tipi
ApiKeySource
ConfigScope
NonNullableUsage
Una versione di Usage
con tutti i campi nullable resi non-nullable.
Usage
Statistiche di utilizzo token (da @anthropic-ai/sdk
).
CallToolResult
Tipo di risultato strumento MCP (da @modelcontextprotocol/sdk/types.js
).
AbortError
Classe di errore personalizzata per operazioni di abort.
Vedi anche
- Panoramica SDK - Concetti generali SDK
- Riferimento SDK Python - Documentazione SDK Python
- Riferimento CLI - Interfaccia a riga di comando
- Flussi di lavoro comuni - Guide passo-passo