Claude Platform Docs
MessagesPensamento

Solução de problemas do pensamento

Diagnostique e corrija as falhas de pensamento mais comuns: erros 400 de configuração, blocos de pensamento vazios ou ausentes, paradas por max_tokens e falhas de cache.

Esta página aborda as falhas mais comuns ao configurar o pensamento ou ao fazer o round-trip de blocos de pensamento (enviar de volta, em requisições posteriores, os blocos de pensamento retornados). A primeira seção mapeia cada modelo para suas configurações de pensamento suportadas e as que ele rejeita; as seções seguintes partem, cada uma, de um sintoma que você observa, para que você possa associar uma mensagem de erro ou resposta inesperada diretamente à sua causa e correção. Para saber como o pensamento funciona, consulte a visão geral de Pensamento.

Suporte ao pensamento, padrões e configurações rejeitadas por modelo

A maioria dos erros de configuração de pensamento é uma incompatibilidade entre o valor de thinking.type na requisição e o que o modelo suporta. Na maioria dos modelos, o pensamento é executado como thinking: {type: "adaptive"}, e muitos o têm ativado por padrão. Alguns modelos anteriores usam, em vez disso, o pensamento estendido ("extended thinking"), um modo manual legado configurado como thinking: {type: "enabled", budget_tokens: N}.

O "extended thinking" (pensamento estendido) (thinking.type: "enabled" com budget_tokens) está descontinuado nos modelos Claude 4.6 (requisições que o utilizam ainda são bem-sucedidas). Os modelos Claude 4.7 e posteriores não o suportam e rejeitam requisições que o utilizam, retornando um erro 400. Nos modelos Claude 4.5 e anteriores que suportam pensamento, o pensamento estendido é o único modo de pensamento disponível. O Claude Mythos Preview suporta ambos os modos. Onde ambos os modos estiverem disponíveis, use o pensamento adaptativo em vez disso.

A tabela lista o que cada modelo suporta, qual é o seu padrão e quais valores de thinking.type ele rejeita com um erro 400; qualquer valor não listado como rejeitado é aceito.

ModeloTipos de pensamentoPadrãoRejeitado com 400
Claude Fable 5.1Somente adaptativoSempre ativado"enabled", "disabled"
Claude Mythos 5.1Somente adaptativoSempre ativado"enabled", "disabled"
Claude Fable 5Somente adaptativoSempre ativado"enabled", "disabled"
Claude Mythos 5Somente adaptativoSempre ativado"enabled", "disabled"
Claude Mythos PreviewAdaptativo, estendidoSempre ativado"disabled"
Claude Opus 5Somente adaptativoAtivado"enabled", "disabled"2
Claude Opus 4.8Somente adaptativoDesativado"enabled"
Claude Opus 4.7Somente adaptativoDesativado"enabled"
Claude Sonnet 5Somente adaptativoAtivado"enabled"
Claude Opus 4.6Adaptativo, estendido (descontinuado)1DesativadoNenhum
Claude Sonnet 4.6Adaptativo, estendido (descontinuado)1DesativadoNenhum
Claude Opus 4.5Somente estendidoDesativado"adaptive"
Claude Haiku 4.5Somente estendidoDesativado"adaptive"
Claude Sonnet 4.5Somente estendidoDesativado"adaptive"

1 enabled e budget_tokens ainda funcionam nesses modelos, mas estão descontinuados; use o pensamento adaptativo em vez disso.
2 O Claude Opus 5 aceita "disabled" com effort high ou inferior; combiná-lo com effort xhigh ou max retorna um erro 400. Essa restrição se aplica ao Claude Opus 5 e modelos posteriores e é aplicada em cada requisição.

Modelos marcados como Sempre ativado não podem desativar o pensamento. Modelos marcados como Ativado usam o pensamento por padrão, mas aceitam thinking: {type: "disabled"}.

Modelos Claude 4 anteriores (Claude Opus 4.1, Claude Sonnet 4 e Claude Opus 4) suportam apenas o pensamento estendido. Consulte Descontinuações de modelos para saber sobre sua disponibilidade. Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 e Claude Mythos 5 não estão disponíveis sob retenção zero de dados, a menos que expressamente autorizado pela Anthropic.

Um erro 400 diz que "thinking.type.enabled" não é suportado

A requisição falha com um erro 400 cuja mensagem diz:

"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

Isso acontece porque o modelo que você solicitou removeu o pensamento estendido (consulte a tabela de configuração por modelo).

Mude a requisição para thinking: {type: "adaptive"} e controle a profundidade do pensamento com effort em vez de budget_tokens. Migrando para o pensamento adaptativo explica a conversão passo a passo.

