A verdade nua e crua é que modelos de inteligência artificial são programadores terrivelmente otimistas. Eles olham para um componente de interface totalmente genérico e acreditam genuinamente ter criado a oitava maravilha da engenharia. Se você não tomar cuidado, eles vão entupir seu repositório de AI slop muito antes da pausa para o café.
Foi exatamente isso que Prithvi Rajasekaran, pesquisador da Anthropic, evidenciou ao analisar o comportamento desses agentes autônomos. Existe um fenômeno fascinante e destrutivo chamado ansiedade de contexto. O modelo simplesmente entra em pânico. Ele processa as diretrizes, olha para a janela de tokens consumida, acredita que vai estourar seu limite cognitivo simulado e encerra o trabalho prematuramente. Isso é exasperante. Pior do que a desistência é a leniência absurda da IA ao avaliar suas próprias criações, um traço nefasto que brilha intensamente em tarefas de julgamento subjetivo.
A máquina cospe um amontoado de código medíocre, dá um tapinha nas próprias costas e declara sucesso absoluto.
Aqui entra a salvação sombria chamada engenharia de harness. Birgitta Böckeler articulou um princípio central e inegável de que um agente de programação de verdade não é apenas o LLM. É a combinação indissociável do modelo com uma jaula arquitetural. Restrições severas. Gestão de estado neurótica. Verificação ininterrupta. Trata-se de projetar um ambiente sistêmico em ciclo fechado que governa o assistente com mão de ferro, garantindo que ele não declare vitória antes de efetivamente resolver o problema.
Toda essa estrutura soa como um pesadelo de manutenção. Honestamente, há madrugadas em que encaro minha própria base de código e me pergunto se não estamos apenas empilhando novas abstrações bizarras para compensar a preguiça artificial. Dedicar horas escrevendo amarras de validação para vigiar um robô pode não parecer o ápice da nossa evolução técnica. Mas é a única barreira viável. Sem esse governador cibernético que Böckeler descreve, o sistema colapsa rapidamente em falhas estruturais e designs plastificados.
Você implanta controles direcionais para antecipar a ação e instruir o modelo antes da primeira linha de código ser gerada. Você espalha sensores de correção que monitoram os artefatos e disparam sinais agressivos para forçar a autocorreção contínua. Essa malha de fiscalização não aceita desculpas. As verificações computacionais batem rápido e sem piedade, rodando linters e testes rigorosos puramente determinísticos. Já as execuções inferenciais são lentas e dolorosamente caras, arrastando o código por uma avaliação semântica severa.
Em vez de apostar em um modelo nativamente mais brilhante, nós construímos uma prisão lógica em volta dele. É bruto. É funcional. E salva seu projeto da mediocridade alucinatória.
Esta é a primeira parte de uma série que disseca esse novo paradigma. Nos próximos dias, publicarei outros dois artigos relacionados ao tema. Na segunda parte, explorarei como a rinha virtual das redes adversárias extermina o código ruim. Na terceira parte, discutirei a pilotagem de alto nível e o que sobra para o desenvolvedor humano.