Impostare strict: true nella definizione di uno 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 dalla 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.
L'uso rigoroso degli strumenti convalida i parametri degli strumenti, garantendo che Claude chiami le tue funzioni con argomenti tipizzati correttamente. 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, causando il malfunzionamento delle tue funzioni ed errori di runtime.
L'uso rigoroso degli strumenti garantisce parametri type-safe:
Ad esempio, supponiamo 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-4-8",
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 (dagli strumenti forniti o dagli strumenti del server)Definisci lo schema del tuo strumento
Crea uno schema JSON per l'input_schema del tuo strumento. Lo schema utilizza 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, insieme 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.
L'uso rigoroso degli strumenti compila le definizioni input_schema degli strumenti in grammatiche utilizzando 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 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 memorizzati nella 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 apparire solo nel contenuto dei messaggi (prompt e risposte), dove sono protette dalle salvaguardie HIPAA.
Per l'idoneità ZDR e HIPAA su 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 utilizzando lo stesso campionamento vincolato dalla grammatica.
Specifica gli schemi degli strumenti, scrivi descrizioni efficaci e controlla quando Claude chiama i tuoi strumenti.
Was this page helpful?