Codex Corrigindo Codex: Um Loop de Consenso
Eu construí um loop de agentes que faz mais do que apenas sugerir código. Ele escreve o código, revisa-o e realiza o merge de seus próprios pull requests.
Para testá-lo, direcionei o loop para um fork da CLI do codex. Deixei que os agentes tentassem corrigir o software por conta própria. Este é um experimento puro. O fork não tem usuários nem estrelas. Trata-se do mecanismo, não de um produto.
Veja como o loop funciona:
- Entrada: Um bug upstream torna-se uma issue no fork. O loop seleciona apenas bugs pequenos e mecânicos que consegue finalizar.
- Solucionadores Argumentam: Múltiplos agentes propõem diferentes correções. Um solucionador quer a menor alteração possível. Outro quer uma estrutura limpa. Um terceiro quer deletar código em vez de adicioná-lo. Eles discordam.
- Juiz Arbitra: Um juiz lê o debate. Se os solucionadores discordarem, o juiz os envia de volta para mais rodadas. O juiz também registra o motivo pelo qual rejeitou certas ideias.
- Implementação e Merge: Assim que chegam a um consenso, o loop escreve o patch, executa os testes e abre um PR. Se os testes passarem, ele mesmo realiza o merge.
Você pode ver isso em ação na issue #34. Os agentes debateram um bug de concorrência. Eles passaram por três rodadas de arbitragem antes de chegarem a uma decisão. O loop produziu uma correção real e um teste de regressão sem que um humano digitasse uma única linha de código.
Um resultado interessante aconteceu no PR #16. O loop não conseguiu reproduzir um bug relatado. Em vez de inventar uma correção falsa, ele simplesmente adicionou um teste para travar o comportamento e parou. Um loop que sabe quando não aplicar um patch é mais útil do que um que sempre produz um diff.
O loop realizou o merge de cerca de 16 PRs até agora. Ele lida com tarefas pequenas, como o tratamento de UTF-8 e correções de comandos. Ele não mantém uma base de código inteira, mas fecha bugs pequenos e delimitados do início ao fim.
Os humanos ainda definem as regras e revisam o trabalho. Nós ainda verificamos cada PR. O código é automático, mas a atenção é humana.
Você pode ver todo o processo no GitHub. Veja a issue #34 e o PR #37 para acompanhar o debate.
Comunidade de aprendizado opcional: https://t.me/GyaanSetuAi