This feature is eligible for Zero Data Retention (ZDR). When your organization has a ZDR arrangement, data sent through this feature is not stored after the API response is returned.
Il ragionamento esteso offre a Claude capacità di ragionamento migliorate per compiti complessi, fornendo al contempo diversi livelli di trasparenza nel suo processo di pensiero passo dopo passo prima di fornire la risposta finale.
Per Claude Opus 4.7 e modelli successivi, utilizza il ragionamento adattivo (thinking: {type: "adaptive"}) con il parametro effort. Il ragionamento esteso manuale (thinking: {type: "enabled", budget_tokens: N}) non è più supportato su Claude Opus 4.7 o modelli successivi e restituisce un errore 400. Per Claude Opus 4.6 e Claude Sonnet 4.6, il ragionamento adattivo è consigliato; la configurazione manuale è ancora funzionale su questi modelli ma è deprecata e verrà rimossa in una futura versione del modello.
Il ragionamento esteso manuale (thinking: {type: "enabled", budget_tokens: N}) è supportato su tutti i modelli Claude attuali eccetto Claude Opus 4.7 e modelli successivi, dove non è più accettato e restituisce un errore 400. Alcuni modelli hanno comportamenti specifici della modalità:
claude-opus-4-7) e modelli successivi: il ragionamento esteso manuale non è più supportato. Utilizza invece il ragionamento adattivo (thinking: {type: "adaptive"}) con il parametro effort.thinking: {type: "enabled", budget_tokens: N} è anche accettato. thinking: {type: "disabled"} non è supportato e display è impostato per impostazione predefinita su "omitted" anziché restituire il contenuto del ragionamento. Passa display: "summarized" per ricevere i riassunti.claude-opus-4-6): ragionamento adattivo consigliato; la modalità manuale (type: "enabled") è deprecata ma ancora funzionale.claude-sonnet-4-6): ragionamento adattivo consigliato; la modalità manuale (type: "enabled") con modalità intercalata è deprecata ma ancora funzionale.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, vedi Differenze nel ragionamento tra le versioni dei modelli.
Quando il ragionamento esteso è attivato, Claude crea blocchi di contenuto thinking dove produce il suo ragionamento interno. Claude incorpora gli approfondimenti da questo ragionamento prima di formulare una risposta finale.
La risposta dell'API include 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 ragionamento esteso, vedi il Riferimento API Messages.
Ecco un esempio di utilizzo del ragionamento esteso nell'API Messages:
client = anthropic.Anthropic()
response = client.messages.create(
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?",
}
],
)
# The response contains summarized thinking blocks and text blocks
for block in response.content:
if block.type == "thinking":
print(f"\nThinking summary: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")Per attivare il ragionamento esteso, aggiungi un oggetto thinking, con il parametro type impostato su enabled e budget_tokens impostato su un budget di token specificato per il ragionamento esteso. Per Claude Opus 4.6 e Claude Sonnet 4.6, utilizza invece type: "adaptive". Vedi Ragionamento adattivo per i dettagli. Mentre type: "enabled" con budget_tokens è ancora funzionale su questi modelli, è deprecato e verrà rimosso in una futura versione.
Il parametro budget_tokens determina il numero massimo di token che Claude può utilizzare per il suo processo di ragionamento interno. Nei modelli Claude 4 e successivi, questo limite si applica ai token di ragionamento 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 negli intervalli superiori a 32k.
budget_tokens è deprecato su Claude Opus 4.6 e Claude Sonnet 4.6 e verrà rimosso in una futura versione del modello. Utilizza il ragionamento adattivo con il parametro effort per controllare la profondità del ragionamento.
Claude Mythos Preview, Claude Opus 4.7 e Claude Opus 4.6 supportano fino a 128k token di output. Claude Sonnet 4.6 e Claude Haiku 4.5 supportano fino a 64k. Vedi la panoramica dei modelli per i limiti dei modelli legacy. Sull'API Message Batches, l'intestazione beta output-300k-2026-03-24 aumenta il limite di output a 300k per Opus 4.7, Opus 4.6 e Sonnet 4.6.
budget_tokens deve essere impostato su un valore inferiore a max_tokens. Tuttavia, quando si utilizza il ragionamento intercalato con strumenti, è possibile superare questo limite poiché il limite di token diventa l'intera finestra di contesto.
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. This is the default behavior on Claude 4 models when the display field on the thinking configuration is unset or set to "summarized". On Claude Opus 4.7 and Claude Mythos Preview, display defaults to "omitted" instead, so you must set display: "summarized" explicitly to receive summarized thinking.
Here are some important considerations for summarized thinking:
In rare cases where you need access to full thinking output for Claude 4 models, contact Anthropic sales.
The display field on the thinking configuration controls how thinking content is returned in API responses. It accepts two values:
"summarized": Thinking blocks contain summarized thinking text. See Summarized thinking for details. This is the default on Claude Opus 4.6, Claude Sonnet 4.6, and earlier Claude 4 models."omitted": Thinking blocks are returned with an empty thinking field. The signature field still carries the encrypted full thinking for multi-turn continuity (see Thinking encryption). This is the default on Claude Opus 4.7 and Claude Mythos Preview.Setting display: "omitted" is useful when your application doesn't surface thinking content to users. The primary benefit is faster time-to-first-text-token when streaming: The server skips streaming thinking tokens entirely and delivers only the signature, so the final text response begins streaming sooner.
Here are some important considerations for omitted thinking:
signature to reconstruct the original thinking for prompt construction (see Preserving thinking blocks). Any text you place in the thinking field of a round-tripped omitted block is ignored.display is invalid with thinking.type: "disabled" (there is nothing to display).thinking.type: "adaptive" and the model skips thinking for a simple request, no thinking block is produced regardless of display.The signature field is identical whether display is "summarized" or "omitted". Switching display values between turns in a conversation is supported.
Su Claude Mythos Preview, display è impostato per impostazione predefinita su "omitted". Gli esempi in questa sezione passano display esplicitamente in modo che si applichino a tutti i modelli, ma su Mythos Preview puoi lasciarlo non impostato e ricevere lo stesso comportamento. Per ricevere il ragionamento riassunto su Mythos Preview, imposta esplicitamente display: "summarized".
Le pipeline automatizzate che non espongono mai il contenuto del ragionamento agli utenti finali possono saltare il sovraccarico di ricezione dei token di ragionamento sulla rete. Le applicazioni sensibili alla latenza ottengono la stessa qualità di ragionamento senza aspettare che il testo del ragionamento venga trasmesso prima che inizi la risposta finale.
Quando display: "omitted" è impostato, la risposta contiene blocchi thinking con un campo thinking vuoto:
{
"content": [
{
"type": "thinking",
"thinking": "",
"signature": "EosnCkYICxIMMb3LzNrMu..."
},
{
"type": "text",
"text": "The answer is 12,231."
}
]
}Quando si trasmette con display: "omitted", non vengono emessi eventi thinking_delta; vedi Ragionamento in streaming di seguito per la sequenza di eventi.
Puoi trasmettere risposte di pensiero esteso utilizzando server-sent events (SSE).
Quando lo streaming è abilitato per il pensiero esteso, ricevi il contenuto del pensiero tramite eventi thinking_delta.
Quando display: "omitted" è impostato, non vengono emessi eventi thinking_delta. Vedi Controlling thinking display.
Per ulteriore documentazione sullo streaming tramite l'API Messages, vedi Streaming Messages.
Ecco come gestire lo streaming con il pensiero:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=16000,
thinking={"type": "enabled", "budget_tokens": 10000},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
thinking_started = False
response_started = False
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
# Reset flags for each new block
thinking_started = False
response_started = False
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
if not thinking_started:
print("Thinking: ", end="", flush=True)
thinking_started = True
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
if not response_started:
print("Response: ", end="", flush=True)
response_started = True
print(event.delta.text, end="", flush=True)
elif event.type == "content_block_stop":
print("\nBlock complete.")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": "", "signature": ""}}
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 display: "omitted" è impostato, il blocco di pensiero si apre, arriva un singolo signature_delta, e il blocco si chiude senza alcun evento thinking_delta. Lo streaming del testo inizia immediatamente dopo:
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"thinking","thinking":"","signature":""}}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"signature_delta","signature":"EosnCkYICxIMMb3LzNrMu..."}}
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":""}}Quando utilizzi 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 è un comportamento previsto, specialmente per il contenuto di pensiero.
Il sistema di streaming ha bisogno di 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. Anthropic sta continuamente lavorando per migliorare questa esperienza, con aggiornamenti futuri focalizzati su rendere il contenuto di pensiero più fluido nello streaming.
Il pensiero esteso può essere utilizzato insieme all'uso di strumenti, permettendo a Claude di ragionare attraverso la selezione degli strumenti e l'elaborazione dei risultati.
Quando utilizzi 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": "..."} risulterà in un errore perché queste opzioni forzano l'uso dello strumento, che è incompatibile con il pensiero esteso.
Preservazione dei blocchi di pensiero: Durante l'uso di strumenti, devi passare i blocchi thinking indietro all'API per l'ultimo messaggio dell'assistente. Includi il blocco completo non modificato indietro all'API per mantenere la continuità del ragionamento.
Non puoi attivare/disattivare il thinking nel mezzo di un turno dell'assistente, incluso durante i loop di utilizzo degli strumenti. L'intero turno dell'assistente dovrebbe operare in una singola modalità di thinking:
Dal punto di vista del modello, i loop di utilizzo degli strumenti 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 agli 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 loop di utilizzo degli strumenti è concettualmente parte di una risposta dell'assistente continua.
Quando si verifica un conflitto di thinking a metà turno (come l'attivazione o la disattivazione del thinking durante un loop di utilizzo degli strumenti), l'API disabilita automaticamente il thinking per quella richiesta. Per preservare la qualità del modello e rimanere on-distribution, l'API può:
Ciò significa che il tentativo di attivare/disattivare il thinking a metà turno non causerà un errore, ma il thinking sarà silenziosamente disabilitato per quella richiesta. Per confermare se il thinking era attivo, controlla la presenza di blocchi thinking nella risposta.
Best practice: Pianifica la tua strategia di thinking all'inizio di ogni turno piuttosto che cercare di attivare/disattivare a metà turno.
Esempio: Attivazione/disattivazione del thinking 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 attivare/disattivare il thinking, assicuri che il thinking sia effettivamente abilitato per la nuova richiesta.
L'attivazione/disattivazione delle modalità di thinking invalida anche la prompt caching per la cronologia dei messaggi. Per ulteriori dettagli, vedi la sezione Extended thinking con prompt caching.
Durante l'utilizzo degli strumenti, devi passare i blocchi thinking all'API, e devi includere il blocco completo e 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, passa sempre tutti i blocchi di thinking all'API per qualsiasi conversazione multi-turno. L'API:
Quando attivi/disattivi le modalità di thinking durante una conversazione, ricorda che l'intero turno dell'assistente (inclusi i loop di utilizzo degli strumenti) deve operare in una singola modalità di thinking. Per ulteriori dettagli, vedi Attivazione/disattivazione delle modalità di thinking nelle conversazioni.
Quando Claude invoca gli strumenti, sta mettendo in pausa la costruzione di una risposta per attendere informazioni esterne. Quando i risultati degli strumenti vengono restituiti, Claude continua a costruire quella risposta esistente. Ciò rende necessaria la preservazione dei blocchi di thinking durante l'utilizzo degli strumenti, per un paio di motivi:
Continuità del ragionamento: I blocchi di thinking catturano il ragionamento passo dopo passo di Claude che ha portato alle richieste di strumenti. Quando pubblichi i risultati degli strumenti, includere il thinking originale assicura che Claude possa continuare il suo ragionamento da dove si era fermato.
Mantenimento del contesto: Mentre i risultati degli strumenti appaiono come messaggi utente nella struttura dell'API, fanno parte di un flusso di ragionamento continuo. Preservare i blocchi di thinking mantiene questo flusso concettuale attraverso più chiamate API. Per ulteriori informazioni sulla gestione del contesto, vedi la guida sulle finestre di contesto.
Importante: Quando fornisci 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.
Extended thinking con utilizzo degli strumenti nei modelli Claude 4 supporta il thinking interleaved, che consente a Claude di pensare tra le chiamate agli strumenti e di fare ragionamenti più sofisticati dopo aver ricevuto i risultati degli strumenti.
Con il thinking interleaved, Claude può:
Supporto del modello:
interleaved-thinking-2025-05-14 è deprecato su Opus 4.6 e viene ignorato in sicurezza se incluso.interleaved-thinking-2025-05-14 con extended thinking manuale (thinking: {type: "enabled"}) è ancora funzionale ma deprecato.interleaved-thinking-2025-05-14 alla tua richiesta API per abilitare il thinking interleaved.Ecco alcune considerazioni importanti per il thinking interleaved:
budget_tokens può superare il parametro max_tokens, poiché rappresenta il budget totale su tutti i blocchi di thinking all'interno di un turno dell'assistente.interleaved-thinking-2025-05-14 nelle richieste a qualsiasi modello, senza effetto (eccetto Opus 4.7 e Opus 4.6, dove è deprecato e ignorato in sicurezza).interleaved-thinking-2025-05-14 a qualsiasi modello diverso da Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4 (deprecato), Sonnet 4.5 o Sonnet 4 (deprecato), la tua richiesta avrà esito negativo.Prompt caching con thinking ha diverse considerazioni importanti:
I compiti di extended thinking spesso richiedono più di 5 minuti per essere completati. Considera di utilizzare la durata della cache di 1 ora per mantenere i cache hit durante sessioni di thinking più lunghe e flussi di lavoro multi-step.
Rimozione del contesto dei blocchi di thinking
Modelli di invalidazione della cache
Mentre i blocchi di thinking vengono rimossi per il caching e i calcoli del contesto, devono essere preservati quando si continuano conversazioni con tool use, specialmente con interleaved thinking.
Quando si utilizza il pensiero esteso con l'uso di strumenti, i blocchi di pensiero mostrano 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 uso 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 mantenuti 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 come:
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 di prompt e 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 di prompt + max_tokens superano la dimensione della finestra di contesto.
Puoi leggere la guida sulle finestre di contesto per un approfondimento più completo.
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)Utilizza l'API di conteggio dei token per ottenere conteggi dei token accurati per il tuo caso d'uso specifico, specialmente quando lavori con conversazioni multi-turno che includono il pensiero.
Quando si utilizza il pensiero esteso con l'uso degli strumenti, i blocchi di pensiero devono essere esplicitamente preservati e restituiti con i risultati degli strumenti.
Il calcolo della finestra di contesto effettiva per il pensiero esteso con l'uso degli 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 degli strumenti:
Dato il comportamento della finestra di contesto e max_tokens con il pensiero esteso nei modelli Claude 3.7 e 4, potrebbe essere necessario:
max_tokens al variare della lunghezza del promptQuesto cambiamento è stato apportato per fornire un comportamento più prevedibile e trasparente, specialmente 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. If you pass them back, whether the API keeps or strips them depends on the model: Opus 4.5+ and Sonnet 4.6+ keep them in context by default; earlier Opus/Sonnet models and all Haiku models strip them. See context editing to configure this.
If sending back thinking blocks, pass 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.signature values are compatible across platforms (Claude APIs, Amazon Bedrock, and Vertex AI). Values generated on one platform will be compatible with another.Oltre ai normali blocchi thinking, l'API può restituire blocchi redacted_thinking. Un blocco redacted_thinking contiene contenuto di pensiero crittografato in un campo data, senza alcun riassunto leggibile:
{
"type": "redacted_thinking",
"data": "..."
}Il campo data è opaco e crittografato. Come il campo signature sui blocchi di pensiero regolari, dovresti passare i blocchi redacted_thinking all'API invariati quando continui una conversazione multi-turno con strumenti.
Se il tuo codice filtra i blocchi di contenuto per tipo (ad esempio, block.type == "thinking") quando si eseguono round-trip delle risposte con l'uso degli strumenti, includi anche i blocchi redacted_thinking. Il filtraggio solo su block.type == "thinking" elimina silenziosamente i blocchi redacted_thinking e interrompe il protocollo multi-turno descritto sopra.
I blocchi redacted_thinking sono un tipo di blocco di contenuto distinto restituito dall'API quando porzioni di pensiero vengono redatte per motivi di sicurezza. Questo è separato dall'opzione display: "omitted", che restituisce blocchi thinking regolari con un campo thinking vuoto.
L'API Messages gestisce il pensiero diversamente tra i modelli Claude Sonnet 3.7 e Claude 4, principalmente nel comportamento di riassunto.
Vedi la tabella sottostante per un confronto condensato:
| Funzionalità | 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) | Claude Mythos Preview (adaptive thinking) |
|---|---|---|---|---|---|---|
| Thinking Output | Restituisce l'output di pensiero completo | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto | Restituisce il pensiero riassunto | Omesso per impostazione predefinita; impostare display: "summarized" per ricevere il pensiero riassunto. I token di pensiero grezzo non vengono mai restituiti. |
| Interleaved Thinking | 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) | Automatico con adaptive thinking (header beta non supportato). Il ragionamento inter-strumento si sposta nei blocchi di pensiero su questo modello. |
| Thinking Block Preservation | Non preservato tra i turni | Non preservato tra i turni | Preservato per impostazione predefinita | Preservato per impostazione predefinita | Preservato per impostazione predefinita | Preservato per impostazione predefinita. I blocchi vengono rimossi quando si continua la conversazione su un modello che non supporta il formato di pensiero Mythos. |
A partire da Claude Opus 4.5 (e continuando in Claude Opus 4.6), i blocchi di pensiero dai turni precedenti dell'assistente 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 dei blocchi 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 Extended thinking with prompt caching 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:
When using display: "omitted":
thinking field is empty)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 thinking content visible in the response.
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 i singoli eventi. Vedi Streaming Messages per i dettagli. Durante lo streaming, preparati a gestire sia i blocchi di pensiero che di testo mentre arrivano.display: "omitted" sulla configurazione del pensiero per ridurre il tempo al primo token di testo. Vedi Controlling thinking display.temperature o top_k così come con l'uso forzato degli strumenti.top_p su valori tra 1 e 0,95.Esplora esempi pratici di pensiero nel cookbook.
Impara le best practice di prompt engineering per il pensiero esteso.
Was this page helpful?