Il pensiero esteso offre a Claude capacità di ragionamento migliorate per compiti complessi, fornendo vari livelli di trasparenza nel suo processo di pensiero passo dopo passo prima di fornisce la risposta finale.
Per Claude Opus 4.6, consigliamo di utilizzare il pensiero adattivo (thinking: {type: "adaptive"}) con il parametro effort invece della modalità di pensiero manuale descritta in questa pagina. La configurazione manuale thinking: {type: "enabled", budget_tokens: N} è deprecata su Opus 4.6 e verrà rimossa in una futura versione del modello.
Il pensiero esteso è supportato nei seguenti modelli:
claude-opus-4-6) — pensiero adattivo solo; la modalità manuale (type: "enabled") è deprecataclaude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514)claude-sonnet-4-6) — supporta sia il pensiero esteso manuale con modalità intercalata che il pensiero adattivoclaude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-3-7-sonnet-20250219) (deprecato)claude-haiku-4-5-20251001)Il comportamento dell'API differisce tra i modelli Claude Sonnet 3.7 e Claude 4, ma le forme dell'API rimangono esattamente le stesse.
Per ulteriori informazioni, vedere Differenze nel pensiero tra le versioni dei modelli.
Quando il pensiero esteso è attivato, Claude crea blocchi di contenuto thinking in cui produce il suo ragionamento interno. Claude incorpora gli insegnamenti da questo ragionamento prima di formulare una risposta finale.
La risposta dell'API includerà blocchi di contenuto thinking, seguiti da blocchi di contenuto text.
Ecco un esempio del formato di risposta predefinito:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Per ulteriori informazioni sul formato di risposta del pensiero esteso, vedere il Riferimento API dei Messaggi.
Ecco un esempio di utilizzo del pensiero esteso nell'API dei Messaggi:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-sonnet-4-6",
"max_tokens": 16000,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
}
]
}'Per attivare il pensiero esteso, aggiungi un oggetto thinking, con il parametro type impostato su enabled e budget_tokens su un budget di token specificato per il pensiero esteso. Per Claude Opus 4.6, consigliamo di utilizzare type: "adaptive" — vedere Pensiero adattivo per i dettagli. Mentre type: "enabled" con budget_tokens è ancora supportato su Opus 4.6, è deprecato e verrà rimosso in una futura versione.
Il parametro budget_tokens determina il numero massimo di token che Claude è autorizzato a utilizzare per il suo processo di ragionamento interno. Nei modelli Claude 4 e successivi, questo limite si applica ai token di pensiero completo, non all'output riassunto. Budget più grandi possono migliorare la qualità della risposta abilitando un'analisi più approfondita per problemi complessi, anche se Claude potrebbe non utilizzare l'intero budget allocato, specialmente in intervalli superiori a 32k.
budget_tokens è deprecato su Claude Opus 4.6 e verrà rimosso in una futura versione del modello. Consigliamo di utilizzare il pensiero adattivo con il parametro effort per controllare la profondità del pensiero.
Claude Opus 4.6 supporta fino a 128K token di output. I modelli precedenti supportano fino a 64K token di output.
budget_tokens deve essere impostato su un valore inferiore a max_tokens. Tuttavia, quando si utilizza il pensiero intercalato con strumenti, è possibile superare questo limite poiché il limite di token diventa l'intera finestra di contesto (200k token).
With extended thinking enabled, the Messages API for Claude 4 models returns a summary of Claude's full thinking process. Summarized thinking provides the full intelligence benefits of extended thinking, while preventing misuse.
Here are some important considerations for summarized thinking:
Claude Sonnet 3.7 continues to return full thinking output.
In rare cases where you need access to full thinking output for Claude 4 models, contact our sales team.
È possibile trasmettere in streaming le risposte del pensiero esteso utilizzando server-sent events (SSE).
Quando lo streaming è abilitato per il pensiero esteso, ricevi il contenuto del pensiero tramite eventi thinking_delta.
Per ulteriore documentazione sullo streaming tramite l'API dei Messaggi, vedere Streaming dei Messaggi.
Ecco come gestire lo streaming con il pensiero:
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-sonnet-4-6",
"max_tokens": 16000,
"stream": true,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?"
}
]
}'Esempio di output dello streaming:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-6", "stop_reason": null, "stop_sequence": null}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "thinking", "thinking": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "I need to find the GCD of 1071 and 462 using the Euclidean algorithm.\n\n1071 = 2 × 462 + 147"}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "thinking_delta", "thinking": "\n462 = 3 × 147 + 21\n147 = 7 × 21 + 0\n\nSo GCD(1071, 462) = 21"}}
// Additional thinking deltas...
event: content_block_delta
data: {"type": "content_block_delta", "index": 0, "delta": {"type": "signature_delta", "signature": "EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1pkiMOYds..."}}
event: content_block_stop
data: {"type": "content_block_stop", "index": 0}
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "text", "text": ""}}
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "text_delta", "text": "The greatest common divisor of 1071 and 462 is **21**."}}
// Additional text deltas...
event: content_block_stop
data: {"type": "content_block_stop", "index": 1}
event: message_delta
data: {"type": "message_delta", "delta": {"stop_reason": "end_turn", "stop_sequence": null}}
event: message_stop
data: {"type": "message_stop"}Quando si utilizza lo streaming con il pensiero abilitato, potresti notare che il testo a volte arriva in blocchi più grandi alternati con una consegna token per token più piccola. Questo è il comportamento previsto, specialmente per il contenuto del pensiero.
Il sistema di streaming deve elaborare il contenuto in batch per prestazioni ottimali, il che può risultare in questo modello di consegna "frammentato", con possibili ritardi tra gli eventi di streaming. Stiamo continuamente lavorando per migliorare questa esperienza, con futuri aggiornamenti focalizzati su rendere il contenuto del pensiero più fluido nello streaming.
Il pensiero esteso può essere utilizzato insieme all'uso di strumenti, consentendo a Claude di ragionare sulla selezione degli strumenti e l'elaborazione dei risultati.
Quando si utilizza il pensiero esteso con l'uso di strumenti, tieni presente le seguenti limitazioni:
Limitazione della scelta dello strumento: L'uso di strumenti con il pensiero supporta solo tool_choice: {"type": "auto"} (il valore predefinito) o tool_choice: {"type": "none"}. L'utilizzo di tool_choice: {"type": "any"} o tool_choice: {"type": "tool", "name": "..."} comporterà un errore perché queste opzioni forzano l'uso dello strumento, che è incompatibile con il pensiero esteso.
Preservazione dei blocchi di pensiero: Durante l'uso dello strumento, devi passare i blocchi thinking all'API per l'ultimo messaggio dell'assistente. Includi il blocco completo non modificato all'API per mantenere la continuità del ragionamento.
Non puoi alternare il pensiero nel mezzo di un turno dell'assistente, incluso durante i cicli di uso dello strumento. L'intero turno dell'assistente dovrebbe operare in una singola modalità di pensiero:
Dal punto di vista del modello, i cicli di uso dello strumento fanno parte del turno dell'assistente. Un turno dell'assistente non si completa finché Claude non termina la sua risposta completa, che può includere più chiamate di strumenti e risultati.
Ad esempio, questa sequenza fa parte di un singolo turno dell'assistente:
User: "What's the weather in Paris?"
Assistant: [thinking] + [tool_use: get_weather]
User: [tool_result: "20°C, sunny"]
Assistant: [text: "The weather in Paris is 20°C and sunny"]Anche se ci sono più messaggi API, il ciclo di uso dello strumento è concettualmente parte di una risposta continua dell'assistente.
Quando si verifica un conflitto di pensiero a metà turno (come alternare il pensiero on o off durante un ciclo di uso dello strumento), l'API disabilita automaticamente il pensiero per quella richiesta. Per preservare la qualità del modello e rimanere sulla distribuzione, l'API può:
Ciò significa che il tentativo di alternare il pensiero a metà turno non causerà un errore, ma il pensiero verrà silenziosamente disabilitato per quella richiesta. Per confermare se il pensiero era attivo, controlla la presenza di blocchi thinking nella risposta.
Best practice: Pianifica la tua strategia di pensiero all'inizio di ogni turno piuttosto che cercare di alternare a metà turno.
Esempio: Alternanza del pensiero dopo il completamento di un turno
User: "What's the weather?"
Assistant: [tool_use] (thinking disabled)
User: [tool_result]
Assistant: [text: "It's sunny"]
User: "What about tomorrow?"
Assistant: [thinking] + [text: "..."] (thinking enabled - new turn)Completando il turno dell'assistente prima di alternare il pensiero, assicuri che il pensiero sia effettivamente abilitato per la nuova richiesta.
L'alternanza delle modalità di pensiero invalida anche la cache dei prompt per la cronologia dei messaggi. Per ulteriori dettagli, vedere la sezione Pensiero esteso con cache dei prompt.
Durante l'uso dello strumento, devi passare i blocchi thinking all'API, e devi includere il blocco completo non modificato all'API. Questo è critico per mantenere il flusso di ragionamento del modello e l'integrità della conversazione.
Mentre puoi omettere i blocchi thinking dai turni precedenti del ruolo assistant, suggeriamo di passare sempre tutti i blocchi di pensiero all'API per qualsiasi conversazione multi-turno. L'API:
Quando si alternano le modalità di pensiero durante una conversazione, ricorda che l'intero turno dell'assistente (inclusi i cicli di uso dello strumento) deve operare in una singola modalità di pensiero. Per ulteriori dettagli, vedere Alternanza delle modalità di pensiero nelle conversazioni.
Quando Claude richiama gli strumenti, sta mettendo in pausa la costruzione di una risposta per attendere informazioni esterne. Quando i risultati degli strumenti vengono restituiti, Claude continuerà a costruire quella risposta esistente. Ciò rende necessaria la preservazione dei blocchi di pensiero durante l'uso dello strumento, per un paio di motivi:
Continuità del ragionamento: I blocchi di pensiero catturano il ragionamento passo dopo passo di Claude che ha portato alle richieste di strumenti. Quando pubblichi i risultati degli strumenti, includere il pensiero originale assicura che Claude possa continuare il suo ragionamento da dove l'ha lasciato.
Mantenimento del contesto: Mentre i risultati degli strumenti appaiono come messaggi dell'utente nella struttura dell'API, fanno parte di un flusso di ragionamento continuo. Preservare i blocchi di pensiero mantiene questo flusso concettuale attraverso più chiamate API. Per ulteriori informazioni sulla gestione del contesto, vedere la nostra guida sulle finestre di contesto.
Importante: Quando si forniscono blocchi thinking, l'intera sequenza di blocchi thinking consecutivi deve corrispondere agli output generati dal modello durante la richiesta originale; non puoi riordinare o modificare la sequenza di questi blocchi.
Il pensiero esteso con uso di strumenti nei modelli Claude 4 supporta il pensiero intercalato, che consente a Claude di pensare tra le chiamate di strumenti e fare ragionamenti più sofisticati dopo aver ricevuto i risultati degli strumenti.
Con il pensiero intercalato, Claude può:
Supporto del modello:
interleaved-thinking-2025-05-14 è deprecata su Opus 4.6 e viene ignorata in sicurezza se inclusa.interleaved-thinking-2025-05-14 con il pensiero esteso manuale (thinking: {type: "enabled"}). Puoi anche utilizzare il pensiero adattivo, che abilita automaticamente il pensiero intercalato.interleaved-thinking-2025-05-14 alla tua richiesta API per abilitare il pensiero intercalato.Ecco alcune considerazioni importanti per il pensiero intercalato:
budget_tokens può superare il parametro max_tokens, poiché rappresenta il budget totale su tutti i blocchi di pensiero all'interno di un turno dell'assistente.interleaved-thinking-2025-05-14 nelle richieste a qualsiasi modello, senza effetto (tranne Opus 4.6, dove è deprecato e ignorato in sicurezza).interleaved-thinking-2025-05-14 a qualsiasi modello diverso da Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4, Sonnet 4.5 o Sonnet 4, la tua richiesta avrà esito negativo.La cache dei prompt con il pensiero ha diverse considerazioni importanti:
I compiti di pensiero esteso spesso richiedono più di 5 minuti per essere completati. Considera di utilizzare la durata della cache di 1 ora per mantenere i cache hit su sessioni di pensiero più lunghe e flussi di lavoro multi-step.
Rimozione del contesto dei blocchi di pensiero
Modelli di invalidazione della cache
Mentre i blocchi di pensiero vengono rimossi per la cache e i calcoli del contesto, devono essere preservati quando si continuano conversazioni con l'uso dello strumento, specialmente con il pensiero intercalato.
Quando si utilizza il pensiero esteso con l'uso di strumenti, i blocchi di pensiero presentano un comportamento specifico della cache che influisce sul conteggio dei token:
Come funziona:
Flusso di esempio dettagliato:
Richiesta 1:
User: "What's the weather in Paris?"Risposta 1:
[thinking_block_1] + [tool_use block 1]Richiesta 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]Risposta 2:
[thinking_block_2] + [text block 2]La richiesta 2 scrive una cache del contenuto della richiesta (non della risposta). La cache include il messaggio utente originale, il primo blocco di pensiero, il blocco di utilizzo dello strumento e il risultato dello strumento.
Richiesta 3:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [thinking_block_2] + [text block 2],
User: [Text response, cache=True]Per Claude Opus 4.5 e versioni successive (incluso Claude Opus 4.6), tutti i blocchi di pensiero precedenti vengono conservati per impostazione predefinita. Per i modelli più vecchi, poiché è stato incluso un blocco utente non relativo ai risultati dello strumento, tutti i blocchi di pensiero precedenti vengono ignorati. Questa richiesta verrà elaborata allo stesso modo di:
User: ["What's the weather in Paris?"],
Assistant: [tool_use block 1],
User: [tool_result_1, cache=True],
Assistant: [text block 2],
User: [Text response, cache=True]Punti chiave:
cache_control esplicitiNei modelli Claude più vecchi (precedenti a Claude Sonnet 3.7), se la somma dei token del prompt e di max_tokens superava la finestra di contesto del modello, il sistema regolava automaticamente max_tokens per adattarsi al limite di contesto. Ciò significava che potevi impostare un valore max_tokens grande e il sistema lo avrebbe silenziosamente ridotto secondo le necessità.
Con i modelli Claude 3.7 e 4, max_tokens (che include il tuo budget di pensiero quando il pensiero è abilitato) viene applicato come limite rigoroso. Il sistema ora restituirà un errore di convalida se i token del prompt + max_tokens superano la dimensione della finestra di contesto.
Puoi leggere la nostra guida sulle finestre di contesto per un'analisi più approfondita.
Quando si calcola l'utilizzo della finestra di contesto con il pensiero abilitato, ci sono alcune considerazioni di cui essere consapevoli:
max_tokens per quel turnoIl diagramma sottostante dimostra la gestione specializzata dei token quando il pensiero esteso è abilitato:
La finestra di contesto effettiva viene calcolata come:
context window =
(current input tokens - previous thinking tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)Consigliamo di utilizzare l'API di conteggio dei token per ottenere conteggi di token accurati per il tuo caso d'uso specifico, soprattutto quando si lavora con conversazioni multi-turno che includono il pensiero.
Quando si utilizza il pensiero esteso con l'uso di strumenti, i blocchi di pensiero devono essere esplicitamente preservati e restituiti con i risultati dello strumento.
Il calcolo della finestra di contesto effettiva per il pensiero esteso con l'uso di strumenti diventa:
context window =
(current input tokens + previous thinking tokens + tool use tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)Il diagramma sottostante illustra la gestione dei token per il pensiero esteso con l'uso di strumenti:
Data la finestra di contesto e il comportamento di max_tokens con il pensiero esteso nei modelli Claude 3.7 e 4, potrebbe essere necessario:
max_tokens man mano che la lunghezza del prompt cambiaQuesto cambiamento è stato apportato per fornire un comportamento più prevedibile e trasparente, soprattutto poiché i limiti massimi di token sono aumentati significativamente.
Full thinking content is encrypted and returned in the signature field. This field is used to verify that thinking blocks were generated by Claude when passed back to the API.
It is only strictly necessary to send back thinking blocks when using tools with extended thinking. Otherwise you can omit thinking blocks from previous turns, or let the API strip them for you if you pass them back.
If sending back thinking blocks, we recommend passing everything back as you received it for consistency and to avoid potential issues.
Here are some important considerations on thinking encryption:
signature_delta inside a content_block_delta event just before the content_block_stop event.signature values are significantly longer in Claude 4 models than in previous models.signature field is an opaque field and should not be interpreted or parsed - it exists solely for verification purposes.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.Occasionally Claude's internal reasoning will be flagged by our safety systems. When this occurs, we encrypt some or all of the thinking block and return it to you as a redacted_thinking block. redacted_thinking blocks are decrypted when passed back to the API, allowing Claude to continue its response without losing context.
When building customer-facing applications that use extended thinking:
Here's an example showing both normal and redacted thinking blocks:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "redacted_thinking",
"data": "EmwKAhgBEgy3va3pzix/LafPsn4aDFIT2Xlxh0L5L8rLVyIwxtE3rAFBa8cr3qpPkNRj2YfWXGmKDxH4mPnZ5sQ7vB9URj2pLmN3kF8/dW5hR7xJ0aP1oLs9yTcMnKVf2wRpEGjH9XZaBt4UvDcPrQ..."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Seeing redacted thinking blocks in your output is expected behavior. The model can still use this redacted reasoning to inform its responses while maintaining safety guardrails.
If you need to test redacted thinking handling in your application, you can use this special test string as your prompt: ANTHROPIC_MAGIC_STRING_TRIGGER_REDACTED_THINKING_46C9A13E193C177646C7398A98432ECCCE4C1253D5E2D82641AC0E52CC2876CB
When passing thinking and redacted_thinking blocks back to the API in a multi-turn conversation, you must include the complete unmodified block back to the API for the last assistant turn. This is critical for maintaining the model's reasoning flow. We suggest always passing back all thinking blocks to the API. For more details, see the Preserving thinking blocks section.
L'API Messages gestisce il pensiero diversamente tra i modelli Claude Sonnet 3.7 e Claude 4, principalmente nel comportamento di redazione e riassunto.
Vedi la tabella sottostante per un confronto condensato:
| Funzione | Claude Sonnet 3.7 | Claude 4 Models (pre-Opus 4.5) | Claude Opus 4.5 | Claude Sonnet 4.6 | Claude Opus 4.6 (adaptive thinking) |
|---|---|---|---|---|---|
| Output di pensiero | Restituisce l'output di pensiero completo | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto |
| Pensiero intercalato | Non supportato | Supportato con l'header beta interleaved-thinking-2025-05-14 | Supportato con l'header beta interleaved-thinking-2025-05-14 | Supportato con l'header beta interleaved-thinking-2025-05-14 o automatico con adaptive thinking | Automatico con adaptive thinking (header beta non supportato) |
| Preservazione del blocco di pensiero | Non preservato tra i turni | Non preservato tra i turni | Preservato per impostazione predefinita | Preservato per impostazione predefinita | Preservato per impostazione predefinita |
A partire da Claude Opus 4.5 (e continuando in Claude Opus 4.6), i blocchi di pensiero dai turni dell'assistente precedenti vengono preservati nel contesto del modello per impostazione predefinita. Questo differisce dai modelli precedenti, che rimuovono i blocchi di pensiero dai turni precedenti.
Vantaggi della preservazione del blocco di pensiero:
Considerazioni importanti:
Per i modelli precedenti (Claude Sonnet 4.5, Opus 4.1, ecc.), i blocchi di pensiero dai turni precedenti continuano a essere rimossi dal contesto. Il comportamento esistente descritto nella sezione Pensiero esteso con caching del prompt si applica a quei modelli.
For complete pricing information including base rates, cache writes, cache hits, and output tokens, see the pricing page.
The thinking process incurs charges for:
When extended thinking is enabled, a specialized system prompt is automatically included to support this feature.
When using summarized thinking:
The billed output token count will not match the visible token count in the response. You are billed for the full thinking process, not the summary you see.
max_tokens è maggiore di 21.333 per evitare timeout HTTP su richieste a lunga esecuzione. Questa è una convalida lato client, non una restrizione API. Se non hai bisogno di elaborare gli eventi in modo incrementale, utilizza .stream() con .get_final_message() (Python) o .finalMessage() (TypeScript) per ottenere l'oggetto Message completo senza gestire gli eventi individuali — vedi Streaming Messages per i dettagli. Quando esegui lo streaming, preparati a gestire sia i blocchi di contenuto di pensiero che di testo mentre arrivano.temperature o top_k così come con l'uso forzato dello strumento.top_p su valori tra 1 e 0,95.Esplora esempi pratici di pensiero nel nostro cookbook.
Scopri le best practice di ingegneria del prompt per il pensiero esteso.
Was this page helpful?