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
- 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.
- 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.
- 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.
- 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.
- 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.