Caso 04 · Orquestração de agentes de IA

Vários agentes de IA programando ao mesmo tempo, sem perder o controle

O Orch divide um projeto em tarefas e as distribui entre vários agentes de IA que programam em paralelo, cuida para que a cota de cada fornecedor não acabe e mostra ao cliente o andamento em uma página ao vivo.

Go · SQLite · Claude, Codex, Gemini y otros
5
agentes de IA compatíveis
31
erros ocultos encontrados na reescrita

O problema do cliente

Quem constrói software com agentes de IA (um freelancer, uma agência pequena) sempre esbarra nos mesmos três problemas. Se roda um agente por vez, o trabalho anda devagar. Se roda vários, esgota a cota do fornecedor em uma hora e fica parado o resto do dia. E toda vez que o cliente pergunta “como está indo?”, precisa montar um relatório de andamento na mão.

O Orch nasceu para acabar com essa vigilância de agente por agente e para que o cliente veja o progresso sem precisar perguntar.

Arquitetura

  1. O projeto é descrito em documentos de especificação. O Orch transforma esses documentos em uma lista de tarefas com suas dependências: o que já pode ser feito e o que precisa esperar outra coisa.
  2. Ele distribui as tarefas prontas entre vários agentes de IA ao mesmo tempo (Claude, Codex, Gemini e mais dois). Cada agente trabalha na sua própria cópia do código, então um não atropela o outro.
  3. Antes de iniciar cada tarefa, ele confere o orçamento: acompanha quanto cada fornecedor consumiu nas últimas horas e para antes de chegar ao limite.
  4. Quando um agente termina, o Orch abre a proposta de mudança e espera os testes automáticos. Se passarem, marca a tarefa como concluída. Se falharem, devolve ao agente com o erro. Na terceira tentativa, usa um modelo mais capaz.
  5. O cliente recebe um link para uma página com o andamento ao vivo. O resumo é montado com regras fixas, sem IA, e os gastos ficam ocultos por padrão.

Tudo roda na máquina de quem usa, com as próprias contas e chaves. Não há nenhum serviço na nuvem no meio.

A decisão difícil e por quê

A primeira versão era escrita em Python. Funcionava, mas instalar exigia preparar um ambiente Python, e muita gente desiste nessa etapa.

Reescrevemos em Go para que ele seja instalado como um único arquivo, sem dependências. O motivo não foi velocidade: o trabalho do Orch é vigiar processos por horas, guardar estado e servir uma página, e o Go resolve isso com a biblioteca padrão. Descartamos Rust porque, sendo o primeiro projeto nessa linguagem, o tempo teria dobrado.

Para a reescrita não se arrastar, cortamos de propósito: três telas do painel, um gerador de diagramas e um comando pouco usado ficaram de fora.

O que quebrou no caminho

Reescrever em Go revelou 31 erros que a versão em Python escondia, apesar dos seus 1.530 testes automáticos passando. Os mais graves:

  • O controle de orçamento não freava nada. Com 750.000 tokens consumidos contra um limite de 600, continuava iniciando tarefas.
  • Nunca detectava se os testes tinham passado. Pedia ao GitHub um dado com um nome que não existe, então ficava esperando para sempre.
  • Podia iniciar a mesma tarefa duas vezes, porque ignorava a pausa entre tentativas.
  • A página do cliente mostrava os gastos mesmo quando estava configurada para escondê-los.

Cada erro foi corrigido com um teste que o reproduz, e dessa experiência saíram oito novas regras de revisão. Por exemplo: testar com dados reais em vez de exemplos inventados.

Resultado

  • É instalado como um único arquivo e funciona com 5 agentes de IA diferentes.
  • Tem 1.375 testes automáticos.
  • É código aberto e está na versão 0.16.
  • O Orch é desenvolvido usando o Orch: as tarefas de cada versão são executadas pelos próprios agentes.