Claude Platform Docs
MessagesStrumenti

Risoluzione dei problemi dell'uso degli strumenti

Risolvi gli errori più comuni dell'uso degli strumenti con tabelle diagnostiche dal sintomo alla soluzione.

Tabelle dal sintomo alla soluzione per gli errori più comuni del "tool use" (uso degli strumenti). Ogni soluzione rimanda alla pagina dedicata alla funzionalità corrispondente.

Claude chiama lo strumento sbagliato

SintomoCausa probabileSoluzione
Claude chiama lo strumento A quando volevi lo strumento BAmbiguità nella descrizioneAffina le descrizioni. Differenzia gli strumenti in base a QUANDO usarli, non solo a COSA fanno. Consulta Definire gli strumenti.
Claude non chiama mai il tuo strumentoCollisione tra nomi di strumenti o schema troppo genericoVerifica la presenza di nomi duplicati nell'elenco degli strumenti. Aggiungi input_examples per rendere concreto l'uso previsto.
Claude chiama con tipi di parametro erratiIl modello indovina di fronte a uno schema ambiguoAggiungi strict: true (se il tuo schema rientra nel sottoinsieme supportato) oppure aggiungi input_examples.

Claude inventa parametri degli strumenti

SintomoCausa probabileSoluzione
Parametro che non esiste nel tuo schemaSovra-generazione del modello senza modalità strictAggiungi strict: true se il tuo schema rientra nel sottoinsieme supportato.
Valori dei parametri al di fuori del tuo enumModalità strict mancante o enum troppo grandeRiduci l'enum oppure aggiungi input_examples che mostrino le scelte valide.

Le chiamate parallele agli strumenti non funzionano

SintomoCausa probabileSoluzione
Claude chiama gli strumenti in sequenza quando sarebbe meglio in paralleloFormattazione della cronologia dei messaggiInvia più blocchi tool_result in UN SOLO messaggio utente, non uno per turno. Consulta Uso parallelo degli strumenti.
disable_parallel_tool_use sembra ignoratoImpostato troppo tardi nella conversazioneDeve essere impostato sulla richiesta che restituisce tool_use. Impostarlo su una richiesta successiva non ha effetto sulle chiamate agli strumenti precedenti.

La cache continua a invalidarsi

SintomoCausa probabileSoluzione
Ogni richiesta è un cache misstool_choice, la configurazione del thinking o output_config.effort variano tra le richiesteMantieni tool_choice stabile oppure posiziona il breakpoint cache_control prima del punto di variazione; mantieni costanti la configurazione del thinking e il livello di effort per tutta la durata di una conversazione in cache. Consulta Uso degli strumenti con la cache dei prompt e Ragionamento e cache dei prompt.
Aggiungere uno strumento a metà conversazione rompe la cacheStrumento inserito all'inizio dell'array toolsUsa defer_loading: true con la ricerca degli strumenti per aggiungere lo strumento inline invece di modificare la testa dell'array.

Errori al momento della richiesta

ErroreCausaSoluzione
tool_use ids were found without tool_result blocks immediately aftertool_result mancante per alcuni id tool_use, oppure tool_result non è il primo blocco di contenuto nel messaggio utenteRestituisci un tool_result per ogni blocco tool_use nella risposta dell'assistente. Metti i blocchi tool_result prima di qualsiasi testo. Consulta Gestire le chiamate agli strumenti e Uso parallelo degli strumenti.
was found without a corresponding <name>_tool_result blockIl turno precedente dell'assistente contiene un blocco server_tool_use senza blocco di risultato (il più delle volte, Claude lo ha chiamato insieme a uno strumento client), e il tuo messaggio utente successivo ha terminato quel turno (ad esempio, con del testo dopo i blocchi tool_result) oppure la richiesta di ripresa non definisce più quello strumento server (il messaggio termina allora con but no <name> tool was provided)Invia un messaggio utente contenente solo i blocchi tool_result per gli id tool_use client e mantieni lo stesso array tools. Consulta Motivi di arresto e fallback.
Unsupported regex feature in pattern field: ...Un pattern nell'input_schema di uno strumento strict usa una funzionalità regex che la modalità strict non può compilare, come un backreference, un lookaround, un word boundary o un intervallo {n,m} ampioSemplifica il pattern. Sono supportati i pattern ancorati con quantificatori di base, classi di caratteri e gruppi; consulta Limitazioni di JSON Schema.
All tools have defer_loading: trueNessuno strumento visibile al modelloAlmeno uno strumento deve essere caricato immediatamente. Lo strumento di ricerca degli strumenti stesso non deve mai avere defer_loading: true.

Errore: i blocchi thinking non possono essere modificati

Se una richiesta fallisce con un 400 invalid_request_error il cui messaggio contiene `thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified quando prosegui una conversazione dopo una chiamata a uno strumento, la tua applicazione sta alterando i blocchi thinking dell'assistente prima di rinviarli. Rinvia l'intero messaggio dell'assistente invariato, quindi aggiungi il tuo tool_result.

Consulta I blocchi thinking non possono essere modificati per l'errore completo e i passaggi di risoluzione.

Claude segnala i risultati degli strumenti come prompt injection

SintomoCausa probabileSoluzione
Claude si rifiuta di agire su un risultato di uno strumento, oppure chiede all'utente di confermare istruzioni che provengono da essoLe tue stesse istruzioni vengono fornite all'interno del contenuto del tool_resultClaude è addestrato a trattare le istruzioni all'interno dei risultati degli strumenti come contenuto di terze parti potenzialmente non attendibile. Sposta le tue istruzioni fuori dal risultato dello strumento: inviale in un turno user dopo il blocco tool_result oppure, sui modelli supportati, in un messaggio di sistema a metà conversazione. Limita il risultato dello strumento ai soli dati. Consulta Mitigare jailbreak e prompt injection.

Differenze nell'escaping JSON (Opus 4.6+)

SintomoCausaSoluzione
Il confronto tra stringhe sugli input degli strumenti fallisce con i modelli più recentiL'escaping di Unicode e delle barre oblique differisce tra le versioni dei modelliEsegui il parsing con json.loads() o JSON.parse(). Non eseguire mai confronti tra stringhe grezze sull'input serializzato.

Passaggi successivi

Scrivi schemi e descrizioni che indirizzino Claude verso lo strumento giusto.

Esegui gli strumenti e restituisci i risultati nel formato di messaggio richiesto.

Elenco completo degli strumenti forniti da Anthropic e delle relative stringhe di versione.

Was this page helpful?