O texto de “Extended Thinking” do Claude Code não é o raciocínio real
(patrickmccanna.net)- O Claude Code grava as sessões em disco, mas no thinking block dos logs locais ficava apenas uma
signaturede 600 caracteres em vez do texto real de raciocínio - O raciocínio do Claude é criptografado em uma signature, e a chave fica com a Anthropic, sem ser enviada ao dispositivo do usuário
- O valor retornado pela API não é o texto original do raciocínio, mas sim um resumo do raciocínio; para obter o thinking output completo é necessário um enterprise agreement
- A saída de extended-thinking vista com
ctrl+otambém é apenas um resumo do processo de pensamento de Fable/Opus, e não o raciocínio em si que realmente guiou o comportamento do modelo na sessão - Se você quiser usar sessões do Claude Code como trilha de auditoria, precisa partir do princípio de que não é possível reconstruir a lógica real do agente apenas com arquivos locais, entradas e saídas, e logs de ações
O que fica nos logs locais não é o texto original do raciocínio
- O Claude Code grava cada sessão em disco, e esses logs incluem thinking blocks de enquanto o modelo está trabalhando
- Ao tentar verificar esse raciocínio localmente, não havia texto real, apenas uma
signaturede 600 caracteres - A documentação de extended thinking da Anthropic trata essa estrutura da seguinte forma
- O Claude criptografa o raciocínio dentro dessa signature
- A chave fica com a Anthropic
- O dispositivo do usuário não recebe a chave
- A API retorna um reasoning summary, e não o raciocínio em si
- Para obter o thinking output completo é necessário um enterprise agreement
- O artigo de Matt Green traz observações mais detalhadas sobre o bloco de signature
Limites da saída de Extended Thinking
- A saída de extended-thinking visível no
ctrl+odo Claude Code é um resumo do thinking de Fable/Opus - Essa saída não é o próprio thinking que realmente guiou as ações do modelo na sessão, mas sim o resultado de uma compressão da lógica de raciocínio
- Há perda de dados no processo de transformação em resumo, e o texto original compara isso a uma situação em que informações se perdem ao converter um formato de arquivo
- Pontos de atenção quando é necessário registrar a lógica usada pelo agente em uma sessão do Claude Code
- Não é possível gerar essa lógica apenas com os arquivos locais
- Os logs de raciocínio que permanecem no sistema não estão em um formato acessível ao usuário
- Entradas, saídas e as ações do Claude Code em execução podem ser coletadas e registradas separadamente
- Mesmo esses logs não são o raciocínio que realmente guiou o comportamento do agente
- A frase da documentação, “extended thinking returns a summary of Claude’s full thinking process”, é indireta e pode dar margem à interpretação errada de que o full thinking real é retornado
1 comentários
Opiniões no Hacker News
Não é um problema só da Anthropic; quase todas as grandes empresas de IA, incluindo OpenAI e Google, escondem o processo real de raciocínio do modelo
Isso acontece porque divulgar o raciocínio bruto revelaria exatamente como a IA processa informações, e essas empresas gastam enormes quantias em P&D para criar processos de pensamento melhores que os dos concorrentes
Divulgar esse mecanismo de pensamento para concorrentes destruiria o próprio propósito desse investimento, então elas jamais fariam isso; é como dizer sua localização exata para alguém que está te perseguindo
Se esse conteúdo for pós-processado, como em forma de resumo, ele se torna menos útil para concorrentes
Então é ainda pior
A analogia de que “não é pensamento real, é um resumo da lógica do pensamento; é como salvar um jpeg como .bmp, editar o .bmp e depois apresentá-lo de novo como .jpeg. Há perda de dados no processo de conversão” está invertida
.bmp é um formato sem perdas e .jpeg é um formato com perdas
Não pretendo usar nem recomendar modelos com raciocínio oculto, e todos os modelos americanos entram nessa categoria
O risco é grande demais e isso também dificulta a otimização de prompts
É perigoso porque um atacante pode inserir um objetivo secreto na cadeia de raciocínio via prompt injection, e depois escondê-lo no resumo e na saída
Fica ainda mais perigoso quando raciocínio e chamadas de função se misturam, porque o modelo pode chamar funções durante etapas ocultas de raciocínio
Aí, mesmo que um invasor exfiltre dados, o resumo do raciocínio pode esconder isso do usuário
Além disso, também não dá para saber se o modelo entrou em loop infinito durante o raciocínio e está desperdiçando tokens; o Gemini tem essa tendência, e isso já foi observado quando raciocínio oculto vazou
Talvez eu pare de me importar quando os modelos virarem AGI e ficarem seguros contra prompt injection, mas até lá quero saber exatamente como o modelo está reagindo ao prompt e exatamente o que o agente está fazendo no meu lugar
Leitura adicional: Fooling around with encrypted reasoning blobs
https://blog.cryptographyengineering.com/2026/05/29/fooling-...
Para avaliar chamadas de função no lado do cliente, em algum momento esse fluxo de pensamento teria de ser descriptografado no cliente, e aí o propósito dessa ofuscação se perderia
Se a ideia é que chamadas de função possam acontecer no servidor, então não há como impedir que o servidor faça isso e oculte, desde que você esteja usando uma API de raciocínio
Por enquanto ele só funciona em Rust: https://github.com/Kapperchino/agent-joe
Senão, como o cliente executaria isso?
Isso já é sabido há muito tempo, e as empresas nem estão exatamente tentando esconder
Elas fazem isso para impedir que concorrentes treinem modelos com cadeia de pensamento (CoT)
Acho que isso já existia desde o Opus 4.6
Lembro claramente dessa mudança em janeiro ou fevereiro, e o motivo declarado era evitar destilação
O Sonnet não tem essa limitação
O curioso é que, se você voltar ao estilo de dois anos atrás e colocar explicitamente um prompt de CoT, o prompt completo de pensamento volta a aparecer
Então basta desligar totalmente o recurso de pensamento e, no prompt comum, incluir o pensamento assim:
“Antes de responder, pense passo a passo. Por exemplo:
O usuário está me pedindo para …
Eu preciso pensar em blah blah. Primeiro devo foo the bar e depois fazer blah blah
Resposta:”
Aí pronto,
tada.wav, o CoT volta a funcionar como na era do GPT-3Eu não acho que blocos de raciocínio em cadeia de pensamento correspondam muito ao que humanos chamam de raciocínio
Basta ver o “raciocínio difícil de ler” na seção 6.2.2 do system card do Fable/Mythos e as questões levantadas pelo artigo da Apple, “The illusion of thinking”
Eu achava que escondiam os blocos de raciocínio porque os usuários ficariam surpresos ao ver o que realmente acontece por dentro
Eu provavelmente também ficaria surpreso ao ver o que realmente acontece dentro da cabeça dos meus colegas
Por outro lado, às vezes havia ideias úteis ali dentro que não apareciam na resposta final
Há algum tempo deixei uma pequena nota de que o DeepSeek R1 produzia rastros de pensamento desse tipo
“(Dimethyl(oxo)-lambda6-sulfa雰囲idine)methane donate a CH2rola group occurs in reaction, Practisingproduct transition vs adds this.to productmodule. Indeed"come tally said Frederick would have 10 +1 =11 carbons. So answer q Edina is11.”
E então chegava à resposta “correta” para o problema de química
Nesse caso, o rastro de pensamento pode parecer ao leitor uma string bastante sem sentido, e ainda não sei se isso é uma peculiaridade desse modelo ou uma propriedade mais geral dos LLMs
Conversei com o autor sobre isso no passado, mas como o artigo sairia em algo como a NIPS, acabei esquecendo de fazer o acompanhamento; se alguém encontrar, seria bom compartilhar
0: https://wiki.roshangeorge.dev/w/Blog/2025-10-12/Word_Magic#I...?
1: Acho que no sentido de crença verdadeira
Sim, vários modelos pensam de um jeito parecido com jargão estranho
Um exemplo do rastro de pensamento do Mythos jogando paciência está aqui: https://www.lesswrong.com/posts/wCSEpT3dTGz4N86Wi/even-illeg...
“7♣-removal-IS-the-prerequisite-for-10♠/9♥!!)-⟹-OVERLAP-(ii)+(iv):-{6♠ J♦ 9♥ 2♣}-=-FOUR--—-UNLESS-7♣'s-seat-8♥-...-and-2♣-drains-only-at-crack-:-⟹-2♣-celled-+-9♥-celled-simultaneously-UNAVOIDABLE-in-t8-dig--—-BREAK:-9♥”
Isso parece um estágio em que o modelo para de pensar em inglês e passa a algo um pouco mais próximo de neuralese no espaço vetorial interno
Não é neuralese de verdade, porque ainda está sendo serializado em texto, mas está indo nessa direção
Quando escrevo código, meu próprio processo interno também costuma ter muitos estágios intermediários difíceis de registrar em inglês, então até simpatizo um pouco com os modelos
Acho que isso pode ser só ruído de tokens vindo de uma implementação quebrada ou da quantização do modelo
Já vi o modelo soltar esse tipo de besteira, e toda vez era bug do llama.cpp ou um
.ggufcorrompidoNo HN a antropomorfização é um tabu, mas vale mencionar que há quem veja os humanos como fazendo racionalização a posteriori também
https://www.patheos.com/blogs/tippling/2013/11/14/post-hoc-r...
https://www.researchgate.net/publication/316045349_Post_Hoc_...
Pensamos de forma não verbal e depois verbalizamos retrospectivamente uma justificativa plausível
Não sei se isso se aplica também à escrita discursiva
Ao escrever, em geral usamos regras lógicas para orientar a direção da narrativa, então as heurísticas não verbais ainda devem atuar, mas sob restrições; por isso, provavelmente não é algo totalmente posterior
É amargo ver a Anthropic esconder seus próprios dados desse jeito enquanto suga todos os seus dados, e muita gente os entrega de bom grado
Depois ela usa isso para construir seus produtos, ocupar o mercado e competir
A Anthropic esconde seus tokens de raciocínio porque acredita que isso é seu fosso e daria vantagem a outros laboratórios
Se realmente acredita que essa é sua vantagem, vai ter uma surpresa
Fico curioso sobre que produto exatamente você está dizendo que eles “sugaram”
Então estão dizendo que o conteúdo de
reasoning_summaryé de fato um resumo?Vale notar que a OpenAI faz exatamente a mesma coisa, então não é nada tão surpreendente nem especialmente maligno
Eles se esforçam tanto para esconder o pensamento, mas o Opus 4.8 começa a vazar o próprio pensamento depois de 100 mil a 200 mil tokens
É realmente uma comédia
Principalmente porque normalmente estou tentando fazer jailbreak por motivos de segurança
Saem páginas e páginas de algo como “o usuário está pedindo algo relacionado a cibersegurança, e isso pode ser facilmente desviado para fins ofensivos, então preciso ter cuidado”, e no fim ele acaba me dando de bom grado o que eu queria