Raciocínio estendido oferece ao Claude capacidades aprimoradas de raciocínio para tarefas complexas, com diferentes níveis de transparência em seu processo de pensamento passo a passo antes de entregar sua resposta final.
Para Claude Opus 4.6, recomendamos usar raciocínio adaptativo (thinking: {type: "adaptive"}) com o parâmetro de esforço em vez do modo de raciocínio manual descrito nesta página. A configuração manual thinking: {type: "enabled", budget_tokens: N} está descontinuada no Opus 4.6 e será removida em uma versão futura do modelo.
Raciocínio estendido é suportado nos seguintes modelos:
claude-opus-4-6) — raciocínio adaptativo recomendado; modo manual (type: "enabled") está descontinuadoclaude-opus-4-5-20251101)claude-opus-4-1-20250805)claude-opus-4-20250514)claude-sonnet-4-5-20250929)claude-sonnet-4-20250514)claude-3-7-sonnet-20250219) (descontinuado)claude-haiku-4-5-20251001)O comportamento da API difere entre os modelos Claude Sonnet 3.7 e Claude 4, mas as formas da API permanecem exatamente as mesmas.
Para mais informações, veja Diferenças no raciocínio entre versões de modelos.
Quando o raciocínio estendido é ativado, Claude cria blocos de conteúdo thinking onde produz seu raciocínio interno. Claude incorpora insights deste raciocínio antes de elaborar uma resposta final.
A resposta da API incluirá blocos de conteúdo thinking, seguidos por blocos de conteúdo text.
Aqui está um exemplo do formato de resposta padrão:
{
"content": [
{
"type": "thinking",
"thinking": "Let me analyze this step by step...",
"signature": "WaUjzkypQ2mUEVM36O2TxuC06KN8xyfbJwyem2dw3URve/op91XWHOEBLLqIOMfFG/UvLEczmEsUjavL...."
},
{
"type": "text",
"text": "Based on my analysis..."
}
]
}Para mais informações sobre o formato de resposta do raciocínio estendido, veja a Referência da API de Mensagens.
Aqui está um exemplo de uso de raciocínio estendido na API de Mensagens:
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-5",
"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?"
}
]
}'Para ativar o raciocínio estendido, adicione um objeto thinking, com o parâmetro type definido como enabled e o budget_tokens para um orçamento de tokens especificado para raciocínio estendido. Para Claude Opus 4.6, recomendamos usar type: "adaptive" em vez disso — veja Raciocínio adaptativo para detalhes. Enquanto type: "enabled" com budget_tokens ainda é suportado no Opus 4.6, está descontinuado e será removido em uma versão futura.
O parâmetro budget_tokens determina o número máximo de tokens que Claude pode usar para seu processo de raciocínio interno. Nos modelos Claude 4 e posteriores, este limite se aplica aos tokens de raciocínio completo, e não à saída resumida. Orçamentos maiores podem melhorar a qualidade da resposta ao permitir análise mais completa para problemas complexos, embora Claude possa não usar todo o orçamento alocado, especialmente em intervalos acima de 32k.
budget_tokens está descontinuado no Claude Opus 4.6 e será removido em uma versão futura do modelo. Recomendamos usar raciocínio adaptativo com o parâmetro de esforço para controlar a profundidade do raciocínio em vez disso.
Claude Opus 4.6 suporta até 128K tokens de saída. Modelos anteriores suportam até 64K tokens de saída.
budget_tokens deve ser definido para um valor menor que max_tokens. No entanto, ao usar raciocínio intercalado com ferramentas, você pode exceder este limite, pois o limite de tokens se torna sua janela de contexto inteira (200k tokens).
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.
Você pode fazer streaming de respostas de raciocínio estendido usando server-sent events (SSE).
Quando o streaming é ativado para raciocínio estendido, você recebe conteúdo de raciocínio via eventos thinking_delta.
Para mais documentação sobre streaming via a API de Mensagens, veja Streaming de Mensagens.
Aqui está como lidar com streaming com raciocínio:
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-5",
"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?"
}
]
}'Exemplo de saída de streaming:
event: message_start
data: {"type": "message_start", "message": {"id": "msg_01...", "type": "message", "role": "assistant", "content": [], "model": "claude-sonnet-4-5", "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"}Ao usar streaming com raciocínio ativado, você pode notar que o texto às vezes chega em pedaços maiores alternando com entrega token por token. Este é um comportamento esperado, especialmente para conteúdo de raciocínio.
O sistema de streaming precisa processar conteúdo em lotes para desempenho ideal, o que pode resultar neste padrão de entrega "em pedaços", com possíveis atrasos entre eventos de streaming. Estamos continuamente trabalhando para melhorar esta experiência, com atualizações futuras focadas em fazer o conteúdo de raciocínio fazer streaming de forma mais suave.
Raciocínio estendido pode ser usado junto com uso de ferramentas, permitindo que Claude raciocine através da seleção de ferramentas e processamento de resultados.
Ao usar raciocínio estendido com uso de ferramentas, esteja ciente das seguintes limitações:
Limitação de escolha de ferramenta: Uso de ferramentas com raciocínio suporta apenas tool_choice: {"type": "auto"} (o padrão) ou tool_choice: {"type": "none"}. Usar tool_choice: {"type": "any"} ou tool_choice: {"type": "tool", "name": "..."} resultará em um erro porque estas opções forçam o uso de ferramentas, que é incompatível com raciocínio estendido.
Preservando blocos de raciocínio: Durante o uso de ferramentas, você deve passar blocos thinking de volta para a API para a última mensagem do assistente. Inclua o bloco completo não modificado de volta para a API para manter a continuidade do raciocínio.
Você não pode alternar raciocínio no meio de um turno do assistente, incluindo durante loops de uso de ferramentas. O turno inteiro do assistente deve operar em um único modo de raciocínio:
Do ponto de vista do modelo, loops de uso de ferramentas fazem parte do turno do assistente. Um turno do assistente não se completa até que Claude termine sua resposta completa, que pode incluir múltiplas chamadas de ferramentas e resultados.
Por exemplo, esta sequência é toda parte de um único turno do 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"]Embora haja múltiplas mensagens da API, o loop de uso de ferramentas é conceitualmente parte de uma resposta contínua do assistente.
Quando um conflito de raciocínio mid-turn ocorre (como alternar raciocínio ligado ou desligado durante um loop de uso de ferramentas), a API desativa automaticamente o raciocínio para aquele pedido. Para preservar a qualidade do modelo e permanecer on-distribution, a API pode:
Isto significa que tentar alternar raciocínio mid-turn não causará um erro, mas raciocínio será silenciosamente desativado para aquele pedido. Para confirmar se raciocínio estava ativo, verifique a presença de blocos thinking na resposta.
Melhor prática: Planeje sua estratégia de raciocínio no início de cada turno em vez de tentar alternar mid-turn.
Exemplo: Alternando raciocínio após completar um 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)Ao completar o turno do assistente antes de alternar raciocínio, você garante que raciocínio está realmente ativado para o novo pedido.
Alternar modos de raciocínio também invalida o cache de prompt para histórico de mensagens. Para mais detalhes, veja a seção Raciocínio estendido com cache de prompt.
Durante o uso de ferramentas, você deve passar blocos thinking de volta para a API, e você deve incluir o bloco completo não modificado de volta para a API. Isto é crítico para manter o fluxo de raciocínio do modelo e a integridade da conversa.
Enquanto você pode omitir blocos thinking de turnos anteriores de assistant, sugerimos sempre passar de volta todos os blocos de raciocínio para a API para qualquer conversa multi-turno. A API irá:
Ao alternar modos de raciocínio durante uma conversa, lembre-se que o turno inteiro do assistente (incluindo loops de uso de ferramentas) deve operar em um único modo de raciocínio. Para mais detalhes, veja Alternando modos de raciocínio em conversas.
Quando Claude invoca ferramentas, está pausando sua construção de uma resposta para aguardar informações externas. Quando resultados de ferramentas são retornados, Claude continuará construindo aquela resposta existente. Isto necessita preservar blocos de raciocínio durante o uso de ferramentas, por alguns motivos:
Continuidade de raciocínio: Os blocos de raciocínio capturam o raciocínio passo a passo de Claude que levou a pedidos de ferramentas. Quando você publica resultados de ferramentas, incluir o raciocínio original garante que Claude possa continuar seu raciocínio de onde parou.
Manutenção de contexto: Enquanto resultados de ferramentas aparecem como mensagens de usuário na estrutura da API, eles fazem parte de um fluxo de raciocínio contínuo. Preservar blocos de raciocínio mantém este fluxo conceitual através de múltiplas chamadas de API. Para mais informações sobre gerenciamento de contexto, veja nosso guia sobre janelas de contexto.
Importante: Ao fornecer blocos thinking, a sequência inteira de blocos thinking consecutivos deve corresponder aos outputs gerados pelo modelo durante o pedido original; você não pode reorganizar ou modificar a sequência destes blocos.
Raciocínio estendido com uso de ferramentas em modelos Claude 4 suporta raciocínio intercalado, que permite que Claude pense entre chamadas de ferramentas e faça raciocínio mais sofisticado após receber resultados de ferramentas.
Com raciocínio intercalado, Claude pode:
Para Claude Opus 4.6, raciocínio intercalado é automaticamente ativado ao usar raciocínio adaptativo — nenhum cabeçalho beta é necessário.
Para modelos Claude 4, adicione o cabeçalho beta interleaved-thinking-2025-05-14 ao seu pedido de API para ativar raciocínio intercalado.
Aqui estão algumas considerações importantes para raciocínio intercalado:
budget_tokens pode exceder o parâmetro max_tokens, pois representa o orçamento total através de todos os blocos de raciocínio dentro de um turno do assistente.interleaved-thinking-2025-05-14.interleaved-thinking-2025-05-14 em pedidos para qualquer modelo, sem efeito.interleaved-thinking-2025-05-14 para qualquer modelo além de Claude Opus 4.6, Claude Opus 4.5, Claude Opus 4.1, Opus 4, ou Sonnet 4, seu pedido falhará.Cache de prompt com raciocínio tem várias considerações importantes:
Tarefas de raciocínio estendido frequentemente levam mais de 5 minutos para completar. Considere usar a duração de cache de 1 hora para manter acertos de cache através de sessões de raciocínio mais longas e fluxos de trabalho multi-etapa.
Remoção de contexto de bloco de raciocínio
Padrões de invalidação de cache
Enquanto blocos de raciocínio são removidos para caching e cálculos de contexto, eles devem ser preservados ao continuar conversas com uso de ferramentas, especialmente com raciocínio intercalado.
Ao usar pensamento estendido com uso de ferramentas, os blocos de pensamento exibem um comportamento de cache específico que afeta a contagem de tokens:
Como funciona:
Fluxo de exemplo detalhado:
Solicitação 1:
User: "What's the weather in Paris?"Resposta 1:
[thinking_block_1] + [tool_use block 1]Solicitação 2:
User: ["What's the weather in Paris?"],
Assistant: [thinking_block_1] + [tool_use block 1],
User: [tool_result_1, cache=True]Resposta 2:
[thinking_block_2] + [text block 2]A Solicitação 2 escreve um cache do conteúdo da solicitação (não da resposta). O cache inclui a mensagem do usuário original, o primeiro bloco de pensamento, bloco de uso de ferramenta e o resultado da ferramenta.
Solicitação 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]Para Claude Opus 4.5 e posterior (incluindo Claude Opus 4.6), todos os blocos de pensamento anteriores são mantidos por padrão. Para modelos mais antigos, porque um bloco de usuário que não é resultado de ferramenta foi incluído, todos os blocos de pensamento anteriores são ignorados. Esta solicitação será processada da mesma forma que:
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]Pontos-chave:
cache_control explícitosEm modelos Claude mais antigos (anteriores ao Claude Sonnet 3.7), se a soma de tokens de prompt e max_tokens excedesse a janela de contexto do modelo, o sistema ajustaria automaticamente max_tokens para caber dentro do limite de contexto. Isso significava que você poderia definir um grande valor de max_tokens e o sistema o reduziria silenciosamente conforme necessário.
Com os modelos Claude 3.7 e 4, max_tokens (que inclui seu orçamento de pensamento quando o pensamento está habilitado) é aplicado como um limite rigoroso. O sistema agora retornará um erro de validação se tokens de prompt + max_tokens exceder o tamanho da janela de contexto.
Você pode ler nosso guia sobre janelas de contexto para uma análise mais aprofundada.
Ao calcular o uso da janela de contexto com pensamento habilitado, há algumas considerações a serem observadas:
max_tokens para esse turnoO diagrama abaixo demonstra o gerenciamento especializado de tokens quando o pensamento estendido está habilitado:
A janela de contexto efetiva é calculada como:
context window =
(current input tokens - previous thinking tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)Recomendamos usar a API de contagem de tokens para obter contagens de tokens precisas para seu caso de uso específico, especialmente ao trabalhar com conversas multi-turno que incluem pensamento.
Ao usar pensamento estendido com uso de ferramentas, blocos de pensamento devem ser explicitamente preservados e retornados com os resultados das ferramentas.
O cálculo efetivo da janela de contexto para pensamento estendido com uso de ferramentas se torna:
context window =
(current input tokens + previous thinking tokens + tool use tokens) +
(thinking tokens + encrypted thinking tokens + text output tokens)O diagrama abaixo ilustra o gerenciamento de tokens para pensamento estendido com uso de ferramentas:
Dado o comportamento da janela de contexto e max_tokens com pensamento estendido nos modelos Claude 3.7 e 4, você pode precisar:
max_tokens conforme o comprimento do seu prompt mudaEsta mudança foi feita para fornecer um comportamento mais previsível e transparente, especialmente conforme os limites de tokens máximos aumentaram 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.
A API de Mensagens lida com pensamento de forma diferente entre os modelos Claude Sonnet 3.7 e Claude 4, principalmente no comportamento de redação e resumo.
Veja a tabela abaixo para uma comparação condensada:
| Recurso | Claude Sonnet 3.7 | Modelos Claude 4 (pré-Opus 4.5) | Claude Opus 4.5 | Claude Opus 4.6 (pensamento adaptativo) |
|---|---|---|---|---|
| Saída de Pensamento | Retorna saída de pensamento completa | Retorna pensamento resumido | Retorna pensamento resumido | Retorna pensamento resumido |
| Pensamento Intercalado | Não suportado | Suportado com cabeçalho beta interleaved-thinking-2025-05-14 | Suportado com cabeçalho beta interleaved-thinking-2025-05-14 | Automático com pensamento adaptativo (nenhum cabeçalho beta necessário) |
| Preservação de Bloco de Pensamento | Não preservado entre turnos | Não preservado entre turnos | Preservado por padrão | Preservado por padrão |
A partir do Claude Opus 4.5 (e continuando no Claude Opus 4.6), blocos de pensamento de turnos anteriores do assistente são preservados no contexto do modelo por padrão. Isso difere dos modelos anteriores, que removem blocos de pensamento de turnos anteriores.
Benefícios da preservação de blocos de pensamento:
Considerações importantes:
Para modelos anteriores (Claude Sonnet 4.5, Opus 4.1, etc.), blocos de pensamento de turnos anteriores continuam sendo removidos do contexto. O comportamento existente descrito na seção Pensamento estendido com cache de prompt se aplica a esses modelos.
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 é maior que 21.333 para evitar timeouts HTTP em solicitações de longa duração. Esta é uma validação do lado do cliente, não uma restrição de API. Se você não precisar processar eventos incrementalmente, use .stream() com .get_final_message() (Python) ou .finalMessage() (TypeScript) para obter o objeto Message completo sem lidar com eventos individuais — veja Streaming Messages para detalhes. Ao fazer streaming, esteja preparado para lidar com blocos de conteúdo de pensamento e texto conforme chegam.temperature ou top_k, bem como uso forçado de ferramentas.top_p para valores entre 1 e 0,95.Explore exemplos práticos de pensamento em nosso cookbook.
Aprenda as melhores práticas de engenharia de prompt para pensamento estendido.
Was this page helpful?