
Fundamentos de engenharia importam mais na era dos agentes
A capacidade de fazer não basta
O texto argumenta que a expansão dos agentes de programação torna os fundamentos da engenharia de software mais importantes, não menos. Nos últimos meses, os ambientes que combinam modelos de linguagem e estruturas de execução para agentes teriam ultrapassado a fase de provar que algo é possível; além disso, modelos de pesos abertos estariam tornando computadores pessoais relativamente potentes para tarefas semelhantes, ainda que com alguma perda de eficácia e velocidade.
Para o autor, “conseguir fazer” é apenas o começo do trabalho de um engenheiro de software ou de sistemas. Ele compara a situação a aprender a soldar e produzir rapidamente objetos grandes demais para serem levantados ou retirados da oficina: o modo como as partes se encaixam é decisivo. Com alguma previsão e instruções adequadas, agentes podem entregar código que funciona e até código testável, especialmente quando se usa desenvolvimento orientado por testes no ciclo vermelho/verde. Porém, isso não garante que o sistema seja sólido em níveis mais altos.
O problema está nas conexões
As “costuras” do software - o funcionamento interno do código, suas interfaces de programação e sua integração com outros sistemas - envolvem tanto ciência quanto julgamento. Avaliar essas escolhas depende do ponto de vista, da experiência e de previsões sobre o problema atual e sobre a convivência prolongada com o software. Torná-lo depurável, sustentável, organizado em camadas e composto por partes reutilizáveis ainda exige trabalho difícil e raciocínio cuidadoso.
O autor sustenta que os modelos de linguagem atuais, inclusive os de fronteira, ficam aquém desse tipo de raciocínio. Eles predizem continuidades a partir de conhecimento humano comprimido nos modelos; por isso, podem reproduzir rastros de raciocínio presentes nos dados, mas isso não equivaleria a raciocinar por conta própria. Pesquisas sobre previsão dos resultados de ações e modelos JEPA são citadas como áreas diferentes e promissoras, mas o texto ressalta que essa capacidade ainda não está disponível nos agentes de programação atuais.
Ainda assim, há maneiras de aumentar a eficácia dos modelos. Entre os ganhos observados estão fornecer dados bons e concisos no momento certo e usar ferramentas determinísticas de validação, acompanhadas de instruções em linguagem natural para que o modelo corrija seus resultados. Para o autor, o aspecto mais impressionante não é a previsão do que escrever, mas a capacidade de chamar ferramentas e seguir instruções.
Limites e exigências para o engenheiro
Essa obediência também cria riscos. Modelos não distinguem de modo confiável conselhos bons de conselhos ruins e seriam fundamentalmente incapazes de impedir sempre ataques de injeção de comando. Trabalho de alinhamento, mecanismos de segurança e ambientes isolados podem criar barreiras contra os piores efeitos, mas não eliminam as lacunas. Um sistema que segue instruções incansavelmente sem bom raciocínio é apresentado como particularmente preocupante.
O autor espera avanços próximos no treinamento, incluindo rastros de raciocínio em etapas posteriores, e gostaria que avaliações reforçadas incorporassem interfaces limpas, depuração e manutenção. Revisar, planejar e corrigir as conexões entre partes do software continuaria sendo uma habilidade central, com ou sem assistentes agentivos. A conclusão não é que exista uma solução única: desenvolver software envolve administrar a carga cognitiva, escolher abstrações adequadas e decidir o que deve permanecer estável ou flexível. A automação pode ampliar o conjunto de ferramentas, mas não substitui essas escolhas nem os compromissos envolvidos.