O que um bolão da Copa me ensinou sobre orquestrar agentes de IA
Como você costuma estudar as novidades do mundo de IA? Eu gosto de pegar pequenos problemas do meu dia a dia onde posso automatizar algo ou criar algo novo. Para a copa do mundo surgiu a oportunidade de fazer para o grupo de amigos um bolão no esquema de vibe coding (programar conversando com a IA, sem escrever quase nada à mão). Minha rotina já é muito corrida com trabalho e gêmeos em casa pra cuidar então pensei em testar esteiras de manutenção automática para manter o bolão e ser algo democrático com a galera abrindo issues no Github pra pedir features.
Construindo o app sem gastar um centavo
Comecei usando o Codex para criar a base, para one shots (resolver a tarefa numa única passada) tenho achado que ele funciona muito bem. Em menos de um dia tinha o app pronto e testado. Porém ainda tinha um problema de sincronizar todos os jogos da copa (essa copa tem muito jogo inclusive). Por sorte existe uma API semiaberta com a qual consegui montar a sincronia dos jogos.
Depois o problema foi como fazer um deploy e usar banco de dados sem pagar um centavo. Hoje Vercel e Supabase se conectam muito bem ao GitHub e dá pra você usar o free tier para esses projetos pessoais. Tive também que integrar o Resend para disparar os links de login para quem se cadastrava no bolão.
No print você pode ver que tem um "Sincronizar odds", baseado em bolões passados um amigo meu sugeriu que se você escolhesse um time com menos chance de ganhar você deveria ganhar mais pontos. Mais uma complicação pra um bolão que era pra não dar trabalho 😅
O agente de manutenção entra em campo
Mas depois de tudo pronto e a copa começando foi que eu tive que implementar um agente de manutenção da aplicação. Como já estava usando o Codex e ele tem uma gestão de tarefas agendadas resolvi utilizar ele para pegar uma issue no github, fazer um trabalho e abrir uma PR para revisão.
Ótimo! O pessoal abriu várias issues e o Codex abriu 2 PRs e acabou os tokens. Zero otimizado os modelos e os esforços.
Como tenho a assinatura do Opencode Go resolvi fazer algumas mudanças para testar. Coloquei os modelos mais leves de lá pra testar — os modelos mais leves erravam mais o escopo da issue e geravam diffs que eu não conseguia mergear direto, infelizmente não chegaram perto do GPT 5.5. Mudei para o GLM 5.1 pra testar e também encontrei a barreira dos tokens. Resumindo: troquei de modelo duas vezes e esbarrei sempre no mesmo teto de tokens. Nesse ponto já estava pensando que gastaria menos tempo codificando eu mesmo o app.
Orquestrando os agentes
Tentei então orquestrar os agentes. Coloquei o Codex para chamar o Opencode, Codex como orquestrador / planejador e Opencode com Kimi como executor.
Com isso tive algum sucesso e muitos problemas, misturar o Codex rodando sozinho (headless) chamando o Opencode deu muitos problemas de permissão dentro do Codex e de uso de recursos — o Codex abria várias instâncias do Opencode que ficavam meio perdidas e não morriam.
Resolvi então focar tudo no Opencode e usar ele pra chamar novos processos headless de novos Opencode pra cada issue. Também esbarrei em problemas de permissão e recursos. Lição aprendida: Não só mude a ferramenta, mude também o fluxo.
O que finalmente funcionou
Por fim o que deu certo foi executar tudo dentro do Opencode com um agente orquestrador principal chamando sub agentes para cada task e para criar cada um uma PR. E ao invés de usar a automação do Codex usar o cron nativo do meu computador.
Funcionou melhor do que o esperado, as PRs foram bem feitas. Depois disso pedi pro orquestrador para que olhasse as PRs abertas para poder trabalhar nas revisões feitas por mim e outros usuários. Agora sim quase todo o trabalho braçal do repo estava nas mãos da IA: ela abre e trata as PRs, eu fico só na revisão final 🙌
Trabalho futuro
Hoje o cron funciona de hora em hora, muitas vezes sem necessidade. Poderíamos integrar nos hooks do GitHub para só acionar o agente quando necessário.
Agora com essa POC concluída consigo ter mais ideia de como usar as ferramentas e seus harness para automatizar algumas tarefas em repositórios da GoBots. Essa semana mesmo começamos os trabalhos na ferramenta interna de desenvolvimento autônomo.
A copa só está começando, algumas adaptações ainda serão feitas. Bora torcer pro Brasil ser campeão porque no bolão está difícil aqui:
Agradecimento
Nada disso teria graça sem a galera do meu grupo do bolão no WhatsApp. Obrigado por toparem ser as cobaias dessa experiência, por abrirem chamados no GitHub pedindo features — principalmente o Igor com seus relatos detalhados — e por aguentarem os bugs que apareceram no caminho. Vocês transformaram um projeto pessoal num parquinho de testes muito mais divertido. Que vença o melhor palpiteiro (e que venha o hexa!).