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 "adaptive thinking" (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, e o único modo de pensamento no Claude Fable 5 e no Claude Mythos 5. Em vez de definir manualmente um orçamento de tokens de pensamento, o pensamento adaptativo permite que Claude determine dinamicamente quando e quanto usar o pensamento estendido com base na complexidade de cada solicitação. Os padrões e restrições por modelo estão listados em Modelos suportados.
O pensamento adaptativo pode proporcionar melhor desempenho do que o pensamento estendido com um budget_tokens fixo para muitas cargas de trabalho, especialmente cargas de trabalho que misturam solicitações triviais e complexas, 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á descontinuado e não é mais recomendado. Veja o aviso de descontinuação em Modelos suportados.
O pensamento adaptativo é suportado nos seguintes modelos:
thinking: {type: "disabled"} não é suportado. Nenhum dos dois modelos está disponível sob retenção zero de dados.thinking: {type: "disabled"} não é suportado, e o {type: "enabled", budget_tokens: N} manual ainda é aceito.thinking: {type: "adaptive"} na sua solicitação; o thinking: {type: "enabled"} manual é rejeitado com um erro 400.thinking: {type: "adaptive"} na sua solicitação; o thinking: {type: "enabled"} manual é rejeitado com um erro 400.thinking: {type: "adaptive"}; o {type: "enabled", budget_tokens: N} manual ainda é aceito, mas está descontinuado.thinking: {type: "disabled"} para desativá-lo. O {type: "enabled"} manual é rejeitado com um erro 400.thinking: {type: "adaptive"}; o {type: "enabled", budget_tokens: N} manual ainda é aceito, mas está descontinuado.thinking.type: "enabled" e budget_tokens estão descontinuados no Opus 4.6 e no Sonnet 4.6 e serão removidos em um lançamento futuro de 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, como Claude Sonnet 4.5 e Claude Opus 4.5, não suportam pensamento adaptativo e exigem thinking.type: "enabled" com budget_tokens.
No modo adaptativo, o pensamento é opcional para o modelo. Claude avalia a complexidade de cada solicitação e determina se e quanto usar o pensamento estendido. No nível padrão de effort (high), Claude quase sempre pensa. Em níveis de esforço mais baixos, Claude pode pular o pensamento para problemas mais simples.
O pensamento adaptativo também habilita automaticamente o pensamento intercalado. Isso significa que Claude pode pensar entre chamadas de ferramentas, tornando-o especialmente eficaz para fluxos de trabalho agênticos.
Defina thinking.type como "adaptive" na sua solicitação de API. Os exemplos também definem thinking.display como "summarized" para tornar o texto de pensamento visível: nos modelos mais recentes, display tem como padrão "omitted", que retorna blocos de pensamento com um campo thinking vazio. Consulte Controlando a exibição do pensamento para detalhes.
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
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}")Os tokens de pensamento contam para max_tokens, então defina-o alto o suficiente para deixar espaço tanto para o pensamento quanto para o texto da resposta. Consulte Controle de custos.
Você pode combinar o pensamento adaptativo com o parâmetro effort para orientar quanto pensamento Claude realiza. O nível de esforço atua como uma orientação flexível para a alocação de pensamento de Claude:
| Nível de effort | Comportamento de pensamento |
|---|---|
max | Claude sempre pensa sem restrições na profundidade do pensamento. Disponível em todos os modelos que suportam pensamento adaptativo. |
xhigh | Claude sempre pensa profundamente com exploração estendida. Disponível no Claude Fable 5, Claude Mythos 5, Claude Opus 4.8, Claude Opus 4.7 e Claude Sonnet 5. |
high (padrão) | Claude quase sempre pensa. Fornece raciocínio profundo em tarefas complexas. |
medium | Claude usa pensamento moderado. Pode pular o pensamento para consultas simples. |
low | 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?"}],
)
for block in response.content:
if block.type == "text":
print(block.text)O pensamento adaptativo funciona com streaming. Os blocos de pensamento são transmitidos por streaming através de eventos thinking_delta, da mesma forma que no modo de pensamento manual. Como nos exemplos anteriores, thinking.display: "summarized" torna o texto de pensamento transmitido visível:
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=16000,
thinking={"type": "adaptive", "display": "summarized"},
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), Claude Opus 4.7 (único modo), Claude Opus 4.6, Claude Sonnet 5 (padrão) e Claude Sonnet 4.6 | 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). Descontinuado 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 | thinking: {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 tem como padrão o adaptativo). | Quando você não precisa de pensamento estendido e quer a menor latência. |
Os padrões e restrições por modelo estão listados em Modelos suportados. Modelos mais antigos do que os listados aceitam apenas type: "enabled" com budget_tokens, quando suportam pensamento estendido.
Disponibilidade do 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 os turnos com pensamento habilitado comecem com um bloco de pensamento.
Separadamente, Claude Fable 5, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.8, Claude Opus 4.7 e Claude Sonnet 5 rejeitam valores não padrão de temperature, top_p e top_k com um erro 400. Isso se aplica a todas as solicitações nesses modelos, independentemente de o pensamento estar ativo.
Solicitações consecutivas usando o 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 das mudanças de modo.
O comportamento de acionamento do pensamento adaptativo pode ser ajustado via prompt. Se Claude estiver 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 à redação exata. Se uma formulação não produzir o comportamento desejado, tente uma variante mais direta.
Você também pode direcionar o pensamento por mensagem a partir do turno do usuário. Anexar "Please think hard before responding." a uma mensagem do usuário incentiva Claude a pensar naquele turno; "Answer directly without deliberating." o suprime. Isso funciona independentemente do prompt do sistema e é útil quando apenas algumas solicitações em uma conversa justificam raciocínio estendido.
Direcionar 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 o ajuste baseado em prompt em produção. Considere testar primeiro com níveis de effort mais baixos.
Use max_tokens como um limite rígido na saída total (pensamento + texto da resposta). O parâmetro effort fornece orientação flexível adicional sobre quanto pensamento Claude aloca. Juntos, eles oferecem controle efetivo sobre o custo.
Nos níveis de effort high e max, Claude pode pensar de forma mais extensa 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 effort.
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 stream de resposta, mas seu campo thinking fica vazio a menos que você opte explicitamente. 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 opt-in.Para receber o 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 os reconstrua. Ler o texto do resumo para exibição é aceitável: 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 solicitaçã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 sobre o raciocínio do modelo, leia os blocos thinking descritos nesta seção em vez de solicitar o raciocínio no texto da resposta. No Claude Fable 5, uma solicitaçã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 do campo e orientações 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, com exemplos de código específicos por modo:
tool_choice quando o pensamento está ativo.max_tokens e os limites da janela de contexto.Controle quantos tokens Claude usa ao responder com o parâmetro effort, equilibrando entre a abrangência da resposta e a eficiência de tokens.
Dê a Claude raciocínio aprimorado para tarefas complexas e controle como o conteúdo de pensamento é retornado.
Diferenças comportamentais e padrões de prompting para Claude Sonnet 5, abrangendo effort, padrões de pensamento adaptativo, uso de ferramentas e migração a partir do Claude Sonnet 4.6.
Was this page helpful?