Costuma começar com uma orquestração que queres empurrar de uma só vez: um brief para dentro, uma cadeia inteira de agentes a trabalhar em conjunto, um resultado acabado cá fora. E funciona, até deixar de funcionar — e ficas com um output que parece convincente, mas em que não consegues dizer onde correu mal. Algures no passo três de sete algo torceu em silêncio, e o resto da cadeia construiu tranquilamente por cima.
A maioria das pessoas usa agentes como uma slot machine: escreves um prompt, puxas a alavanca, torces. A saída não é torcer mais, nem agentes mais inteligentes — é uma camada entre a intenção e o output que se recusa a deixar passar output mau. Trata os agentes como um compilador. A ideia toda em cinquenta segundos:
https://kris-media.fsn1.your-objectstorage.com/kriscoelus/mini-courses/agent-compiler-en-001.mp4
poster: https://kris-media.fsn1.your-objectstorage.com/kriscoelus/mini-courses/agent-compiler-en-001-poster.jpg
O mapeamento é exato, não poético. A fonte é a intenção — um brief em texto estruturado, não prompt-poesia solta. As passes são os agentes, cada um com uma única tarefa estreita. Os contratos são a intermediate representation. O typechecker é feito de eval gates: primeiro os checks determinísticos baratos (compila, passam os testes, bate certo com o schema), e onde é preciso juízo, um critic agent que pontua o trabalho do passo anterior e o devolve no momento em que fica aquém. O linker junta as partes soltas num só todo. E o release gate é um humano.
Passo a passo, é isto:
agent-compiler-flow
IA que só produz é um estagiário com cafeína. Um sistema que sabe que passos têm de existir, que checks cada passo tem de sobreviver e o que acontece quando um falha — isso começa a parecer uma fábrica. Duas já correm sobre esta arquitetura: um research engine, onde cinco agentes trabalham cinco ângulos em paralelo, cada um com um critic ao lado, e depois uma coherence pass e uma synthesis pass transformam tudo num único documento; e um product engine que constrói software fase a fase, com testes a trancar cada fase. É trabalho inicial — o research engine corre, o product engine tem uma primeira versão e ainda não é autónomo de uma ponta à outra — e não-determinístico por design: o mesmo brief dá output ligeiramente diferente noutra run, e esmagar essa variação mataria o valor. O objetivo não é output idêntico, mas output que passa em todas as gates, sempre.
A mudança que realmente importa não é tornar os agentes mais inteligentes. É admitir que são pouco fiáveis e construir a verificação à volta desse facto. Um compilador não confia no programador. Verifica, e depois verifica outra vez.