Impostare strict: true su una definizione di strumento garantisce che gli input degli strumenti di Claude corrispondano al tuo JSON Schema, vincolando il campionamento dei token del modello a output validi rispetto allo schema (una tecnica chiamata "grammar-constrained sampling", ovvero campionamento vincolato da grammatica). Questa pagina spiega perché la modalità rigorosa è importante per gli agenti, come abilitarla e i casi d'uso comuni. Per il sottoinsieme di JSON Schema supportato, consulta Limitazioni di JSON Schema. Per indicazioni sugli schemi non rigorosi, consulta Definire gli strumenti.
Lo "strict tool use" (uso rigoroso degli strumenti) convalida i parametri degli strumenti, garantendo che Claude chiami le tue funzioni con argomenti correttamente tipizzati. Usa l'uso rigoroso degli strumenti quando hai bisogno di:
Costruire sistemi agentici affidabili richiede una conformità garantita allo schema. Senza la modalità rigorosa, Claude potrebbe restituire tipi incompatibili ("2" invece di 2) o omettere campi obbligatori, interrompendo le tue funzioni e causando errori a runtime.
L'uso rigoroso degli strumenti garantisce parametri type-safe:
Ad esempio, supponi che un sistema di prenotazione richieda passengers: int. Senza la modalità rigorosa, Claude potrebbe fornire passengers: "two" o passengers: "2". Con strict: true, la risposta contiene sempre passengers: 2.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-5",
max_tokens=1024,
messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}],
tools=[
{
"name": "get_weather",
"description": "Get the current weather in a given location",
"strict": True, # Enable strict mode
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA",
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"],
"description": "The unit of temperature, either 'celsius' or 'fahrenheit'",
},
},
"required": ["location"],
"additionalProperties": False,
},
}
],
)
print(response.content)Formato della risposta: blocchi di uso degli strumenti con input convalidati in response.content[x].input
{
"type": "tool_use",
"name": "get_weather",
"input": {
"location": "San Francisco, CA"
}
}Garanzie:
input dello strumento segue rigorosamente l'input_schemaname dello strumento è sempre valido (tra gli strumenti forniti o gli strumenti server)Definisci lo schema del tuo strumento
Crea uno schema JSON per l'input_schema del tuo strumento. Lo schema usa il formato JSON Schema standard con alcune limitazioni (consulta Limitazioni di JSON Schema).
Aggiungi strict: true
Imposta "strict": true come proprietà di primo livello nella definizione del tuo strumento, accanto a name, description e input_schema.
Gestisci le chiamate agli strumenti
Quando Claude usa lo strumento, il campo input nel blocco tool_use segue rigorosamente il tuo input_schema, e il name è sempre valido.
Le voci dei toolset computer use e browser use (computer_toolset_20260801 e browser_toolset_20260801) non accettano strict: true; una richiesta che lo imposta su una di queste voci viene rifiutata.
L'uso rigoroso degli strumenti compila le definizioni input_schema degli strumenti in grammatiche usando la stessa pipeline degli output strutturati. Gli schemi degli strumenti vengono temporaneamente memorizzati nella cache per un massimo di 24 ore dall'ultimo utilizzo. I prompt e le risposte non vengono conservati oltre la risposta dell'API.
L'uso rigoroso degli strumenti è idoneo per HIPAA, ma le informazioni sanitarie protette (PHI) non devono essere incluse nelle definizioni degli schemi degli strumenti. L'API memorizza nella cache gli schemi compilati separatamente dal contenuto dei messaggi, e questi schemi in cache non ricevono le stesse protezioni PHI dei prompt e delle risposte. Non includere PHI nei nomi delle proprietà di input_schema, nei valori enum, nei valori const o nelle espressioni regolari pattern. Le PHI devono comparire solo nel contenuto dei messaggi (prompt e risposte), dove sono protette dalle garanzie HIPAA.
Per l'idoneità ZDR e HIPAA di tutte le funzionalità, consulta API e conservazione dei dati.
Recupera e leggi contenuti da URL specifici per portare contenuti web in tempo reale nel contesto di Claude.
Memorizza nella cache le definizioni degli strumenti tra i turni per ridurre costi e latenza.
Ottieni risposte JSON convalidate usando lo stesso campionamento vincolato da grammatica.
Specifica gli schemi degli strumenti, scrivi descrizioni efficaci e controlla quando Claude chiama i tuoi strumenti.
Was this page helpful?