Um erro 400 diz que "thinking.type.disabled" não é suportado

A requisição falha com um erro 400 cuja mensagem diz:

"thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking.

Isso acontece em modelos nos quais o pensamento está sempre ativado: Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5 e Claude Mythos Preview rejeitam "disabled". Todos eles, exceto o Claude Mythos Preview, também rejeitam o "thinking.type.enabled" sugerido no texto do erro.

Omita o parâmetro thinking; esses modelos pensam sem nenhuma configuração. Se o seu objetivo era manter o texto do pensamento fora das respostas, use display: "omitted" em vez de desativar o pensamento; consulte Controlando a exibição do pensamento.

Um erro 400 em "disabled" também pode ocorrer no Claude Opus 5, que aceita thinking: {type: "disabled"} apenas com effort high ou inferior: combiná-lo com effort xhigh ou max é rejeitado. Reduza o nível de effort ou deixe o pensamento ativado.

Um erro 400 diz que o pensamento adaptativo não é suportado

A requisição falha com um erro 400 cuja mensagem diz:

adaptive thinking is not supported on this model

Isso acontece porque o modelo suporta apenas o pensamento estendido (consulte a tabela de configuração por modelo).

Use thinking: {type: "enabled", budget_tokens: N} em vez disso; consulte Pensamento estendido para a configuração.

Um erro 400 diz que os blocos de pensamento não podem ser modificados

Uma requisição que retorna resultados de ferramentas falha com um invalid_request_error 400 cuja mensagem contém:

`thinking` or `redacted_thinking` blocks in the latest assistant message cannot be modified

Em conversas de múltiplos turnos e de uso de ferramentas ("tool use"), você envia de volta à API as mensagens anteriores do assistente, incluindo seus blocos thinking e redacted_thinking, e a API verifica se elas chegam sem modificações. Esse erro acontece quando a mensagem do assistente que você envia de volta difere da que a API retornou, na maioria das vezes porque seu código filtra blocos de conteúdo por tipo e descarta blocos redacted_thinking, ou reconstrói a mensagem do assistente em vez de repeti-la.

Repita o turno do assistente literalmente, incluindo os blocos de pensamento. Consulte Preservando blocos de pensamento para as regras, e o round-trip detalhado em Pensamento em fluxos de trabalho com ferramentas e múltiplos turnos para o código correto em cada SDK.

Um erro 400 diz que a assinatura de um bloco de pensamento é inválida

Uma requisição ao Claude Fable 5.1 que reenvia blocos de pensamento anteriores falha com um invalid_request_error 400 cuja mensagem diz:

messages.{i}.content.{j}: Invalid `signature` in `thinking` block. The block is bound to a different conversation. Remove the block, or set `thinking.block_binding.prefix_mismatch_behavior` to "drop_block".

Se a requisição não enviou o cabeçalho beta thinking-binding-controls-2026-08-01, a mensagem acrescenta That setting requires the `thinking-binding-controls-2026-08-01` value in the `anthropic-beta` header. A mensagem também pode terminar com uma frase indicando a primeira mensagem que mudou. Se a mensagem não tiver nenhuma cláusula de motivo, o conteúdo do bloco foi modificado. Consulte Um erro 400 diz que os blocos de pensamento não podem ser modificados.

No Claude Fable 5.1, a API aceita um bloco de pensamento reenviado somente enquanto o prompt system, as tools e as mensagens que o precederam permanecerem inalterados. O erro significa que algo anterior na conversa mudou entre as requisições: um turno editado, reordenado ou removido, um lembrete por turno que foi injetado e depois removido, um prompt system ou array tools reconstruído, ou uma compactação no lado do cliente que manteve os turnos recentes e seus pensamentos literalmente. A verificação é aplicada a novas contas criadas em ou após 31 de agosto de 2026 e a qualquer requisição que defina thinking.block_binding.prefix_mismatch_behavior. A compactação e a edição de contexto no lado do servidor nunca a acionam.

Para corrigir, mantenha o histórico somente com acréscimos: passe os turnos anteriores de volta exatamente como foram enviados e recebidos, adicione instruções com uma mensagem do sistema no meio da conversa em vez de editar system ou tools, e deixe que a edição de contexto ou a compactação no lado do servidor façam qualquer corte. Repetir o mesmo corpo de requisição não elimina o erro. Para continuar essa requisição sem o raciocínio invalidado, envie o cabeçalho beta thinking-binding-controls-2026-08-01 e defina thinking.block_binding.prefix_mismatch_behavior como "drop_block". Alternativamente, remova todos os blocos thinking e redacted_thinking do histórico (no mínimo o bloco indicado e todos os posteriores a ele, naquele turno e em todos os turnos seguintes), mantenha os demais blocos de cada turno no lugar e tente novamente uma vez.

