Título Original: "Entendendo o código-fonte do Claude Code da Anthropic em um artigo: Por que ele é simplesmente melhor que os outros?"
Autor Original: Yuker, Pesquisador de IA
Em 31 de março de 2026, o pesquisador de segurança Chaofan Shou descobriu que, no lançamento do pacote Claude Code pela Anthropic no npm, o arquivo de mapa de origem não foi removido.
Isso significa que todo o código-fonte TypeScript do Claude Code, com 512.000 linhas e 1903 arquivos, foi exposto na internet pública.
Claro, eu não poderia ler tanto código em apenas algumas horas, então abordei este código-fonte com três perguntas:
1. Qual é a diferença fundamental entre o Claude Code e outras ferramentas de programação de IA?
2. Por que a escrita de código dele "parece" simplesmente melhor que a dos outros?
3. O que exatamente está escondido em 510.000 linhas de código?
Depois de ler tudo, minha reação inicial foi: isso não é apenas um assistente de programação de IA; isso é um sistema operacional.
Imagine que você contratou um programador remoto e deu a ele acesso remoto ao seu computador.
Como você lidaria com isso?
Se você fosse o Cursor: você faria com que ele sentasse ao seu lado e, toda vez que precisasse digitar um comando, você daria uma olhada e clicaria em "permitir". É direto, mas você precisa ficar de olho nele o tempo todo.
Se você fosse um GitHub Copilot Agent: você daria a ele uma máquina virtual novinha em folha para brincar. Depois que ele terminasse, ele enviaria o código, você o revisaria e, então, faria o merge. É seguro, mas ele não consegue ver seu ambiente local.
Se você fosse o Claude Code:
Você deixaria que ele usasse seu computador diretamente — mas você o equipou com um sistema de segurança extremamente sofisticado. O que ele pode fazer, o que não pode fazer, quais ações exigem sua aprovação, quais ele pode fazer por conta própria e, mesmo que ele queira usar rm -rf, isso deve passar por 9 níveis de revisão antes da execução.
Aqui estão três filosofias de segurança completamente diferentes:

Por que a Anthropic escolheu o caminho mais difícil?
Porque só assim a IA pode trabalhar com seu terminal, seu ambiente, sua configuração - é isso que significa "ajudar você a programar de verdade", em vez de "escrever um pedaço de código em uma sala limpa e depois copiá-lo".
Mas qual é o custo? Eles escreveram 510.000 linhas de código para isso.
A maioria das pessoas pensa que as ferramentas de programação de IA funcionam assim:
Entrada do Usuário → Chamar API de LLM → Obter Resultado → Mostrar ao Usuário
O Claude Code real funciona assim:
Entrada do Usuário
→ Montar dinamicamente 7 camadas de prompts de sistema
→ Injetar estado do Git, convenções de projeto, memória histórica
→ 42 ferramentas, cada uma com um manual
→ LLM decide qual ferramenta usar
→ 9 camadas de revisão de segurança (parsing de AST, classificadores de ML, verificações de sandbox...)
→ Resolução de corrida de permissões (teclado local/IDE/hook/classificador de IA competindo simultaneamente)
→ Atraso anti-fadiga de 200ms
→ Executar ferramenta
→ Retornar resultados de forma streaming
→ O contexto está se aproximando do limite? → Compressão de três estágios (micro-compressão → auto-compressão → compressão total)
→ Precisa de paralelismo? → Gerar um enxame de sub-agentes
→ Loop até a conclusão da tarefa
Acredito que todos estejam muito curiosos sobre o que foi dito acima, mas não se preocupe, vamos descompactá-los um por um.
Abra src/constants/prompts.ts e você verá esta função:

Note esse SYSTEM_PROMPT_DYNAMIC_BOUNDARY?
Este é um delimitador de cache. O conteúdo acima do delimitador é estático e pode ser armazenado em cache pela API do Claude para economizar custos de token. O conteúdo abaixo do delimitador é dinâmico — sua branch atual do Git, sua configuração de projeto CLAUDE.md, suas memórias de preferência fornecidas anteriormente... cada interação é única.
O que isso significa?
A Anthropic trata as palavras-chave como saída de compilador para otimizar. A parte estática é o "binário compilado" e a parte dinâmica são os "parâmetros de tempo de execução". Os benefícios dessa abordagem são:
1. Economia de custos: A parte estática é armazenada em cache, evitando cobranças redundantes
2. Velocidade: Os acertos de cache ignoram diretamente o processamento desses tokens
3. Flexibilidade: A parte dinâmica permite que cada interação esteja ciente do ambiente atual
Cada ferramenta tem seu próprio "Manual do Usuário"
O que é ainda mais surpreendente é que cada diretório de ferramenta contém um arquivo prompt.ts — este é um Manual do Usuário feito sob medida para LLM.
Veja o BashTool (src/tools/BashTool/prompt.ts, cerca de 370 linhas):

