- Em um cenário em que modelos de IA para programação não conseguem executar com confiabilidade nem um único comando, vem se formando uma expectativa exagerada em torno da programação agêntica, que opera de forma autônoma em segundo plano
- O autor relata que, mesmo fornecendo como referência uma função em Golang com cerca de 100 linhas, tanto o GPT-5 quanto o Gemini Pro omitiram partes da lógica ou deixaram atualizações de fora
- Fazer um sistema agêntico processar de forma autônoma 50 arquivos e várias funções é irrealista no nível atual da tecnologia e pode, na prática, consumir ainda mais tempo com depuração
- As respostas da comunidade se dividem entre a visão de que é possível obter algum sucesso de forma limitada com prompting estruturado, documentação e validação passo a passo, e a visão cética de que o modelo agêntico ainda não é prático
- Os LLMs atuais são sistemas baseados em conhecimento, não inteligência; por isso, uma abordagem realista é o uso como ferramenta, em que o desenvolvedor fornece o contexto diretamente e valida cada etapa
Questionamento do autor do texto original
- Exemplo de falha em instrução simples: foi fornecida como referência uma função em Golang com 100 linhas, e pedido que outra função fosse atualizada com a mesma estrutura; ainda assim, GPT-5 e Gemini Pro omitiram parte da lógica ou deixaram alterações sem aplicar
- Irrealismo da programação agêntica: se o modelo não consegue lidar corretamente nem com uma única função, a ideia de modificar de forma autônoma várias funções em 50 arquivos tende a gerar ainda mais problemas
- Pergunta sobre atualizar um arquivo de 6000 linhas: o autor pediu opiniões da comunidade sobre como modificar com segurança um arquivo desse porte em casos como atualização de versão do Stripe
Casos de uso positivos e metodologias
Abordagem de documentação e indexação estruturadas
- Uso de arquivos de referência em Markdown: ao salvar referências em arquivos
.md e instruir a IA a lê-los, a consistência e a precisão melhoram
- Exemplo de prompt: "Consulte o arquivo anexado
goLang_Update_reference.md, resuma os pontos principais da função update e, com base nisso, elabore um rascunho de atualização de software"
- Construção de índice local: no caso de arquivos grandes (mais de 6000 linhas), recomenda-se escanear em blocos de 1000 linhas e gerar um índice com nomes de funções e referências de linha
- Em trabalho de frontend, pode-se usar índices separados por área específica, como
fr.index.md
Gerenciamento de agentes e estruturação do trabalho
- Especialização de agentes: organizar agentes por função, como architect, codeseeker e coder, fornecendo a cada um arquivos de regras
.md adequados ao papel
- Abordagem de fatias verticais: dividir o trabalho em pequenas funcionalidades que possam ser concluídas com menos de 100 mil tokens
- Acima de 100 mil tokens, a chance de mau funcionamento dos agentes aumenta drasticamente
- Obrigatoriedade de documentação do trabalho: tornar obrigatória a atualização de
docs/TASKS.md, docs/WORKLOG.md e docs/DECISIONS.md para preservar a continuidade do trabalho
Uso de Plan Mode e Ask Mode
- Plan Mode: revisar o projeto como um todo, montar um plano com base no pedido e seguir por etapas
- Ask Mode: útil para consultar o codebase, explorar ideias e avaliar opções, funcionando bem como substituto de Google/StackOverflow
Abordagem com testes unitários primeiro
- Desenvolvimento guiado por testes: escrever primeiro os testes unitários e depois fazer a IA gerar iterativamente código que passe nesses testes
- Isso aumenta bastante a chance de obter código funcionalmente correto, restando depois apenas otimização e limpeza
Visões céticas e reconhecimento de limites
Limites práticos do modelo agêntico
- Trabalho sem supervisão é suicídio: no nível atual da tecnologia, atribuir tickets e deixar o sistema trabalhar de forma autônoma em segundo plano tem alta probabilidade de fracassar
- Possibilidade de mentir: o modelo tem maior propensão a gerar alucinações do que sucesso e, no pior caso, pode destruir código existente
- Redundância do Planning Mode: pedir um plano detalhado ao modelo base já seria suficiente; o Planning Mode não oferece, na prática, uma capacidade realmente nova
Limitações intrínsecas dos LLMs
- Previsão, não raciocínio: o modelo funciona prevendo a próxima palavra sem verificar o resultado; por isso, a confiabilidade continuará instável até que grounding, memory e feedback melhorem
- Base de conhecimento sem inteligência: LLMs são bases de conhecimento sofisticadas, mas sem inteligência; o desenvolvedor precisa trazer a própria inteligência (BYOI: Bring Your Own Intelligence) e fornecer o contexto
- Falta de memória: o modelo não tem memória real e depende apenas de context e context cache, então o contexto é reiniciado sempre que uma nova conversa começa
Viés de linguagem e dados
- Desvantagem relativa do Golang: Golang tem menos codebases públicos do que Python ou JavaScript, então o modelo aprendeu menos padrões e convenções da linguagem
- Esse é um fator estrutural que dificulta obter resultados consistentes em edição ou transformação
Guia prático para uso bem-sucedido
Prompting e fornecimento de contexto
- Instruções claras e detalhadas: usar gramática e pontuação com precisão e fornecer instruções explícitas em vez de formulações ambíguas
- Referência explícita a todos os arquivos relevantes: se o agente não receber todos os arquivos que precisa usar, aumenta a chance de gerar código espaguete
- Configuração de arquivos de regras: definir regras para o workspace inteiro e também regras específicas do projeto para induzir uma geração de código mais consistente
- Uso de @Docs: aproveitar o recurso de referência a documentação para fornecer ao agente o conhecimento essencial de que ele precisa (embora em algumas versões o funcionamento seja instável)
Escopo de trabalho e validação
- Dividir em unidades pequenas: separar o trabalho na menor unidade possível, validar cada etapa e só então seguir para a próxima
- Revisão em tempo real: revisar todo o código gerado em tempo real e pedir correções imediatamente para evitar código espaguete
- Backup e controle de versão: criar backups a cada etapa e usar sistemas de controle de versão como GitHub
- Execução de testes: usar
pytest --testmon -q para rodar incrementalmente os testes afetados e, antes de concluir, executar a suíte completa
Modularização e estrutura de código
- Dividir arquivos de 6000 linhas: um único arquivo com 6000 linhas é pouco modular e desfavorável para fornecer contexto; dividir em 12 arquivos de cerca de 500 linhas é mais eficaz
- Preferência por fatias verticais: desenvolver em pequenas unidades funcionais executáveis de ponta a ponta
Escolha de modelo e controle de custos
- Considerar primeiro o Claude Sonnet 4.5: em comparação com GPT ou Gemini, ele oferece mais consistência e precisão, o que pode justificar o custo adicional
- Atenção ao consumo de tokens: planejamentos grandes consomem muitos tokens, então dividir a execução em etapas pequenas é mais eficiente em termos de custo
Casos de uso especiais
Geração de scripts de uso único
- Scripts de análise: quando é preciso escrever centenas de scripts únicos de análise de dados por dia, mesmo com 50% de precisão a geração e execução podem ser 1000 vezes mais rápidas do que escrever manualmente
- Possibilidade de validar o resultado: como o resultado pode ser verificado diretamente, mesmo uma precisão baixa pode ser prática
Construção de apps do zero
- Estrutura multiagente: ao construir um app grande do zero, um agente supervisor revisa o trabalho dos outros agentes para manter a consistência
- Isso ajuda em pontos como nomes de imports, consistência de nomes de variáveis e prevenção de duplicação de código
- Eficiência em relação ao custo: ainda são necessárias correções complexas e refatoração, então uma abordagem em etapas continua sendo mais barata no longo prazo
Resumo das opiniões da comunidade
Experiências positivas (ganho de produtividade de 3x a 5x)
- Site em Next.js: construção, em poucos minutos, de um site totalmente funcional e pronto para deploy a partir do zero
- Implementação de funcionalidade complexa: criação do recurso de threads em um app de chat em 3 a 4 minutos (algo estimado em 3 dias de trabalho)
- Com abordagem estruturada: regras claras, contexto suficiente e validação passo a passo podem levar a sucessos consistentes
Experiências negativas (ainda impraticável hoje)
- Produção de código espaguete: ao receber objetivos muito amplos, o modelo tende a deixar de atualizar documentação ou de apagar arquivos restantes
- Erros semânticos: tecnicamente funciona, mas com problemas estruturais, como colocar código no lugar errado ou reimplementar funções já existentes
- Falha em execuções longas: rastreamentos com mais de 5 minutos de duração geralmente acabam produzindo resultados inúteis
1 comentários
Comentários do Hacker News
gpt-5-high) enquanto passeava com o cachorro. Testei o resultado e funcionou bem. Fiquei satisfeito por agora poder distribuir como um binário único, sem ambiente virtual. Não sei se o comando era tão simples assimhello world. Até desenvolvedores veteranos dizem que a IA escreveu mais da metade do codebase, mas depois admitem que quase tudo foi descartado e só partes foram usadas como referência. A conversa de “prompt único → app pronto” logo vira “é útil quando você precisa de motivação diante de uma tela em branco”. Eu gostaria que houvesse mais transparência sobre como profissionais de fato usam isso no trabalho realagent-osé essencialv0, Lovable e afins como a próxima grande inovação. As respostas da liderança são todas parecidas (vídeo relacionado). Mas, na prática, por mais que você crie coisas comoCLAUDE.mdoucursorrules, quase não faz diferença. No fim, o LLM precisa seguir instruções, mas na prática parece aleatório. Ele quase não obedece nem regras muito simples, então acabo achando que quem posta no fórum do Cursor parece tudo amador. E, além disso, LLMs são realmente ruins para trabalho de código novo. Assumem bibliotecas que nem existem e produzem texto inútil. Eu literalmente uso mais comospeech-to-text, porque os LLMs conseguem pegar melhor casos de borda que eu deixei passar, boas práticas que eu não conhecia, sintaxe etc.compaction. Também implementou abordagens que eu só esperaria ver em livro, e confirmei na prática que funcionavam. Talvez haja pouca coisa realmente nova e “inovadora”, mas, na verdade, quase nenhum código é realmente novo. Pela minha experiência, se você dá instruções com base em um guia bem estruturado, ele costuma seguir muito bem. Não basta simplesmente jogar qualquer coisa numCLAUDE.md. O ponto-chave é orientar cuidadosamente o processo. Meu fluxo de trabalho se divide em: 1) guia de depuração por projeto, 2) critérios de aceitação claros, 3) executar testes com frequência e mandar registrar pequenas mudanças por unidade em arquivos. Desse jeito, consigo deixar o Claude trabalhando por horas quase sem supervisão (só dando um “continue” no meio ou usando/compact). Ele não entrega código perfeito toda vez, mas eu também não. Ainda assim, no geral isso tem levado a mudanças positivas e reduzido bastante meu esforço. Eu ainda não recomendaria bootstrap sem um design bem pensado, mas às vezes ele até consegue fazer isso também (desde que com revisão prévia). Hoje em dia já penso em deixar o Claude resolvendo problemas sem parar por diascodex-cli. Conseguiu lidar tranquilamente com fontes de estrutura muito incomum, converter traces internos de execução em SVG para um formato customizado de grafo JSON, e até extrair documentação com precisão de um codebase Python/C++ complexo, incluindo um kernel RISCV de baixo nível. Tenho muita curiosidade sobre o motivo de resultados tão diferentes com a mesma ferramentared-test-writer,minimal-green-implementererefactorer. Agora basta digitar no Claude Code algo como “crie a funcionalidade X com este processo de TDD” e, em 30 minutos, sai um resultado com código muito melhor, 90% de cobertura de testes e pronto para aceitação imediata. Isso se apoia em anos de experiência com XP, programação em par e TDD, mas já faz mais de um ano que 95% do nosso código de produção é escrito por IA (incluindo funcionalidades complexas e não triviais). Não existe nenhum segredo especial; simplesmente funciona muito bem para nósclaude code,codex,copilotetc.), casos de falha/sucesso e até o nível de proficiência com LLM. Também importa se o engenheiro trabalha há 10 anos no mesmo codebase ou alterna entre vários projetos, se é desenvolvimento novo (greenfield) ou manutenção, pesquisa inovadora ou CRUD, e assim por diantenp.random”. Isso é surpreendentemente absurdo. Quando funciona, é fantástico; quando não funciona, nem há sinal de falha. Do ponto de vista do marketing de LLMs, até imagino um agente tipo “PIPA (Performance Improvement Plan Agent)” acompanhando o agente de programação e monitorando em tempo real se ele está fazendo o trabalho direito. O PIPA avaliaria o desempenho do agente de programação, e RH ou a gestão passariam a gerenciar funcionários de IA (agentes). Talvez o futuro venha por esse caminhoConstrained)