Executando verificação de segurança...
10

Pare de deixar LLMs editarem seu código direto: Conheça a arquitetura ESAA (Event Sourcing para Agentes Autônomos)

Se você tem acompanhado o hype dos agentes autônomos (Devin, AutoGen, MetaGPT), já deve ter percebido um problema grave quando tentamos colocá-los para trabalhar em repositórios reais e complexos: a perda de estado e a falta de rastreabilidade.
Em projetos grandes, os agentes frequentemente sofrem de lost-in-the-middle (esquecem o contexto), acreditam que corrigiram um bug quando não o fizeram, ou pior, sobrescrevem arquivos burlando especificações. Quando o projeto quebra, você não tem uma trilha de auditoria clara para entender o que o agente fez e por que ele tomou aquela decisão.

Acabo de submeter um paper ao arXiv apresentando uma abordagem diferente para resolver isso. Quero compartilhar com a comunidade a arquitetura ESAA (Event Sourcing para Agentes Autônomos).

O problema: Agentes com permissão de Deus
A maioria dos frameworks atuais gerencia o estado por meio de estruturas em memória ou simplesmente lendo o snapshot atual do repositório. O agente lê o código, decide o que fazer e escreve diretamente no arquivo. Se ele errar, o "blast radius" (raio de dano) é imprevisível.

A solução: ESAA
A premissa da ESAA é simples e inspirada no CQRS e no Event Sourcing clássico: o agente não deve ter permissão de escrita direta no projeto. O agente não é um desenvolvedor com acesso root; ele é um emissor de intenções heurísticas.

A arquitetura funciona assim:
Intenção Estruturada: O agente avalia o problema e emite uma intenção estritamente validada via JSON Schema (ex: um evento agent.result com a proposta de patch ou um issue.report).

Orquestrador Determinístico: Um orquestrador valida se essa saída está dentro do contrato. Se estiver, ele persiste a ação em um log append-only (activity.jsonl).

Efeitos e Projeção: Só então o orquestrador aplica a mudança no arquivo e gera uma "visão materializada" do estado do projeto (roadmap.json), que é verificável via hash SHA-256.
O agente sempre recebe uma versão "purificada" do estado na próxima iteração, reduzindo a carga cognitiva e o uso de tokens.

Isso funciona na prática?
Validamos a arquitetura em dois cenários práticos documentados no artigo:

Estudo 1 (Landing Page): Um pipeline de agente único com 9 tarefas e 49 eventos. Tudo ocorreu com precisão cirúrgica, validando a mecânica básica.

Estudo 2 (Dashboard Clínico Multi-Agente): Aqui foi o teste de fogo. Criamos um projeto com 50 tarefas (UI, API REST, Banco de Dados, Testes). Colocamos 4 LLMs diferentes operando concorrentemente (Claude Sonnet 4.6, Codex GPT-5, Gemini 3 Pro e Claude Opus 4.6).

O resultado? O log append-only do event store serializou naturalmente a concorrência. Tivemos momentos em que múltiplos agentes reivindicaram tarefas no mesmo minuto. A execução gerou 86 eventos ao longo de 15 horas, com zero falhas de parsing (output.rejected = 0). O modelo trace-first garantiu a reprodutibilidade exata de todo o histórico.

Próximos passos
Tratar LLMs como emissores de intenção sob contrato formal, e não como editores de texto mágicos, muda o jogo da previsibilidade em Engenharia de Software baseada em IA. Você ganha time-travel debugging de brinde, podendo dar replay no log de eventos desde a estaca zero.

https://arxiv.org/abs/2602.23193

https://github.com/elzobrito/ESAA---Event-Sourcing-Agent-Architecture.git

Adoraria saber a opinião de vocês: como vocês têm lidado com a imprevisibilidade de saídas estruturadas e a rastreabilidade quando integram LLMs em pipelines de desenvolvimento reais?

Carregando publicação patrocinada...
4

Achei bem interessante a abordagem mas o que acontece quando há alucinação na interação da llm com o orquestrador? Existe um mecanismo pra identificar isso? Pois na minah cabeça pode haver um loop infinito de rejeição por conta da plm alucinar nesse contexto. Mas precisaria testar.

Porém parabéns pelo artigo e a ideia em si, achei bem bacana e vou experimentar com ela, ai volto pra dar um retorno da xp

3

As tarefas do orquestrador são muito curtas, vou ser sincero e admitir que não testei com um modelo tão simples como o gemma3:270, mas você tem razão e vou testar para ver o que acontece.

Se você testar depois me fala o que achou, eu também criei um plugin para o VSCode onde você pode acompanhar o progresso da conclusão das tarefas.

2

Muito foda a idéia..acho que voce deveria expor pra canais internacioanai e galera que viraliza para dar credito a você. É o tipo de coisa que galera da Anthropic iria adorar ler. Nao subestime

0
2

Sugestão: twitter e marcar gente famosa da nossa bolha tech e ir mandando msg. E ver galera pica de ia e mandar tbm. Fora subrredits de ia. Isos é muito bom . E por favor marque galera da anthropic. Não precisa me agradecer. Isso é nivel de coisa global man, bagulho que engenheiro de ia que trampa na anthropic cria. Por favor va gamhar em dolar 200k por ano.

1

A IDE antigravity do google bem configurada já apresenta esse tipo de trabalho, eu uso ela por padrão nem sempre ela vai esperar sua auditoria para escrever mas se tiver bem configurada funciona.

tipo: Corrija pra mim a posição dos botões da navbar

ele faz o "plano de implementação", e mostrar quais arquivos vai editar, depois da confirmar çaõ ele rescrever todos os arquivos necessário.. mas mesmo assim pergunta aceita tudo isso que escrevi ?

1

O ESAA é diferente do plano de implementação que existe no Antigravity e em todos os outros agentes de programação, e um não susbititui o outro, o ESAA é para você ter um controle maior e uma auditoria maior do que os agentes fazem, você pode ter 3 tarefas rodando em paralelo, cada uma por um agente diferente, eles vão documentar, tudo o que foi feito.

Já o plano de implementação é um modo que você habilita para que o agente planeje antes de sair programando, está disponível em todos seja Codex, Claude Code, OpenCode e o antigravity como você bem citou.

0
1

Muito bom seu projeto, também gostei muito do projeto do S1LV4 sobre "Pitch: Como reduzi em 98% o uso de contexto (e os custos) de IA no meu workflow (open-source)" postado recentemente aqui no TabNews. Ambos me parecem complementares de certa forma.

Eu mesmo estou trabalhando em um projeto próprio similar ao de vocês, me apaixonei por essa area de "harness" de IA.

Inclusive comentei no projeto do SILV4 sobre isso, criei tanto uma memória Cross-Agent/Cross-Project pra conseguir usar Claude Code, Codex, OpenCode, etc, assim posso trocar de agente e continuar o projeto, sei que AGENTS.md já serve de forma similar, mas tenho projetos que se compementam mas que eu trabalho separadamente, então uma memória compartilhada foi a melhor solução pra mim, fiz tudo via MCP e 100% local, sem necessidade de modelo de embedding.

Agora estou fazendo um projeto de orquestração com LiteLLM, OpenClaw, AgentZero, etc, vou criar uma startup de 1 homem só kkkk

Se tiver interesse em trocar figurinhas sobre agent harness, fico a disposição!

1