Por que os agentes de programação são tão burros?
A frustração está crescendo entre desenvolvedores que acham que os “agentes de programação” construídos sobre LLMs modernos ainda lutam com trabalho de software do mundo real, desde coordenar subtarefas e escolher modelos apropriados até manter a qualidade do código e seguir a arquitetura do projeto ao longo do tempo. Os comentaristas se dividem entre os que veem as limitações atuais como sintomas de harnesses e fluxos de trabalho imaturos — argumentando que, com contexto cuidadoso, ferramentas personalizadas e orquestração de agentes, os resultados podem ser excelentes — e os que acreditam que a tecnologia, fundamentalmente, entrega menos do que promete em codificação autônoma. A troca destaca uma divisão emergente: alguns engenheiros estão investindo pesado em frameworks e ferramentas próprias para agentes, enquanto outros continuam usando LLMs como assistentes, em vez de deixá-los conduzir o desenvolvimento complexo.
Sentimento geral
- Muitos concordam que os agentes de programação atuais parecem “burros” na prática, mas há uma divisão:
- Alguns dizem que modelos recentes de primeira linha, junto com melhores configurações, resolveram em grande parte os problemas do artigo.
- Outros relatam meses de frustração, especialmente em projetos não triviais e de longa duração.
Harnesses vs. modelos
- Vários argumentam que a maioria dos problemas está nos harnesses/orquestração, não nas limitações do modelo:
- Prompts padrão ruins; nenhuma ênfase em subagentes, paralelismo ou separação de papéis.
- Alguns harnesses (por exemplo, versões mais novas) conseguem criar muitas subtarefas assíncronas; outros continuam sequenciais ou frágeis.
- As pessoas descrevem orquestradores personalizados que delegam a modelos mais baratos/rápidos e usam papéis distintos.
Subagentes, paralelismo e seleção de modelo
- Experiências mistas:
- Alguns relatam resultados excelentes com agentes autônomos que pegam tickets e abrem PRs, ou executam muitos agentes em um único repositório.
- Outros acham que subagentes tornam tudo mais lento e pioram os resultados.
- A seleção dinâmica de modelo (inteligente vs. barato) ainda é, em grande parte, manual ou guiada por prompt; a estimativa totalmente automática de dificuldade é vista como difícil.
Qualidade do código e fluxos de revisão
- Muitos reclamam que código escrito por IA “funciona, mas é feio”:
- Excessivamente complicado, tipagem fraca, arquitetura pouco clara, mau “gosto”.
- Mitigações sugeridas:
- Desenvolvimento guiado por documentação; escrever especificações/docs primeiro com o agente.
- Codificar filosofia e estilo em
AGENTS.mde em documentos markdown “fonte da verdade”. - Usar hooks/subagentes de revisão que critiquem e reescrevam automaticamente o código contra estilo explícito e a “definição de pronto”.
Prompting, contexto e engenharia de ambiente
- Alguns insistem que um design cuidadoso de contexto/prompt/ambiente é essencial:
- Tratar tudo o que o modelo vê — arquivos, docs, estrutura — como parte do prompt.
- Construir ferramentas e habilidades locais em vez de depender de plugins genéricos.
- Outros rebatem, observando que a maioria dos usuários não tem tempo para passar meses construindo frameworks sob medida.
Segurança e sandboxing
- Forte preocupação com agentes com acesso ao sistema de arquivos/rede:
- Sandboxes/contêineres são recomendados, mas ainda têm riscos de fuga e de cadeia de suprimentos (por exemplo, scripts em
.git). - Alguns dão aos agentes acesso git somente leitura e os isolam nas redes.
- Sandboxes/contêineres são recomendados, mas ainda têm riscos de fuga e de cadeia de suprimentos (por exemplo, scripts em
Meta: expectativas e maturidade
- Vários dizem que a lista de desejos de recursos “óbvios” deveria vir embutida nos harnesses por padrão, mas ainda estamos no início da “era da IA”.
- Há tensão entre “se você quer, construa com um agente” e “a maioria das pessoas razoavelmente espera um comportamento melhor pronto para uso”.