Per sapere come la "zero data retention" (conservazione zero dei dati), o ZDR, si applica a questa funzionalità, consulta API e conservazione dei dati.
Questa pagina illustra un ciclo completo di uso degli strumenti in due turni con il pensiero abilitato: Claude pensa, richiede una chiamata a uno strumento, riceve il risultato e completa la sua risposta, con i blocchi di pensiero gestiti correttamente in ogni passaggio. Le regole complete si trovano nella pagina Pensiero, in Pensiero con uso degli strumenti e Preservare i blocchi di pensiero; questa pagina mostra quelle regole applicate in codice eseguibile.
Ogni link porta alla dichiarazione completa nella pagina Pensiero:
auto o none in modalità manuale: le opzioni di tool_choice che forzano l'uso degli strumenti restituiscono un errore con il pensiero esteso manuale (thinking: {type: "enabled"}); il pensiero adattivo supporta l'uso forzato degli strumenti.redacted_thinking genera un errore 400.Gli esempi usano il pensiero adattivo; sui modelli che supportano solo il pensiero esteso, sostituisci con thinking: {type: "enabled", budget_tokens: N}. Le regole del ciclo completo sono identiche.
L'esempio definisce uno strumento get_weather, lascia che Claude pensi e richieda una chiamata allo strumento, quindi restituisce il risultato dello strumento insieme al turno dell'assistente riprodotto esattamente come ricevuto, blocco di pensiero incluso.
Effettua la prima richiesta con uno strumento disponibile
Invia una richiesta con il pensiero adattivo abilitato e lo strumento definito. A parte il parametro thinking, questa è una richiesta standard di uso degli strumenti:
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string", "description": "City name"}},
"required": ["location"],
},
}
# Prima richiesta - Claude risponde con il pensiero e la richiesta di strumento
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
print(response)Cattura l'array di contenuto da riprodurre
Dovresti vedere i blocchi thinking, text e tool_use nel contenuto della risposta in un'esecuzione in cui Claude ha scelto di pensare (su richieste più semplici, la modalità adattiva può saltare il blocco di pensiero). Mantieni intatto questo array di contenuto: il passaggio successivo lo rinvia alla lettera.
Per vedere il testo del pensiero come in questo output, aggiungi display: "summarized" alla richiesta. Sui modelli in cui la visualizzazione è omessa per impostazione predefinita, incluso claude-opus-4-8, il campo thinking altrimenti viene restituito come stringa vuota con solo il campo signature popolato. In entrambi i casi, riproduci l'array di contenuto senza modifiche; consulta Controllare la visualizzazione del pensiero.
{
"content": [
{
"type": "thinking",
"thinking": "The user wants to know the current weather in Paris. I have access to a function `get_weather`...",
"signature": "BDaL4VrbR2Oj0hO4XpJxT28J5T...."
},
{
"type": "text",
"text": "I can help you get the current weather information for Paris. Let me check that for you"
},
{
"type": "tool_use",
"id": "toolu_01CswdEQBMshySk6Y9DFKrfq",
"name": "get_weather",
"input": {
"location": "Paris"
}
}
]
}Restituisci il risultato dello strumento, riproducendo il turno dell'assistente alla lettera
Esegui lo strumento dal tuo lato, quindi invia una seconda richiesta che aggiunge due messaggi alla conversazione. Il primo è il contenuto dell'assistente riprodotto esattamente come ricevuto, in modo che il blocco di pensiero rimanga invariato accanto al blocco tool_use. Il secondo è un messaggio utente che contiene il tool_result.
Ogni esempio è uno script autonomo: ripete la prima richiesta, quindi invia immediatamente la richiesta successiva usando la risposta appena ricevuta.
client = anthropic.Anthropic()
weather_tool = {
"name": "get_weather",
"description": "Get current weather for a location",
"input_schema": {
"type": "object",
"properties": {"location": {"type": "string", "description": "City name"}},
"required": ["location"],
},
}
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[{"role": "user", "content": "What's the weather in Paris?"}],
)
# Estrai il blocco di uso degli strumenti per ottenere il suo ID per il risultato dello strumento
tool_use_block = next(block for block in response.content if block.type == "tool_use")
# Chiama la tua vera API meteo, qui è dove andrebbe la tua chiamata API effettiva
# Facciamo finta che questo sia ciò che riceviamo
weather_data = {"temperature": 88}
# Seconda richiesta - Includi il turno dell'assistente e il risultato dello strumento
continuation = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
tools=[weather_tool],
messages=[
{"role": "user", "content": "What's the weather in Paris?"},
# Riporta il contenuto dell'assistente esattamente come ricevuto. Quando è presente
# un blocco di pensiero, deve accompagnare il blocco tool_use.
{"role": "assistant", "content": response.content},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": tool_use_block.id,
"content": f"Current temperature: {weather_data['temperature']}°F",
}
],
},
],
)
print(continuation)Leggi la risposta finale
Dovresti vedere Claude completare il turno con del testo. Poiché il pensiero intercalato è automatico in modalità adattiva, la continuazione può anche aprirsi con un nuovo blocco di pensiero prima del testo finale:
{
"content": [
{
"type": "text",
"text": "Currently in Paris, the temperature is 88°F (31°C)"
}
]
}Il pensiero intercalato consente a Claude di pensare tra una chiamata a uno strumento e l'altra, ragionando su ogni risultato dello strumento prima di agire su di esso. Il concetto e la disponibilità per modello sono trattati in Pensiero intercalato nella pagina Pensiero; l'intercalazione modifica dove appaiono i blocchi di pensiero, non se le chiamate agli strumenti possono concatenarsi. Il confronto seguente mostra cosa cambia con il pensiero intercalato in un flusso di lavoro con due strumenti:
La panoramica: attiva il pensiero, leggi l'output del pensiero e consulta le regole complete per uso degli strumenti, caching e streaming.
Guida la frequenza e la profondità con cui Claude pensa con i livelli di sforzo e le indicazioni basate sui prompt.
Budget di pensiero manuali sui modelli meno recenti: meccanica di budget_tokens e migrazione alla modalità adattiva.
Was this page helpful?