Um bloco de um modelo que o modelo de destino não consegue ler nunca produz esse erro: a API o descarta e, sob o cabeçalho beta, o reporta em input_transformations.

O campo thinking está vazio na resposta

A resposta contém blocos thinking, mas o campo thinking deles é uma string vazia e apenas o campo signature está preenchido.

Isso acontece porque display tem como padrão "omitted" nos modelos mais recentes, o que retorna blocos de pensamento sem o texto.

Defina display: "summarized" na sua configuração de pensamento para receber o texto de pensamento resumido. Consulte Controlando a exibição do pensamento para os padrões por modelo. Se você quiser apenas as linhas curtas de status que alguns modelos escrevem entre chamadas de ferramentas, e não o raciocínio, defina display: "updates" (beta) em vez disso. Consulte Atualizações de progresso entre chamadas de ferramentas.

Nenhum bloco de pensamento aparece em alguns turnos

Algumas respostas não contêm nenhum bloco thinking, mesmo com o pensamento configurado.

Isso é normal no modo adaptativo: Claude pula o pensamento em requisições que julga simples o suficiente para responder diretamente.

Se você quiser pensamento com mais frequência ou mais profundidade, aumente effort ou direcione com prompts; consulte Direcionando com que frequência Claude pensa.

Chamadas de ferramentas ou tags XML aparecem na saída de texto

Ocasionalmente, uma resposta escreve uma chamada de ferramenta em seu texto em vez de emitir um bloco tool_use, ou inclui <thinking> ou outras tags XML internas em seu texto visível. Uma chamada de ferramenta vazada nunca é executada e, em loops agênticos, o texto vazado permanece no histórico da conversa, de modo que os turnos posteriores também são afetados.

Isso acontece no Claude Opus 5 quando o pensamento está desativado, mais comumente em cargas de trabalho com uso intenso de ferramentas, como busca. Regras no prompt do sistema instruindo o modelo a não pensar ou não raciocinar aumentam o vazamento de tags.

Reative o pensamento (o padrão) e use níveis de effort mais baixos para controlar o custo de tokens. Se a sua integração precisar manter o pensamento desativado, aplique as mitigações de prompt em Executando com o pensamento desativado.

A resposta para com stop_reason: "max_tokens"

A resposta termina com stop_reason: "max_tokens", frequentemente com um bloco de texto truncado ou ausente.

Isso acontece porque os tokens de pensamento contam para max_tokens, então uma passagem longa de pensamento pode consumir o orçamento antes que a resposta de texto seja concluída.

Aumente max_tokens para deixar espaço tanto para o pensamento quanto para o texto, ou reduza effort para que Claude gaste menos com pensamento; consulte Controle de custos e Pensamento e a janela de contexto.

Os acertos de cache caem após alterar as configurações de pensamento

cache_read_input_tokens cai para zero em requisições que anteriormente acertavam o cache.

Isso acontece porque a configuração de pensamento e o nível de effort (ou seu padrão) fazem parte do prefixo de prompt em cache, então alterar qualquer um deles inicia um novo prefixo: trocar de modo de pensamento, alterar o valor de effort e alterar budget_tokens invalidam os pontos de interrupção de cache de mensagens, e também podem invalidar os pontos de interrupção de ferramentas e do prompt do sistema, dependendo de onde o modelo renderiza a configuração.

Mantenha a configuração de pensamento e o nível de effort constantes entre requisições que compartilham uma conversa; definir um parâmetro explicitamente com seu valor padrão é equivalente a omiti-lo e não invalida. Consulte Pensamento e cache de prompt.

Definir effort não altera o pensamento

Você altera effort, mas a frequência ou a profundidade do pensamento permanece a mesma.

Isso acontece porque effort é a principal alavanca de pensamento apenas no modo adaptativo. Em modelos que suportam apenas pensamento estendido, a profundidade do pensamento é definida por budget_tokens.

Ajuste budget_tokens nesses modelos ou verifique em qual modo seu modelo é executado; consulte Pensamento e effort. No Claude Opus 4.5, o único modelo somente de pensamento estendido que suporta effort, o effort se combina com o orçamento; consulte Regras e ajuste de orçamento.

Próximos passos

A visão geral: o que é o pensamento, como configurá-lo e como ele interage com ferramentas, cache e streaming.

A referência completa de erros, incluindo os erros 400 de configuração de pensamento com suas mensagens exatas do servidor.

Converta requisições com budget_tokens para o pensamento adaptativo com effort.

Was this page helpful?