Por que o Claude Code é tão bom
(minusx.ai)- Claude Code é um agente/fluxo de trabalho de IA excelente em termos de usabilidade
- Graças à simplicidade arquitetural e a um loop de controle claro, ele oferece uma experiência em que depuração e manutenção são fáceis
- Ao minimizar a adoção de RAG e usar ativamente prompts sofisticados e arquivos de contexto, ele maximiza os pontos fortes dos LLMs
- Com várias ferramentas (tools) e diretrizes claras, mantém clareza e consistência no trabalho
- Em vez de complexidade, aposta em uma estrutura fácil de entender e no design de prompts, com a vantagem de permitir implementar um agente LLM próprio de forma semelhante
Visão geral
- Claude Code (doravante CC) oferece atualmente uma das experiências mais satisfatórias entre os agentes de IA/fluxos de trabalho de programação disponíveis
- Os pontos fortes do CC estão na edição de código voltada ao alvo, na redução de interrupções desnecessárias e em uma UX agradável que preserva o controle do usuário
- O modelo Claude 4 e seu característico Interleaved Thinking têm papel central, mas ele ainda oferece menos atrito do que outras ferramentas baseadas no mesmo modelo, como Cursor ou Github Copilot
- Este texto disseca os princípios de implementação do CC e oferece um guia prático para implementar um agente LLM próprio que proporcione uma experiência semelhante
A virtude central do Claude Code: simplicidade
- A maior lição é: "mantenha tudo simples (Keep Things Simple, Dummy)"
- Quando agentes LLM adotam estruturas complexas (multiagente, RAG complexo, sistemas de verificação etc.), fica extremamente difícil depurar e melhorar
- O CC adota um único loop principal, um conjunto de ferramentas simples e uma estrutura compreensível de relance, reunindo toda a lógica essencial em um único arquivo e eliminando boilerplate e complexidade desnecessários
Por que a simplicidade importa
- Em vez de uma estrutura multiagente, ele processa a maior parte do trabalho em uma única thread principal
- Resumo de histórico e consolidação de mensagens para UX são aplicados de forma auxiliar
- Quando é necessário lidar com uma tarefa complexa, ele se replica para ramificar em um subagente (sem ramificação recursiva, permitida apenas em um nível)
- Faz uso ativo de uma lista de tarefas (todo list)
- Problemas complexos podem ser divididos e tratados pelo subagente, com os resultados sendo mesclados ao histórico principal de mensagens
- Estruturas excessivamente abstratas e multicamadas (múltiplos agentes, navegação em grafos) podem, ao contrário, prejudicar a estabilidade e a escalabilidade do sistema
Uso ativo de modelos leves
- Usa modelos LLM leves, como claude-3-5-haiku, na maioria das requisições
- Processa com eficiência muitas tarefas, como leitura de arquivos grandes, parsing de páginas web e resumo de histórico do git
- O uso de modelos leves pode reduzir os custos em até 70–80%
- Recomenda-se usar combinações de modelos otimizadas para cada chamada de função principal
Design sofisticado de prompts
- O prompt de sistema do CC é composto por grande volume (cerca de 2800 tokens) e várias seções (tom & estilo, gerenciamento de tarefas, política de uso de ferramentas, informações de SO/diretório etc.)
- Ele sempre inclui arquivos de contexto inteiros, como claude.md, para maximizar a riqueza do contexto
- O prompt de sistema orienta com muito detalhe sobre regras de política, exemplos, cuidados e o momento adequado de usar ferramentas
Uso simultâneo de XML e Markdown
- O prompt usa ao mesmo tempo tags XML e estrutura Markdown
- Com elementos como
<system-reminder>,<good-example>,<bad-example>, transmite informações detalhadas e com bifurcações condicionais - Os headings em markdown separam as seções com clareza
- Com elementos como
A importância dos arquivos de contexto
- A presença ou ausência de claude.md faz uma diferença enorme no desempenho do CC
- É essencial para transmitir regras adicionais difíceis de inferir a partir do codebase (exclusão de pastas/bibliotecas, políticas preferidas etc.)
- A MinusX também sistematiza preferências de equipe/usuário com minusx.md
Minimizar RAG, usar busca do LLM
- Em vez de RAG (Retrieval Augmented Generation), o CC prefere uma estrutura baseada em busca direta de código, usando comandos como
ripgrep,jqefind, como um desenvolvedor real- Isso oferece uma alternativa às possibilidades ocultas de falha trazidas por configurações complexas de RAG (por exemplo: função de similaridade, reranker, chunking)
- Como o LLM explora e entende diretamente o contexto real do código, há menos peças móveis e até potencial de maior eficiência no treinamento por RL
Design de ferramentas (tool) e hierarquia
- O CC oferece ferramentas de baixo nível (Bash, Read, Write), nível intermediário (Edit, Grep, Glob) e alto nível (Task, WebFetch etc.)
- As ferramentas necessárias são separadas individualmente levando em conta frequência de uso e precisão
- A descrição, os exemplos e o momento de uso de cada ferramenta são informados claramente no prompt de sistema
- Tarefas complexas são gerenciadas de forma consistente por meio de
Taskou ferramentas de alto nível
Gerenciamento explícito de Todo para evitar perda de contexto
- Para resolver problemas típicos de agentes LLM de longa execução (perda de contexto, perda de direção), o CC gerencia estado com uma lista de Todo mantida diretamente
- Em vez de um sistema multiagente, o modelo atualiza a lista de tarefas de forma autônoma e garante ao mesmo tempo direção de trabalho e flexibilidade
Controle do tom, estilo e nível de proximidade do agente
- Tom, estilo e proatividade são gerenciados em seções separadas
- Foi desenhada uma experiência de usuário consistente, como evitar explicações desnecessárias e permitir emojis apenas quando explicitamente solicitados
- Usa modificadores fortes como "muito importante (IMPORTANT)", "nunca (NEVER)" e "sempre (ALWAYS)" para transmitir alertas
Design do algoritmo de decisão e do fluxo
- Os principais algoritmos que o LLM deve seguir são descritos com clareza e exemplificados
- Mais do que listar Do/Don't, fluxogramas e checklists por etapas são mais eficazes para manter a estabilidade do algoritmo
- Considerando a possibilidade de conflito entre várias diretrizes e exemplos, o escopo do papel e as políticas são definidos de forma estrutural
Padrões de design e dicas práticas de aplicação
- Sua estrutura forte e opinativa vale como benchmark imediato para projetar um agente próprio
- Em vez de abusar de frameworks que só aumentam a complexidade mental, o importante é projetar uma estrutura simples e eficaz
- Na prática, a MinusX já aplica vários desses princípios e planeja expandi-los gradualmente
Conclusão
- A maior lição do Claude Code: “a simplicidade é a maior força”
- Clareza estrutural, design de prompts com propósito e combinação de ferramentas leves tornam possível um agente LLM poderoso
- Ao desenvolver seu próprio agente LLM, vale muito a pena tomar a filosofia de design e os guias do CC como referência ativa
2 comentários
Bom demais, feliz demais, é o melhor, é uma doçura, quero continuar pra sempre
Comentários do Hacker News
A opinião é que a simplicidade no estilo KISS sempre vence, e que o texto foi útil por organizar bem essas ideias
É uma pena que o Claude Code não seja open source, mas foi compartilhado que existem ferramentas para entender melhor o funcionamento interno; se você realmente quer ver como ele funciona, a recomendação é o Claude Trace
https://github.com/badlogic/lemmy/tree/main/apps/claude-trace
Essa ferramenta gera um arquivo JSON mostrando todas as ferramentas e prompts usados na sessão, além de um arquivo HTML formatado para facilitar a visualização
https://github.com/All-Hands-AI/OpenHands?tab=readme-ov-file
Também dá para conferir o prompt de sistema
O modelo parece ter sido treinado para dividir tarefas em várias etapas e resolvê-las com paciência por padrão, além de ser razoavelmente robusto em casos de falha
Houve quem achasse útil entender como uma organização centrada em LLM aborda isso em uma época em que sistemas multiagentes estão em alta, e disse se identificar por também experimentar vários pontos de vista de design no dia a dia
Os principais insights seriam:
(1) prompts longos podem ser bons, e é importante incluir explicações básicas como o propósito da ferramenta e como ela ajuda
(2) chamada de ferramenta é algo muito básico, então o sistema precisa refletir mais contexto, como quando usar e quando não usar
(3) gerenciar o estado do sistema como mensagens funciona bem; métodos mais sofisticados, como salvar dataframes ou fazer parsing de variáveis, também foram considerados, mas com uma janela de contexto maior, só mensagens já seriam suficientes
Também tentou modelos da OpenAI e do Google Gemini, mas achou que nenhum funcionava tão bem quanto os da Anthropic, além de serem mais lentos; quanto maior o prompt, mais apareciam problemas como esquecer ferramentas ou devolver resultados em formato incorreto
Clareza e simplicidade vêm em primeiro lugar
Houve uma pergunta sobre como o Google Gemini, especialmente a versão Pro, se compara ao Claude; a pessoa gosta de muitos produtos do Google, mas se preocupa com o hábito da empresa de descontinuar produtos com frequência, além de questões de controle corporativo, como no Chrome, e censura
A estratégia pessoal dessa pessoa é usar o Gemini para gerar um resumo do projeto e um plano de design de alto nível, depois usar o gpt5 para refinamento e desenho do workflow detalhado, como documentos XML, e por fim passar isso para o Claude; só isso já quase elimina a tendência do Claude de ficar se perdendo
https://www.tbench.ai/leaderboard
A opinião de uma pessoa é que o próprio modelo base é muito forte para trabalho real de programação, o que explica a avaliação positiva dos usuários, diferente de problemas de benchmark genéricos; segundo ela, ao usar GitHub Copilot, o Claude é muito superior aos modelos da OpenAI e do Google, com uma diferença tão grande que os outros chegam a parecer praticamente inúteis na prática
Alguém está tentando depurar problemas relacionados ao Elastic no Security Onion com Claude Code, mas depois de alguns minutos começa a sair um monte de código JS confuso e aparece o erro
Error: kill EPERMPelos logs, parece que o processo Node.js é encerrado e isso talvez mate o próprio Claude, ou então dá a impressão de que o Claude desiste sozinho por não conseguir resolver o problema
De qualquer forma, a pessoa gostaria que ele ajudasse por mais tempo se o processo continuasse vivo
A opinião é que, no futuro, as linguagens, plataformas e arquiteturas que os LLMs conhecem melhor vão dominar cada vez mais; por exemplo, se o LLM for 10 vezes melhor com nodejs, então pode fazer sentido escolher nodejs desde o início em vez de Elixir ou Go, e até desenvolvedores júnior poderiam atuar em nível pleno ou sênior com ajuda de LLM
sudopara tentar executar processos com privilégios de superusuário e ocorre timeoutUma pessoa contou que criou todo o primeiro MVP da startup com Claude Code e que agora já tem clientes pagantes; claro, ainda existe uma ansiedade fundamental de que tudo pode ruir de uma vez em caso de um incidente SEV, mas mesmo assim continua usando Claude intensamente para corrigir vulnerabilidades de segurança, fazer desenvolvimento orientado a testes e projetar a arquitetura de software de acordo com o roadmap de longo prazo
Ela espera que esse tipo de história se torne cada vez mais comum no futuro
Houve a opinião de que, se a ideia é “Keep things simple”, então isso na prática até parece uma configuração um pouco complexa
A pessoa diz que sempre conseguiu fazer bastante coisa com uma abordagem simples de fazer uma pergunta por prompt
Não está convencida de qual valor adicional essas estruturas complexas discutidas trazem em relação a prompts muito bem elaborados
Por exemplo, pensa que um prompt de uma frase como "como fazer um loop
whileem uma linguagem que estou aprendendo" pode até ser mais eficienteO fluxo de controle parece pouco claro, e há dúvida se o LLM realmente usa bem os apêndices, como ferramentas ou prompt de sistema; se o pedido fica complexo demais, talvez partes sejam ignoradas ou haja desperdício de tokens
Programar soltando prompts separados por etapa parece muito mais natural para essa pessoa
Ela gostaria de ver exemplos de quem usa outros métodos ou exemplos de prompts
Também tem curiosidade sobre como as pessoas realmente constroem programas inteiros com LLMs e quer ver casos em que isso é feito por meio de prompts divididos por partes
Como observação, foi dito que no fim do texto há um link para minusx.com, mas o certificado de segurança está vencido há 553 dias, então o site não é válido e é bom tomar cuidado