Este recurso é elegível para Zero Data Retention (ZDR). Quando sua organização possui um acordo de ZDR, os dados enviados por meio deste recurso não são armazenados após a resposta da API ser retornada.
O pensamento adaptativo é a forma recomendada de usar o pensamento estendido com Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 e Claude Sonnet 4.6. No Claude Fable 5 e no Claude Mythos 5, o pensamento está sempre ativado e não pode ser desativado; o pensamento adaptativo é o único modo de pensamento. No Claude Mythos Preview, o pensamento adaptativo é o modo padrão e é aplicado automaticamente sempre que thinking não está definido. Em vez de definir manualmente um orçamento de tokens de pensamento, o pensamento adaptativo permite que o Claude determine dinamicamente quando e quanto usar o pensamento estendido com base na complexidade de cada requisição. No Claude Opus 4.8 e no Claude Opus 4.7, o pensamento adaptativo é o único modo de pensamento suportado; o modo manual thinking: {type: "enabled", budget_tokens: N} não é mais aceito. No Claude Sonnet 5, o pensamento adaptativo está ativado por padrão; passe thinking: {type: "disabled"} para desativá-lo, e o modo manual {type: "enabled", budget_tokens: N} é rejeitado com um erro 400.
O pensamento adaptativo pode proporcionar melhor desempenho do que o pensamento estendido com um budget_tokens fixo para muitas cargas de trabalho, especialmente tarefas bimodais e fluxos de trabalho agênticos de longo horizonte. Nenhum cabeçalho beta é necessário.
Se sua carga de trabalho exige latência previsível ou controle preciso sobre os custos de pensamento, o pensamento estendido com budget_tokens ainda é funcional no Claude Opus 4.6 e no Claude Sonnet 4.6, mas está obsoleto e não é mais recomendado. Consulte o aviso abaixo.
O pensamento adaptativo é suportado nos seguintes modelos:
claude-fable-5) e Claude Mythos 5 (claude-mythos-5), o pensamento adaptativo está sempre ativado; thinking: {type: "disabled"} não é suportadothinking: {type: "disabled"} não é suportadothinking: {type: "adaptive"} na sua requisição; o modo manual thinking: {type: "enabled"} é rejeitado com um erro 400.thinking: {type: "adaptive"} na sua requisição; o modo manual thinking: {type: "enabled"} é rejeitado com um erro 400.claude-sonnet-5), o pensamento adaptativo está ativado por padrão; o modo manual {type: "enabled"} é rejeitado com um erro 400.thinking.type: "enabled" e budget_tokens estão obsoletos no Opus 4.6 e no Sonnet 4.6 e serão removidos em uma versão futura do modelo. Use thinking.type: "adaptive" com o parâmetro effort em vez disso. As configurações existentes de budget_tokens ainda são funcionais, mas não são mais recomendadas; planeje a migração.
Modelos mais antigos (Sonnet 4.5, Opus 4.5, etc.) não suportam pensamento adaptativo e exigem thinking.type: "enabled" com budget_tokens.
No modo adaptativo, o pensamento é opcional para o modelo. O Claude avalia a complexidade de cada requisição e determina se e quanto usar o pensamento estendido. No nível de esforço padrão (high), o Claude quase sempre pensa. Em níveis de esforço mais baixos, o Claude pode pular o pensamento para problemas mais simples.
O pensamento adaptativo também ativa automaticamente o pensamento intercalado. Isso significa que o Claude pode pensar entre chamadas de ferramentas, tornando-o especialmente eficaz para fluxos de trabalho agênticos.
Defina thinking.type como "adaptive" na sua requisição de API:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "Explain why the sum of two even numbers is always even.",
}
],
)
for block in response.content:
if block.type == "thinking":
print(f"\nThinking: {block.thinking}")
elif block.type == "text":
print(f"\nResponse: {block.text}")Você pode combinar o pensamento adaptativo com o parâmetro effort para orientar quanto pensamento o Claude realiza. O nível de esforço atua como orientação flexível para a alocação de pensamento do Claude:
| Nível de esforço | Comportamento de pensamento |
|---|---|
max | O Claude sempre pensa sem restrições na profundidade do pensamento. Disponível no Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5 e Claude Sonnet 4.6. |
xhigh | O Claude sempre pensa profundamente com exploração estendida. Disponível no Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8 e Claude Opus 4.7. |
high (padrão) | O Claude quase sempre pensa. Fornece raciocínio profundo em tarefas complexas. |
medium | O Claude usa pensamento moderado. Pode pular o pensamento para consultas muito simples. |
low | O Claude minimiza o pensamento. Pula o pensamento para tarefas simples onde a velocidade é mais importante. |
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
output_config={"effort": "medium"},
messages=[{"role": "user", "content": "What is the capital of France?"}],
)
print(response.content[0].text)O pensamento adaptativo funciona perfeitamente com streaming. Os blocos de pensamento são transmitidos via eventos thinking_delta, assim como no modo de pensamento manual:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive"},
messages=[
{
"role": "user",
"content": "What is the greatest common divisor of 1071 and 462?",
}
],
) as stream:
for event in stream:
if event.type == "content_block_start":
print(f"\nStarting {event.content_block.type} block...")
elif event.type == "content_block_delta":
if event.delta.type == "thinking_delta":
print(event.delta.thinking, end="", flush=True)
elif event.delta.type == "text_delta":
print(event.delta.text, end="", flush=True)| Modo | Configuração | Disponibilidade | Quando usar |
|---|---|---|---|
| Adaptativo | thinking: {type: "adaptive"} | Claude Fable 5 (sempre ativado), Claude Mythos 5 (sempre ativado), Claude Mythos Preview (padrão), Claude Opus 4.8 (único modo), Opus 4.7 (único modo), Opus 4.6, Sonnet 5, Sonnet 4.6 | O Claude determina quando e quanto usar o pensamento estendido. Use effort para orientar. |
| Manual | thinking: {type: "enabled", budget_tokens: N} | Todos os modelos, exceto Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8 e Claude Opus 4.7 (rejeitado com um erro 400). Obsoleto no Opus 4.6 e no Sonnet 4.6 (considere o modo adaptativo em vez disso). | Quando você precisa de controle preciso sobre o gasto de tokens de pensamento. |
| Desativado | Omita o parâmetro thinking ou passe {type: "disabled"} | Todos os modelos, exceto Claude Fable 5, Claude Mythos 5 e Claude Mythos Preview. No Claude Sonnet 5, passe {type: "disabled"} explicitamente (omitir thinking usa o adaptativo como padrão). | Quando você não precisa de pensamento estendido e quer a menor latência. |
O pensamento adaptativo está disponível no Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7, Opus 4.6, Sonnet 5 e Sonnet 4.6. No Claude Fable 5 e no Claude Mythos 5, o pensamento adaptativo está sempre ativado: ele se aplica sempre que thinking não está definido e não pode ser desativado. No Mythos Preview, o pensamento adaptativo é o padrão e se aplica automaticamente sempre que thinking não está definido. No Claude Opus 4.8, o pensamento adaptativo é o único modo suportado; o pensamento está desativado a menos que você defina explicitamente thinking: {type: "adaptive"}, e o modo manual type: "enabled" com budget_tokens é rejeitado com um erro 400. No Claude Opus 4.7, o pensamento adaptativo é o único modo suportado e type: "enabled" com budget_tokens é rejeitado. No Claude Sonnet 5, o pensamento adaptativo está ativado por padrão; o modo manual type: "enabled" é rejeitado com um erro 400, e {type: "disabled"} desativa o pensamento. Modelos mais antigos suportam apenas type: "enabled" com budget_tokens. No Opus 4.6 e no Sonnet 4.6, type: "enabled" com budget_tokens ainda é funcional, mas está obsoleto.
Disponibilidade de pensamento intercalado por modo:
interleaved-thinking-2025-05-14.Ao usar o pensamento adaptativo, os turnos anteriores do assistente não precisam começar com blocos de pensamento. Isso é mais flexível do que o modo manual, onde a API exige que turnos com pensamento ativado comecem com um bloco de pensamento.
Requisições consecutivas usando pensamento adaptive preservam os pontos de interrupção do cache de prompt. No entanto, alternar entre os modos de pensamento adaptive e enabled/disabled quebra os pontos de interrupção de cache para mensagens. Prompts do sistema e definições de ferramentas permanecem em cache independentemente de mudanças de modo.
O comportamento de acionamento do pensamento adaptativo pode ser influenciado por prompts. Se o Claude está pensando com mais ou menos frequência do que você gostaria, você pode adicionar orientação ao seu prompt do sistema:
Extended thinking adds latency and should only be used when it
will meaningfully improve answer quality, typically for problems
that require multi-step reasoning. When in doubt, respond directly.Para incentivar o pensamento, use uma frase como:
This task involves multi-step reasoning. Think carefully before responding.A eficácia do direcionamento pode ser sensível à formulação exata. Se uma formulação não produzir o comportamento desejado, experimente uma variante mais direta.
Você também pode direcionar o pensamento por mensagem a partir do turno do usuário. Adicionar "Please think hard before responding." a uma mensagem do usuário incentiva o Claude a pensar naquele turno; "Answer directly without deliberating." suprime o pensamento. Isso funciona independentemente do prompt do sistema e é útil quando apenas algumas requisições em uma conversa justificam raciocínio estendido.
Direcionar o Claude para pensar com menos frequência pode reduzir a qualidade em tarefas que se beneficiam de raciocínio. Meça o impacto em suas cargas de trabalho específicas antes de implantar ajustes baseados em prompt em produção. Considere testar primeiro com níveis de esforço mais baixos.
Use max_tokens como um limite rígido na saída total (pensamento + texto de resposta). O parâmetro effort fornece orientação flexível adicional sobre quanto pensamento o Claude aloca. Juntos, eles oferecem controle efetivo sobre o custo.
Nos níveis de esforço high e max, o Claude pode pensar mais extensivamente e pode ter maior probabilidade de esgotar o orçamento de max_tokens. Se você observar stop_reason: "max_tokens" nas respostas, considere aumentar max_tokens para dar mais espaço ao modelo, ou reduzir o nível de esforço.
Os conceitos a seguir se aplicam a todos os modelos que suportam pensamento estendido, independentemente de você usar o modo adaptativo ou manual.
Com o "extended thinking" (pensamento estendido) habilitado, a API de Messages para modelos Claude 4 retorna um resumo do processo completo de pensamento do Claude. O pensamento resumido fornece todos os benefícios de inteligência do pensamento estendido, ao mesmo tempo que previne uso indevido. Este é o comportamento padrão nos modelos Claude 4 quando o campo display na configuração de pensamento não está definido ou está definido como "summarized". No Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7 e Claude Mythos Preview, display tem como padrão "omitted", então você deve definir display: "summarized" explicitamente para receber o pensamento resumido.
Aqui estão algumas considerações importantes sobre o pensamento resumido:
Em casos raros em que você precise de acesso à saída completa de pensamento para modelos Claude 4, entre em contato com a equipe de vendas da Anthropic.
O campo display na configuração de pensamento controla como o conteúdo de pensamento é retornado nas respostas da API. Ele aceita dois valores:
"summarized": Os blocos de pensamento contêm texto de pensamento resumido. Consulte Pensamento resumido para mais detalhes. Este é o padrão no Claude Opus 4.6, Claude Sonnet 4.6 e modelos Claude 4 anteriores."omitted": Os blocos de pensamento são retornados com um campo thinking vazio. O campo signature ainda carrega o pensamento completo criptografado para continuidade em múltiplos turnos (consulte Criptografia de pensamento). Este é o padrão no Claude Fable 5, Claude Mythos 5, Claude Sonnet 5, Claude Opus 4.8, Claude Opus 4.7 e Claude Mythos Preview.Definir display: "omitted" é útil quando sua aplicação não exibe o conteúdo de pensamento aos usuários. O principal benefício é um tempo mais rápido até o primeiro token de texto ao usar streaming: o servidor pula completamente o streaming dos tokens de pensamento e entrega apenas a assinatura, de modo que a resposta de texto final começa a ser transmitida mais cedo.
Aqui estão algumas considerações importantes sobre o pensamento omitido:
signature para reconstruir o pensamento original na construção do prompt (consulte Preservando blocos de pensamento). Qualquer texto que você colocar no campo thinking de um bloco omitido enviado de volta é ignorado.display é inválido com thinking.type: "disabled" (não há nada para exibir).thinking.type: "adaptive" e o modelo pular o pensamento para uma solicitação simples, nenhum bloco de pensamento é produzido, independentemente de display.O campo signature é idêntico independentemente de display ser "summarized" ou "omitted". Alternar valores de display entre turnos em uma conversa é suportado.
A configuração display controla apenas a visibilidade. Em todas as configurações, o pensamento acontece e é cobrado da mesma forma.
O padrão para thinking.display depende do modelo:
"omitted". Os blocos de pensamento ainda aparecem no fluxo de resposta, mas seu campo thinking fica vazio a menos que você opte explicitamente por recebê-lo. Esta é uma mudança silenciosa em relação ao Claude Opus 4.6, onde o padrão era "summarized"."summarized". O resumo legível aparece sem necessidade de optar por recebê-lo.Para receber texto de pensamento resumido em modelos onde o padrão é "omitted", defina thinking.display como "summarized" explicitamente:
thinking = {
"type": "adaptive",
"display": "summarized",
}Para exemplos de código e comportamento de streaming com display: "omitted", consulte Controlando a exibição do pensamento na página de pensamento estendido. Os exemplos lá usam type: "enabled"; com pensamento adaptativo, use:
thinking = {"type": "adaptive", "display": "omitted"}O conteúdo completo do pensamento é criptografado e retornado no campo signature. Esse campo é usado para verificar se os blocos de pensamento foram gerados pelo Claude quando passados de volta para a API.
Só é estritamente necessário enviar de volta os blocos de pensamento ao usar ferramentas com pensamento estendido. Caso contrário, você pode omitir os blocos de pensamento de turnos anteriores. Se você os passar de volta, o fato de a API mantê-los ou removê-los depende do modelo: Opus 4.5+ e Sonnet 4.6+ os mantêm no contexto por padrão; modelos Opus/Sonnet anteriores e todos os modelos Haiku os removem. Consulte edição de contexto para configurar isso.
Se for enviar de volta os blocos de pensamento, passe tudo de volta exatamente como você recebeu, para manter a consistência e evitar possíveis problemas.
Aqui estão algumas considerações importantes sobre a criptografia do pensamento:
signature_delta dentro de um evento content_block_delta logo antes do evento content_block_stop.signature são significativamente mais longos nos modelos Claude 4 do que nos modelos anteriores.signature é um campo opaco e não deve ser interpretado ou analisado.signature são compatíveis entre plataformas (APIs do Claude, Amazon Bedrock e Google Cloud). Valores gerados em uma plataforma serão compatíveis com outra.No Claude Fable 5 e no Claude Mythos 5, a cadeia de pensamento bruta nunca é retornada. Os blocos de pensamento que você recebe são blocos thinking regulares, não redacted_thinking. A configuração thinking.display funciona da mesma forma que em outros modelos:
"summarized" retorna um resumo legível do raciocínio."omitted" (o padrão nesses modelos) ainda inclui blocos thinking nas respostas, mas seu campo thinking é uma string vazia.Para o formato de resposta dos blocos de pensamento, consulte a referência da API de Messages.
Ao continuar uma conversa no mesmo modelo, passe cada bloco de pensamento de volta para a API exatamente como recebido, incluindo blocos cujo campo thinking está vazio. Não os edite nem reconstrua. Ler o texto do resumo para exibição não é problema: a API rejeita blocos cujo conteúdo foi modificado, não blocos que você leu.
Quando você troca de modelo, por exemplo após um fallback de recusa do classificador, remova os blocos thinking e redacted_thinking dos turnos anteriores do assistente. Os blocos de pensamento estão vinculados ao modelo que os produziu. Outros modelos os ignoram silenciosamente em vez de rejeitar a requisição, mas blocos ignorados ainda adicionam tokens de entrada.
Duas exceções, abordadas em Crédito de fallback:
fallback de um fallback no meio da saída permanecem onde apareceram.Para obter visibilidade do raciocínio do modelo, leia os blocos thinking descritos nesta seção em vez de solicitar raciocínio no texto da resposta. No Claude Fable 5, uma requisição que tenta extrair o raciocínio interno do modelo como parte do texto da resposta pode ser recusada com stop_details.category: "reasoning_extraction". Consulte Categorias de recusa para a referência de campos e orientação de tratamento.
Para informações completas sobre preços, incluindo taxas base, gravações de cache, acertos de cache e tokens de saída, consulte a página de preços.
O processo de pensamento gera cobranças por:
Quando o pensamento estendido está habilitado, um prompt do sistema especializado é incluído automaticamente para dar suporte a esse recurso.
Ao usar pensamento resumido:
Ao usar display: "omitted":
thinking está vazio)A contagem de tokens de saída cobrados não corresponderá à contagem de tokens visíveis na resposta. Você é cobrado pelo processo completo de pensamento, não pelo conteúdo de pensamento visível na resposta.
Para ver quantos tokens de saída cobrados foram gastos no raciocínio interno, leia usage.output_tokens_details.thinking_tokens na resposta. Esse valor reflete o raciocínio bruto que o modelo gerou (não o texto resumido retornado no corpo) e é sempre menor ou igual a output_tokens. Subtraia-o de output_tokens para obter uma aproximação da parte da saída que não corresponde ao raciocínio.
{
"usage": {
"input_tokens": 25,
"output_tokens": 348,
"output_tokens_details": {
"thinking_tokens": 312
}
}
}output_tokens continua sendo o total inclusivo e autoritativo usado para cobrança. output_tokens_details é um detalhamento somente leitura para observabilidade.
A página de pensamento estendido aborda vários tópicos com mais detalhes e exemplos de código específicos por modo:
tool_choice quando o pensamento está ativo.adaptive e enabled/disabled quebra os pontos de interrupção de cache para mensagens (prompts do sistema e definições de ferramentas permanecem em cache).max_tokens e os limites da janela de contexto.Saiba mais sobre pensamento estendido, incluindo modo manual, uso de ferramentas e cache de prompt.
Controle o quão minuciosamente o Claude responde com o parâmetro effort.
Was this page helpful?