Este não é um documento para humanos, é um código de conduta para o comportamento da IA. Toda vez que o Claude Code inicia, essas regras são injetadas nos prompts do sistema.
É por isso que o Claude Code nunca força um git push --force por conta própria, enquanto algumas ferramentas podem — não é que o modelo seja mais inteligente, é que as dicas já soletraram as regras.
Além disso, a versão interna da Anthropic é diferente da que você está usando
O código tem inúmeras ramificações como esta:

ant refere-se à equipe interna da Anthropic. A versão deles tem diretrizes de estilo de código mais detalhadas ("Não escreva comentários a menos que o PORQUÊ não seja óbvio"), uma estratégia de saída mais agressiva ("Escrita em Pirâmide Invertida") e alguns recursos experimentais ainda em teste A/B (Agente de Verificação, Agente de Exploração e Planejamento).
Isso ilustra que a Anthropic é a maior usuária do Claude Code. Eles estão usando seu próprio produto para desenvolver seu próprio produto.
Abra src/tools.ts e você verá o registro de ferramentas:

42 ferramentas, mas a maioria delas você nunca viu diretamente. Isso porque muitas ferramentas são carregadas de forma preguiçosa — somente quando o LLM precisa delas, elas são injetadas sob demanda via ToolSearchTool.
Por que isso é feito?
Porque para cada ferramenta adicional, o prompt do sistema precisa de uma descrição adicional, e o token precisa gastar mais dinheiro. Se você só quer que o Claude Code ajude a alterar uma linha de código, ele não precisa carregar o 'Agendador de Tarefas Cron' e o 'Gerenciador de Colaboração de Equipe'.
Existe um design ainda mais inteligente:

Defina CLAUDE_CODE_SIMPLE=true, e o Claude Code ficará com apenas três ferramentas: Bash, Ler Arquivo, Modificar Arquivo. Este é um backdoor para minimalistas.

Preste atenção aos valores padrão: isConcurrencySafe é false por padrão, isReadOnly é false por padrão.
Isso é chamado de design fail-closed — se o autor de uma ferramenta esquecer de declarar os atributos de segurança, o sistema assumirá que ela é 'insegura e gravável'. É melhor ser excessivamente cauteloso do que perder um único risco.

O FileEditTool verificará se você já leu este arquivo usando o FileReadTool. Se não, ele lançará um erro diretamente e não permitirá a modificação.
É por isso que o Claude Code não "escreverá magicamente um trecho de código para sobrescrever seu arquivo" como algumas ferramentas — **é necessário entender primeiro antes de modificar**.
Qualquer pessoa que tenha usado o Claude Code tem uma sensação: ele parece realmente conhecer você.
Você diz a ele "não simule o banco de dados em testes", e ele não simulará na próxima interação. Você diz a ele "sou um engenheiro backend, novato em React", e ele explicará o código front-end usando analogias de backend.
Por trás disso, há um sistema de memória completo.

O Claude Code usa outra IA (Claude Sonnet) para determinar "quais memórias são relevantes para a conversa atual"
Não é correspondência de palavras-chave, não é busca vetorial — ele permite que um modelo pequeno escaneie rapidamente todos os títulos e descrições de arquivos de memória, selecionando até os 5 mais relevantes, e então injetando seu conteúdo completo no contexto da conversa atual.
A estratégia é "precisão sobre recall" — é melhor perder uma memória potencialmente útil do que injetar uma irrelevante poluindo o contexto.
Modo KAIROS: "Sonhar" durante a noite
Esta é a parte mais ficção científica para mim.
Existe uma flag de recurso no código chamada KAIROS. Nesse modo, as memórias de longas conversas não são armazenadas em arquivos estruturados, mas em entradas semelhantes a logs com data anexada. Então, há uma habilidade /dream que é executada durante a "noite" (baixa atividade), destilando esses logs brutos em arquivos temáticos estruturados.

A IA organiza memórias enquanto "dorme". Isso não é mais engenharia; é biônica.
Quando você faz o Claude Code realizar uma tarefa complexa, ele pode fazer isso silenciosamente:

Ele gera um sub-Agente.
E o sub-Agente tem uma injeção estrita de "autoconsciência" para impedi-lo de gerar recursivamente mais sub-Agentes:

Este pedaço de código diz: "Você é um trabalhador, não um gerente. Não pense em contratar mais pessoas, faça o trabalho você mesmo."
Padrão de Coordenador: Padrão de Gerente
No padrão de coordenador, o Claude Code se torna um orquestrador de tarefas puro, não fazendo o trabalho sozinho, apenas delegando:

