Caso 04 · Orquestación de agentes de IA

Varios agentes de IA programando a la vez, sin perder el control

Orch reparte un proyecto en tareas y se las da a varios agentes de IA que programan en paralelo, cuida que no se agote la cuota de cada proveedor y le muestra al cliente el avance en una página en vivo.

Go · SQLite · Claude, Codex, Gemini y otros
5
agentes de IA compatibles
31
errores ocultos encontrados al reescribirlo

El problema del cliente

Quien construye software con agentes de IA (un freelancer, una agencia pequeña) choca siempre con los mismos tres problemas. Si corre un agente a la vez, el trabajo avanza lento. Si corre varios, agota en una hora la cuota del proveedor y se queda parado el resto del día. Y cada vez que el cliente pregunta “¿cómo va?”, tiene que armar a mano un informe de avance.

Orch nació para dejar de vigilar agentes uno por uno y para que el cliente vea el progreso sin tener que preguntar.

Arquitectura

  1. El proyecto se describe en documentos de especificación. Orch los convierte en una lista de tareas con sus dependencias: qué puede hacerse ya y qué tiene que esperar a otra cosa.
  2. Reparte las tareas listas entre varios agentes de IA a la vez (Claude, Codex, Gemini y otros dos). Cada agente trabaja en su propia copia del código, así no se pisan entre ellos.
  3. Antes de lanzar cada tarea revisa el presupuesto: lleva la cuenta de cuánto consumió cada proveedor en las últimas horas y frena antes de llegar al tope.
  4. Cuando un agente termina, Orch abre la propuesta de cambio y espera las pruebas automáticas. Si pasan, la marca como terminada. Si fallan, se la devuelve al agente con el error. Al tercer intento usa un modelo más capaz.
  5. El cliente recibe un link a una página con el avance en vivo. El resumen se arma con reglas fijas, sin IA, y el gasto queda oculto por defecto.

Todo corre en la máquina de quien lo usa, con sus propias cuentas y claves. No hay un servicio en la nube de por medio.

La decisión difícil y por qué

La primera versión estaba escrita en Python. Funcionaba, pero instalarla pedía preparar un entorno de Python, y en ese paso mucha gente abandona.

La reescribimos en Go para que se instale como un solo archivo, sin dependencias. No fue por velocidad: el trabajo de Orch es vigilar procesos durante horas, guardar estado y servir una página, y eso Go lo resuelve con su librería estándar. Descartamos Rust porque, siendo el primer proyecto en ese lenguaje, habría duplicado el tiempo.

Para que la reescritura no se alargara, recortamos a propósito: tres pantallas del panel, un generador de diagramas y un comando poco usado quedaron afuera.

Qué se rompió en el camino

Reescribir en Go destapó 31 errores que la versión en Python tenía escondidos, a pesar de sus 1.530 pruebas automáticas en verde. Los más graves:

  • El control de presupuesto no frenaba nada. Con 750.000 tokens consumidos contra un tope de 600, seguía lanzando tareas.
  • Nunca detectaba si las pruebas pasaban. Le pedía a GitHub un dato con un nombre que no existe, así que esperaba para siempre.
  • Podía lanzar la misma tarea dos veces, porque ignoraba la pausa entre reintentos.
  • La página del cliente mostraba el gasto aunque estuviera configurada para ocultarlo.

Cada error se corrigió con una prueba que lo reproduce, y de esa experiencia salieron ocho reglas nuevas de revisión. Por ejemplo: probar con datos reales y no con ejemplos inventados.

Resultado

  • Se instala como un único archivo y funciona con 5 agentes de IA distintos.
  • Tiene 1.375 pruebas automáticas.
  • Es código abierto y va por la versión 0.16.
  • Orch se desarrolla usando Orch: las tareas de cada versión las ejecutan sus propios agentes.