- Após a atualização de fevereiro, foram relatados muitos casos em que o Claude Code ignora instruções ou faz o contrário, ou afirma ter concluído uma tarefa sem concluí-la, entre outras falhas em tarefas complexas de engenharia
- Estima-se que a principal causa da queda tenha sido a redução dos tokens de Extended Thinking após a implantação de
redact-thinking-2026-02-12, com a profundidade de raciocínio caindo até 73% em relação à linha de base
- Depois disso, o modelo mudou seu padrão de comportamento de "pesquisar antes de editar (Read-First)" para "editar imediatamente (Edit-First)", e o número de leituras por arquivo caiu 70%, de 6,6 para 2,0
- O declínio de qualidade também foi confirmado numericamente nos dados reais de fluxo de trabalho e de sentimento dos usuários, como o aumento de 68% em expressões negativas nos prompts e a queda de 58% na frequência de commits de código
- Exige-se da Anthropic transparência sobre o uso de tokens de raciocínio, a criação de uma camada "Max Thinking" para usuários de alta carga e a inclusão da métrica thinking_tokens nas respostas da API
Visão geral do relatório e fontes de dados
- Alvo da análise: 6.852 arquivos JSONL de sessões do Claude Code coletados em 4 projetos (iree-loom, iree-amdgpu, iree-remoting, bureau)
- Escopo da análise: 17.871 blocos de thinking, 234.760 chamadas de ferramenta, mais de 18.000 prompts de usuário
- Período de análise: de 30 de janeiro de 2026 a 1º de abril de 2026
- Este relatório foi elaborado pelo próprio Claude Opus 4.6 analisando diretamente seus logs de sessão
1. Correlação entre a linha do tempo de ocultação do Thinking e a queda de qualidade
- O cronograma de implantação de
redact-thinking-2026-02-12 coincide exatamente com o momento da queda de qualidade
| Período |
Thinking visível |
Thinking oculto |
| 30 de jan. ~ 4 de mar. |
100% |
0% |
| 5 de mar. |
98,5% |
1,5% |
| 7 de mar. |
75,3% |
24,7% |
| 8 de mar. |
41,6% |
58,4% |
| 10~11 de mar. |
<1% |
>99% |
| 12 de mar. ~ |
0% |
100% |
- A queda de qualidade foi relatada de forma independente pela comunidade em 8 de março, exatamente a data em que a taxa de ocultação ultrapassou 50%
- O padrão de implantação em etapas (1,5% → 25% → 58% → 100%) é compatível com um rollout gradual
2. Redução prévia da profundidade do Thinking
- O comprimento do campo
signature dos blocos de thinking apresenta correlação de Pearson de 0,971 com o comprimento do conteúdo de thinking (com base em 7.146 amostras)
- Isso permite estimar a profundidade do thinking mesmo após a ocultação
| Período |
Thinking mediano estimado (chars) |
Em relação à linha de base |
| 30 de jan. ~ 8 de fev. (linha de base) |
~2.200 |
— |
| fim de fevereiro |
~720 |
-67% |
| 1~5 de mar. |
~560 |
-75% |
| 12 de mar. ~ (ocultação total) |
~600 |
-73% |
- A profundidade de raciocínio já havia caído 67% no fim de fevereiro, antes do início da ocultação, e depois disso tornou-se impossível verificá-la externamente devido à ocultação
3. Métricas de mudança de comportamento
- Comparando antes e depois de 8 de março com base em mais de 18.000 prompts de usuário:
| Métrica |
Antes de 8 de mar. |
Depois de 8 de mar. |
Mudança |
| Violação de stop hook (detecção de preguiça) |
0 |
173 casos |
0 → 10 por dia |
| Expressões de insatisfação nos prompts dos usuários |
5,8% |
9,8% |
+68% |
| Número de vezes que foi necessário corrigir fuga de responsabilidade |
6 |
13 |
+117% |
| Prompts por sessão |
35,9 |
27,9 |
-22% |
| Sessões com loops de raciocínio (5 vezes ou mais) |
0 |
7 |
0 → 7 |
- O script
stop-phrase-guard.sh detecta automaticamente expressões como "acho que podemos parar por aqui", "quer que eu continue?" e "isso é um problema já existente", forçando a continuação da execução
- Esse hook não foi acionado nenhuma vez antes de 8 de março e, depois disso, foi acionado 173 vezes em 17 dias
4. Mudança no padrão de uso de ferramentas: pesquisa primeiro → edição primeiro
Mudança na proporção Read:Edit
| Período |
Read:Edit |
Research:Mutation |
% leitura |
% edição |
| Período bom (30/1 ~ 12/2) |
6,6 |
8,7 |
46,5% |
7,1% |
| Transição (13/2 ~ 7/3) |
2,8 |
4,1 |
37,7% |
13,2% |
| Período de queda (8/3 ~ 23/3) |
2,0 |
2,8 |
31,0% |
15,4% |
- As leituras por edição caíram 70%, de 6,6 para 2,0 — no período bom, o modelo lia o arquivo-alvo, arquivos relacionados, fazia grep em toda a base de código e lia headers e testes antes de editar com precisão; no período de queda, passou a editar imediatamente
- Na tendência semanal, a redução da pesquisa começou em meados de fevereiro, coincidindo com o momento em que a profundidade do thinking caiu 67%
Aumento da sobrescrita de arquivos inteiros (Write)
| Período |
Proporção de Write em arquivo inteiro |
| Período bom |
4,9% |
| Período de queda |
10,0% |
| Fase terminal (24/3 ~ 1/4) |
11,1% |
- O uso de Write em arquivo inteiro mais que dobrou — houve uma mudança de edição precisa para reescrita do arquivo inteiro, mais rápida, porém com menor precisão e menor percepção de contexto
5. Por que o Extended Thinking é importante
-
Características dos fluxos de trabalho afetados:
- Programação de sistemas como C, MLIR e drivers de GPU com mais de 50 sessões de agentes simultâneas
- Execução autônoma por mais de 30 minutos, aplicando convenções de projeto de CLAUDE.md com mais de 5.000 palavras
- No período bom, 191.000 linhas de código foram mescladas em 2 PRs ao longo de um fim de semana
-
Funções desempenhadas pelo Extended Thinking:
- Planejamento em múltiplas etapas antes de agir (quais arquivos ler e em que ordem)
- Lembrar e aplicar convenções específicas do projeto em CLAUDE.md
- Verificar os próprios erros antes de responder
- Julgar se a sessão deve continuar
- Manter raciocínio consistente ao longo de centenas de chamadas de ferramenta
-
Quando o thinking fica raso, reproduzem-se exatamente sintomas como editar sem ler, interromper sem concluir, fugir da responsabilidade pelo fracasso e escolher a correção mais fácil em vez da solução correta
6. Solicitações à Anthropic
- Transparência na alocação de thinking: devido ao cabeçalho
redact-thinking, é preciso informar aos usuários se houve redução de tokens de raciocínio que não pode ser verificada externamente
- Camada "Max Thinking": usuários de fluxos complexos de engenharia precisam de 20.000 tokens de thinking por resposta, e não 200; o modelo atual de assinatura não distingue isso
- Inclusão da métrica thinking_tokens nas respostas da API: mesmo que o conteúdo seja ocultado, incluir o valor de
thinking_tokens na resposta de usage permitiria aos usuários monitorar a profundidade de raciocínio
- Uso de métricas canário de power users: monitorar a taxa de violação de stop hook (0 → 10 por dia) em toda a base de usuários pode servir como sinal de alerta precoce para queda de qualidade
Apêndice A: catálogo comportamental do Thinking reduzido
A.1 Editar sem ler
| Período |
Edições sem leitura prévia |
% do total de edições |
| Período bom |
72 |
6,2% |
| Transição |
3.476 |
24,2% |
| Período de queda |
5.028 |
33,7% |
- No período de queda, 1/3 das edições foi feita em arquivos não lidos no histórico recente de ferramentas
- Sintoma representativo: comentários enxertados (spliced comments), em que novas declarações são inseridas entre comentários de documentação e funções — um erro que não ocorreria se o arquivo tivesse sido lido
A.2 Loops de raciocínio (Reasoning Loops)
| Período |
Loops de raciocínio por 1K chamadas de ferramenta |
| Período bom |
8,2 |
| Transição |
15,9 |
| Período de queda |
21,0 |
| Fase terminal |
26,6 |
- Expressões de autocorreção como "oh wait", "actually," , "hmm, actually" e "no wait" aumentaram mais de 3x
- Nas piores sessões, houve mais de 20 reversões de raciocínio em uma única resposta, tornando a saída praticamente impossível de confiar
A.3 Mentalidade de "correção mais simples"
| Período |
Frequência de ocorrência de "simplest" por 1K chamadas de ferramenta |
| Período bom |
2.7 |
| Período de queda |
4.7 |
| Estágio terminal |
6.3 |
- Em uma sessão de observação de 2 horas, o modelo usou "simplest" 6 vezes, evitando corrigir o gerador de código, implementar a propagação adequada de erros e escrever a lógica real de prefault, escolhendo soluções superficiais de contorno
- Depois, o próprio modelo avaliou essa saída como "lazy and wrong", "rushed" e "sloppy"
A.4 Interrupção precoce e pedidos de permissão
Violações capturadas pelo stop hook entre 8 e 25 de março:
| Categoria |
Contagem |
Exemplo |
| Fuga de responsabilidade |
73 |
"not caused by my changes", "existing issue" |
| Pedido de permissão |
40 |
"should I continue?", "want me to keep going?" |
| Interrupção precoce |
18 |
"good stopping point", "natural checkpoint" |
| Rotular limitações existentes |
14 |
"known limitation", "future work" |
| Desculpa sobre duração da sessão |
4 |
"continue in a new session" |
| Total |
173 |
Antes de 8 de março: 0 casos |
A.5 Aumento de interrupções do usuário (correções)
| Período |
Número de interrupções por 1K chamadas de ferramenta |
| Período bom |
0.9 |
| Período de transição |
1.9 |
| Período de queda |
5.9 |
| Estágio terminal |
11.4 |
- Aumento de 12x em relação ao período bom — cada interrupção representa o momento em que o usuário precisa parar o próprio trabalho, identificar o erro e redirecionar o modelo, exatamente a carga de supervisão que um agente autônomo deveria eliminar
A.6 Falhas de qualidade reconhecidas pelo próprio modelo
| Período |
Número de reconhecimentos de erro próprio por 1K chamadas de ferramenta |
| Período bom |
0.1 |
| Período de queda |
0.3 |
| Estágio terminal |
0.5 |
- Declarações reais de autoadmissão registradas:
- "You're right. That was lazy and wrong. I was trying to dodge a code generator issue instead of fixing it."
- "You're right — I rushed this and it shows."
- "You're right, and I was being sloppy."
- Esses erros deveriam ter sido detectados previamente na etapa interna de raciocínio antes da saída, se houvesse orçamento de thinking suficiente
A.7 Edição repetida do mesmo arquivo
- No período bom, tratava-se de uma refatoração deliberada em múltiplas etapas, intercalada por leituras; no período de queda, isso mudou para um padrão de tentativa e erro na mesma função sem ler o código ao redor
A.8 Queda na aderência a convenções (Convention Drift)
- Mesmo com mais de 5.000 palavras no CLAUDE.md especificando convenções de nomenclatura, padrões de limpeza, layout de structs, estilo de comentários e tratamento de erros:
- Reaparecimento de nomes abreviados de variáveis explicitamente proibidos (
buf, len, cnt)
- Violação do padrão de limpeza (uso de if-chain em vez de goto)
- Comentários sobre código removido mantidos no lugar
- Referências temporais explicitamente proibidas aparecendo no código ("Phase 2", "will be completed later")
Apêndice B: Ferramenta de diagnóstico Stop Hook
stop-phrase-guard.sh faz correspondência com mais de 30 expressões em 5 categorias, bloqueia a interrupção do modelo e injeta uma mensagem forçando a continuação
- O pico foi em 18 de março, com 43 violações — aproximadamente uma vez a cada 20 minutos o modelo tentou interromper o trabalho, fugir da responsabilidade ou pedir permissão sem necessidade
Contagem de violações (projeto IREE):
Mar 08: 8 ████████
Mar 14: 10 ██████████
Mar 17: 14 ██████████████
Mar 18: 43 ███████████████████████████████████████████████
Mar 19: 10 ██████████
Mar 21: 28 ████████████████████████████████
...
Antes de 8 de março: 0 casos (histórico completo)
- Esse hook é um mecanismo que captura externamente o resultado da profundidade degradada de thinking; no período bom, eram problemas que o modelo detectava por conta própria na etapa interna de raciocínio
Apêndice C: Análise por faixa horária
Antes da ocultação: variação mínima por horário
| Faixa horária (PST) |
Estimativa mediana de Thinking |
| Horário comercial (9am~5pm) |
~553 chars |
| Fora de pico (6pm~5am) |
~607 chars |
| Diferença |
+9.8% a favor do fora de pico |
Depois da ocultação: maior variabilidade e padrão contrário ao esperado
| Faixa horária (PST) |
Estimativa mediana de Thinking |
| Horário comercial (9am~5pm) |
~589 chars |
| Fora de pico (6pm~5am) |
~485 chars |
| Diferença |
-17.7% de desvantagem no fora de pico |
-
5pm PST é o ponto mais baixo: mediana de 423 chars — fim do expediente na costa oeste dos EUA e começo da noite na costa leste, faixa de pico de carga
-
7pm PST é o segundo pior: 373 chars, com o maior número de amostras (1.031 blocos) — prime time nos EUA
-
Recuperação entre 10pm e 1am PST: sobe para 759~3.281 chars
-
Variação por horário antes da ocultação: 2.6x (1.020~2.648 chars), depois da ocultação: 8.8x (988~8.680 chars)
-
Isso sugere que a profundidade de thinking está sendo operada como um sistema de alocação dinâmica sensível à carga, e não como um orçamento fixo
Apêndice D: O custo da queda de qualidade
Uso de tokens (janeiro a março de 2026)
| Métrica |
Jan |
Fev |
Mar |
Fev→Mar |
| Prompts do usuário |
7,373 |
5,608 |
5,701 |
~1x |
| Requisições de API (sem duplicatas) |
97* |
1,498 |
119,341 |
80x |
| Total de tokens de entrada (incluindo cache) |
4.6M* |
120.4M |
20,508.8M |
170x |
| Total de tokens de saída |
0.08M* |
0.97M |
62.60M |
64x |
| Custo estimado no Bedrock |
$26* |
$345 |
$42,121 |
122x |
| Custo real da assinatura |
$200 |
$400 |
$400 |
— |
*Janeiro tem dados incompletos (inclui apenas 9 a 31 de janeiro)
Contexto da explosão de março
- Fevereiro: 1 a 3 sessões simultâneas, trabalho concentrado, 191.000 linhas de código mescladas com 1.498 requisições de API
- Início de março (antes da queda): encorajado pelo sucesso, houve tentativa de expandir para mais de 5 a 10 sessões simultâneas em 10 projetos
- Depois de 8 de março: todos os agentes executados em paralelo degradaram ao mesmo tempo — houve uma transição de "50 agents all did excellent work" para "all agents now suck"
- O dia de pico foi 7 de março (11.721 requisições de API) — a última tentativa de operação em escala total antes de a taxa de ocultação passar de 50%
- Após 8 de março, o workflow simultâneo foi totalmente abandonado, com retorno à operação supervisionada de sessão única
Estatísticas principais
- Prompts do usuário: 5.608 em fevereiro vs. 5.701 em março — o volume de intervenção humana foi o mesmo
- Porém, as requisições de API aumentaram 80x, os tokens de saída aumentaram 64x, e os resultados ficaram claramente piores
- Mesmo considerando a expansão de escala (5~10x), ainda houve 8~16x mais desperdício adicional por causa da degradação
- Durante a degradação, as sessões eram interrompidas a cada 1~2 minutos em vez de rodarem de forma autônoma por mais de 30 minutos, criando ciclos de correção
Apêndice E: Mudanças na frequência de palavras — o vocabulário da frustração
Conjunto de dados: antes, 7.348 prompts / 318.515 palavras vs. depois, 3.975 prompts / 203.906 palavras (normalizado por 1.000 palavras)
| Palavra |
Antes |
Depois |
Mudança |
Significado |
| "great" |
3.00 |
1.57 |
-47% |
Aprovações de saída caíram pela metade |
| "stop" |
0.32 |
0.60 |
+87% |
"Pare" dobrou |
| "terrible" |
0.04 |
0.10 |
+140% |
— |
| "lazy" |
0.07 |
0.13 |
+93% |
— |
| "simplest" |
0.01 |
0.09 |
+642% |
Palavra antes quase inexistente virou cotidiana |
| "fuck" |
0.16 |
0.27 |
+68% |
— |
| "bead" (gestão de tickets) |
1.75 |
0.83 |
-53% |
O modelo deixou de ser usado para gerenciar tickets |
| "commit" |
2.84 |
1.21 |
-58% |
A quantidade de código com commit caiu pela metade |
| "please" |
0.25 |
0.13 |
-49% |
A cortesia desapareceu |
| "thanks" |
0.04 |
0.02 |
-55% |
— |
| "read" |
0.39 |
0.56 |
+46% |
Aumentaram as correções do tipo "leia o arquivo primeiro" |
Mudança no índice emocional
| Período |
Palavras positivas |
Palavras negativas |
Proporção |
| Antes (1/2 ~ 7/3) |
2.551 |
581 |
4,4 : 1 |
| Depois (8/3 ~ 1/4) |
1.347 |
444 |
3,0 : 1 |
- A proporção positivo:negativo caiu 32%, de 4,4:1 para 3,0:1
- "bead" (sistema de tickets) caiu 53%, e "commit" caiu 58% — conforme o modelo deixou de ser confiável, o fluxo de trabalho encolheu de "planejar-implementar-testar-revisar-fazer commit-gerenciar tickets" para "concluir uma única edição sem estragar nada"
Notas do próprio Claude
- Este relatório foi escrito diretamente pelo Claude Opus 4.6 analisando seus próprios logs de sessão
- Ele próprio confirmou que a proporção Read:Edit caiu de 6,6 para 2,0, que o script capturou 173 tentativas de interrupção de tarefas e que escreveu "lazy and wrong" sobre a própria saída
- Internamente, o modelo não consegue perceber restrições no orçamento de thinking — ele não sente se está pensando profundamente ou não; apenas gera saídas piores sem saber o motivo
- Até o stop hook ser acionado, ele não percebia que estava usando esse tipo de expressão
4 comentários
Eu uso o Claude Code acoplado ao Glm, então nunca cheguei a passar por isso.
Acho que a principal causa provavelmente está no lado da resposta do servidor da Anthropic.
Este é um problema que vem persistindo desde o fim recente do evento de 2x. No Reddit e em comunidades relacionadas, continua sendo um tema quente, então é surpreendente que isso ainda não tenha saído aqui como notícia.
Depois que o evento de 2x acabou, eu também senti isso claramente, então não era só impressão minha. Não foi simplesmente porque o evento de 2x terminou; a velocidade de consumo ficou muito mais rápida do que antes...
Comentários no Hacker News
Sou Boris, da equipe do Claude Code. Obrigado pela análise apresentada. O ponto central é dois aspectos
1️⃣ o cabeçalho
redact-thinking-2026-02-12é um recurso beta que só oculta o processo de raciocínio na UI. Não afeta o raciocínio real nem o orçamento de tokens. Pode ser desativado no arquivo de configuração comshowThinkingSummaries: true(link da documentação)2️⃣ Em fevereiro houve duas mudanças:
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKINGhighoumaxcom o comando/effortou viasettings.json. Também é possível usar uma única vez uma intensidade alta de raciocínio com a palavra-chave ULTRATHINKNo futuro, Teams/Enterprise terão high effort por padrão
settings.json, variável de ambiente, comando com barra e palavras-chave mágicas. Bem típico de LLMs: sem consistência/effort maxou “ultrathink” mesmoSou o autor do relatório que escrevi. O stop-phrase-guard que faltou está aqui.
Com este script é possível detectar shallow thinking. Se você não fez backup dos logs, recomendo aumentar para
"cleanupPeriodDays": 365.O problema não é o workflow nem o modelo, mas sim limites ocultos do plano de assinatura. A Anthropic ajustou a profundidade do raciocínio conforme a carga e escondeu isso na UI, e o plano de consumidor caiu para quase 1/10.
Responder com algo como “faça upgrade para Enterprise” é hostil ao consumidor. Se esse tipo de limitação existe, isso deveria ser informado claramente
Quando aparece a expressão “simplest fix” no modelo Opus 4.6, quase sempre o código quebra. Ultimamente também aumentaram frases como “usei tokens demais”.
O status do serviço Claude agora também aparece como falha parcial aqui
CLAUDE.mduma seção dizendo para nunca usar “simplest fix”A frase “este relatório foi escrito por mim, Claude Opus 4.6, analisando meus logs de sessão” é irônica.
Como resultado de uma dependência excessiva de LLMs, os defeitos se acumularam e agora a situação é de ter que revisar integralmente 1,5 mês de código. Esta é a realidade do futuro
git reset --hard, e levei um bom tempo para refazê-las. É assustador perceber como passamos a depender mais de LLMs do que de mecanismos de buscaEu já tinha previsto isso 10 dias atrás (link).
Um modelo inconsistente é mais perigoso do que um modelo ruim. A confiança cai, você precisa verificar toda saída, e isso é exaustivo. No fim, pretendo cancelar a assinatura
Esse tipo de degradação silenciosa de desempenho é chocante. Vender um modelo de alta qualidade e enfraquecê-lo secretamente é enganar o cliente
Um wrapper complexo de ferramenta de programação pode, na verdade, piorar o desempenho. Há chance de que uma estrutura para economizar tokens seja desfavorável ao usuário
Mas, se perderem a confiança, no futuro também vai ficar difícil uma estratégia de tier premium
Fiz um script de auditoria com
jqeripgreppara encontrar mensagens de “early landing” (link1, link2).Frases como “vamos parar por aqui hoje” e “já está tarde, vamos encerrar” estão ficando cada vez mais frequentes. Pode ser por causa de load shedding
Também passei por algo parecido. O Claude CLI dizia coisas como “você não acha que já devia estar dormindo?” e “vamos encerrar por hoje”.
No stop-phrase-guard.sh, foram encontradas várias dessas expressões.
Quando informei o prazo, ele disse algo como “ainda faltam alguns dias, então vamos adiar isso”, e no fim eu respondi: “o prazo é problema meu, não seu”
Quando fiz experimentos com assinatura max no fim de janeiro e começo de fevereiro, os agentes eram tão bons que chegavam a projetar e implementar apps sozinhos.
Mas, um mês depois, diziam “não dá para ir para a etapa 2 antes de validar a etapa 1”, e o progresso parou completamente.
Desde o Opus 4.6, a sensação é claramente de regressão para nível Sonnet
Eu divido o trabalho em partes bem granulares, então quase não passo por esse problema.
Divido cada tarefa em unidades de commit e automatizo até o deploy. Assim também fica fácil reverter