Costruisci agenti AI personalizzati con il Claude Code SDK
Installa l'SDK
@anthropic-ai/claude-code
da NPM:Imposta la tua chiave API
ANTHROPIC_API_KEY
:Crea il tuo primo agente
Esegui l'agente
@anthropic-ai/claude-code
da NPMclaude
. Usa il flag --print
(o -p
) per eseguire in modalità non interattiva e stampare il risultato finale:Flag | Descrizione | Esempio |
---|---|---|
--print , -p | Esegui in modalità non interattiva | claude -p "query" |
--output-format | Specifica il formato di output (text , json , stream-json ) | claude -p --output-format json |
--resume , -r | Riprendi una conversazione per ID sessione | claude --resume abc123 |
--continue , -c | Continua la conversazione più recente | claude --continue |
--verbose | Abilita il logging verboso | claude --verbose |
--append-system-prompt | Aggiungi al prompt di sistema (solo con --print ) | claude --append-system-prompt "Istruzione personalizzata" |
--allowedTools | Lista separata da spazi di strumenti consentiti, o stringa di lista separata da virgole di strumenti consentiti | claude --allowedTools mcp__slack mcp__filesystem claude --allowedTools "Bash(npm install),mcp__filesystem" |
--disallowedTools | Lista separata da spazi di strumenti negati, o stringa di lista separata da virgole di strumenti negati | claude --disallowedTools mcp__splunk mcp__github claude --disallowedTools "Bash(git commit),mcp__github" |
--mcp-config | Carica server MCP da un file JSON | claude --mcp-config servers.json |
--permission-prompt-tool | Strumento MCP per gestire i prompt di permesso (solo con --print ) | claude --permission-prompt-tool mcp__auth__prompt |
ANTHROPIC_API_KEY
, come dimostrato nell’Avvio rapido.
CLAUDE_CODE_USE_BEDROCK=1
e configura le credenziali AWSCLAUDE_CODE_USE_VERTEX=1
e configura le credenziali Google Cloud--allowedTools
. I nomi degli strumenti MCP seguono il pattern mcp__<serverName>__<toolName>
dove:serverName
è la chiave dal tuo file di configurazione MCPtoolName
è lo strumento specifico fornito da quel servermcp__<serverName>
), tutti gli strumenti da quel server saranno consentiti.I pattern glob (ad es., mcp__go*
) non sono supportati.--permission-prompt-tool
per passare uno strumento MCP che useremo per verificare se l’utente concede al modello i permessi per invocare un dato strumento. Quando il modello invoca uno strumento succede quanto segue:
--allowedTools
e --disallowedTools
passati nell’SDK; se una di queste consente o nega la chiamata dello strumento, procediamo con la chiamata dello strumento--permission-prompt-tool
--permission-prompt-tool
riceve il nome dello strumento e l’input, e deve restituire un payload JSON-stringificato con il risultato. Il payload deve essere uno di:
updatedInput
per dire al modello che il prompt di permesso ha mutato il suo input; altrimenti, imposta updatedInput
all’input originale, come nell’esempio sopra. Ad esempio, se lo strumento mostra un diff di modifica file all’utente e gli permette di modificare il diff manualmente, lo strumento di prompt di permesso dovrebbe restituire quella modifica aggiornata.init
iniziale, seguito da una lista di messaggi utente e assistente, seguito da un messaggio di sistema result
finale con statistiche. Ogni messaggio è emesso come oggetto JSON separato.
Message
e MessageParam
sono disponibili negli SDK Anthropic. Ad esempio, vedi gli SDK Anthropic TypeScript e Python.
stdin
dove ogni messaggio rappresenta un turno utente. Questo permette turni multipli di una conversazione senza rilanciare il binario claude
e permette di fornire guida al modello mentre sta elaborando una richiesta.
Ogni messaggio è un oggetto JSON ‘Messaggio utente’, seguendo lo stesso formato dello schema dei messaggi di output. I messaggi sono formattati usando il formato jsonl dove ogni riga di input è un oggetto JSON completo. L’input JSON in streaming richiede -p
e --output-format stream-json
.
Attualmente questo è limitato a messaggi utente solo di testo.