Princípios fundamentais escritos em comentários de código:
"O paralelismo é seu superpoder" para tarefas de pesquisa somente leitura: execute em paralelo. Para tarefas de gravação de arquivo: execute em série por grupo de arquivos (evitando conflitos).
Otimização do Cache de Prompt ao Extremo
Para maximizar a taxa de acerto de cache de sub-Agentes, todos os resultados de utilitários de sub-agentes bifurcados usam o mesmo texto de espaço reservado:
"Fork iniciado — processando em segundo plano"
Por quê? Porque o cache de prompt da API do Claude é baseado na correspondência de prefixo em nível de byte. Se os bytes de prefixo de 10 sub-Agentes forem idênticos, apenas o primeiro precisa de uma "partida a frio", os 9 restantes atingem diretamente o cache.
Esta é uma otimização que economiza alguns centavos por chamada, mas em escala, pode economizar uma quantidade significativa de custo.
Todos os LLMs têm um limite de janela de contexto. Quanto mais longa a conversa, mais mensagens históricas, eventualmente excederá o limite.
O Claude Code projetou compressão de camada tripla para isso:

A micro-compressão toca apenas resultados antigos de chamadas de ferramenta — substituindo "Conteúdo do arquivo de 500 linhas lido há 10 minutos" por [Conteúdo antigo do resultado da ferramenta limpo].
As palavras do prompt e o thread de diálogo são totalmente retidos.
Quando o consumo de token se aproxima de 87% da janela de contexto (tamanho da janela - 13.000 buffer), é acionado automaticamente. Há um disjuntor: pare as tentativas após 3 falhas consecutivas de compressão para evitar um loop.
Peça à IA para gerar um resumo de toda a conversa e, em seguida, substitua todas as mensagens históricas pelo resumo. Há um preceito estrito durante a geração do resumo:

Por que tão estrito? Porque se a IA fizer chamadas de ferramenta adicionais durante o processo de resumo, isso incorreria em mais consumo de token, sendo contraproducente. Este prompt é essencialmente dizendo: "Sua tarefa é resumir, não faça mais nada."
Orçamento de Token Comprimido:
· Recuperação de Arquivo: 50.000 tokens
· Limite por Arquivo: 5.000 tokens
· Conteúdo de Habilidade: 25.000 tokens
Esses números não são arbitrários — eles representam um ponto de equilíbrio entre "reter contexto suficiente para continuar trabalhando" e "liberar espaço suficiente para receber novas mensagens."
Dentro de 510.000 linhas de código, a parte que realmente chama a API de LLM provavelmente é menos de 5%. E os 95% restantes?
· Verificações de Segurança (18 arquivos apenas para um único BashTool)
· Sistema de Permissões (permitir/negar/perguntar/passagem Decisão Quadrática)
· Gerenciamento de Contexto (Compressão de três camadas + Recuperação de Memória por IA)
· Recuperação de Erros (Disjuntor, Backoff Exponencial, Persistência de Transcrição)
· Coordenação Multi-Agente (Orquestração de Enxame + Comunicação por Caixa de Correio)
· Interação de UI (140 Componentes React + Ponte IDE)
· Otimização de Desempenho (Estabilidade de Cache de Prompt + Pré-busca Paralela na Inicialização)
Se você está construindo um produto de Agente de IA, esses são os problemas reais que você precisa resolver. Não se trata de quão inteligente é seu modelo; trata-se de quão robusto é seu andaime.
Não se trata apenas de criar um bom prompt. Os prompts do Claude Code incluem:
· Montagem Dinâmica de 7 Camadas
· Cada ferramenta vem com um manual do usuário independente
· Limites de cache são delineados com precisão
· Versões internas e externas têm conjuntos de instruções diferentes
· A ordenação das ferramentas é fixa para manter a estabilidade do cache
Isso é gerenciamento de prompt projetado, não artesanato.
Toda dependência externa tem uma política de falha correspondente:

42 ferramentas = Sistema de Permissão de Chamada de Sistema = Sistema de Habilidade de Gerenciamento de Permissão do Usuário = Protocolo MCP de App Store Protocolo = Enxame de Agentes de Driver de Dispositivo = Gerenciamento de Processo Compressão de Contexto = Gerenciamento de Memória Persistência de Transcrição = Sistema de Arquivos
Isso não é um "chatbot mais algumas ferramentas"; isso é um sistema operacional com LLM em seu núcleo.
510.000 linhas de código. 1903 arquivos. 18 arquivos seguros apenas para uma única ferramenta Bash.
9 camadas de escrutínio apenas para ter a IA ajudando você a digitar um comando com segurança.
Esta é a resposta da Anthropic: Para tornar a IA verdadeiramente útil, você não pode trancá-la em uma gaiola ou deixá-la correr solta. Você tem que construir uma estrutura de confiança completa ao redor dela.
E o custo desse sistema de confiança é de 510.000 linhas de código.
Este conteúdo é fornecido apenas para fins informativos gerais e não constitui aconselhamento financeiro, de investimento, jurídico ou tributário. Quaisquer eventos, recompensas, promoções online ou informações relacionadas mencionadas neste documento não devem ser consideradas uma recomendação, solicitação ou convite para comprar, vender, negociar ou realizar qualquer outra transação com criptoativos. Criptoativos são altamente voláteis e podem resultar em perdas. A disponibilidade dos serviços, produtos e eventos relacionados da WEEX pode variar conforme a região. É de sua responsabilidade garantir que sua participação esteja em conformidade com as leis e regulamentações locais aplicáveis.





























