Ir al contenido

Ejecutar agentes en paralelo

Esta guía muestra cómo ejecutar varios agentes al mismo tiempo sin que se sobrescriban entre sí.

La unidad de aislamiento es el espacio, no el agente

Sección titulada «La unidad de aislamiento es el espacio, no el agente»

Cuando empieza trabajo en un espacio, Control Center aprovisiona un checkout de copia en escritura por cada repositorio registrado bajo la raíz propia de ese espacio, en una rama derivada de la plantilla de rama del espacio de trabajo. Después, cada agente del espacio recibe su propio directorio de trabajo overlay, pero los overlays comparten el directorio repos/ de ese espacio.

Por lo tanto:

  • Dos agentes en espacios diferentes trabajan en checkouts diferentes, en ramas diferentes. Eso es aislamiento real.
  • Dos agentes en el mismo espacio trabajan en el mismo checkout, en la misma rama. Sus rutas de overlay difieren, así que el bloqueo de ruta del despacho (que serializa las ejecuciones solo cuando solicitan el mismo directorio de trabajo) tampoco los serializa a ellos. Pueden escribir los mismos archivos al mismo tiempo.

De ahí se deduce la regla: un espacio por tarea en paralelo.

Ejecutar tareas en paralelo — espacios separados

Sección titulada «Ejecutar tareas en paralelo — espacios separados»
  1. Abre un espacio con el agente A y envíale una tarea.
  2. Abre un segundo espacio con el agente B y envíale otra tarea.
  3. Ambos se despachan de inmediato, cada uno en el checkout de su espacio y en su propia rama.

Esta es la receta que debes usar siempre que los agentes vayan a editar archivos.

Colaborar en un mismo espacio — varias menciones

Sección titulada «Colaborar en un mismo espacio — varias menciones»

En un mismo espacio, menciona con @ a más de un agente:

@alice refactor the auth module. @bob review what alice lands.

Ambos agentes se despachan en paralelo y transmiten al mismo espacio, etiquetados por el remitente. Como comparten el checkout del espacio, usa esto para colaborar —uno escribe y otro lee, o dos agentes razonando sobre el mismo árbol—, no para dos ediciones independientes.

La plantilla pr_review integrada es el ejemplo incluido de un reparto en abanico: varios nodos revisores se ejecutan a la vez a partir de un único disparador y un nodo Consolidate (join) pliega sus hallazgos en un solo informe. Ejecútala desde la pantalla de pipelines y cada revisor se despacha en paralelo.

El editor de pipelines oculta el centinela terminal y lo recablea para que espere a todos los sumideros activos cuando agregas o conectas un paso, así que las ramas que dibujas tú mismo sí se ejecutan.

Observabilidad → En vivo (pie de la barra lateral → Observabilidad y, después, la pestaña En vivo) muestra la lista de agentes de este espacio de trabajo, actualizada cada segundo: estado (En ejecución / Inactivo / Aparcado / Abortado), qué está haciendo cada uno, los tokens y el costo de su última ejecución y un control para detener un proceso en ejecución. Al seleccionar una fila se acopla un cajón con la transcripción en vivo.

Ajustes → Espacio de trabajo → Agentes muestra esa misma lista con un vocabulario de estados distinto, que prioriza la atención y se deriva del historial de ejecuciones de cada agente —en ejecución, bloqueado, fallido, inactivo, nunca ejecutado—, ordenada de modo que todo lo que necesita atención quede arriba. La pestaña Registros de cada agente contiene su propio historial de ejecuciones.

Ambas superficies se limitan al espacio de trabajo activo.

Entre espacios, cada espacio está en su propia rama, así que una colisión aparece como un conflicto de fusión de Git normal cuando fusionas la segunda pull request. Resuélvelo como resolverías cualquier conflicto de fusión.

Dentro de un mismo espacio no hay frontera de rama ni bloqueo: los agentes escriben los mismos archivos en vivo y al perdedor se le sobrescribe sin más. Si te ves con la necesidad de que dos agentes editen en un mismo espacio, reparte el trabajo en dos espacios.

Para reducir las colisiones en cualquiera de los dos casos:

  • Dale a cada agente un ámbito distinto: archivos diferentes, módulos diferentes.
  • Usa el grafo de código para comprobar qué toca un cambio antes de despachar. Consulta Buscar código con el grafo de código.
  • Revisa y fusiona la pull request de cada agente sin demora.

Cada agente en ejecución cuesta:

  • Un checkout del espacio: insignificante en disco mientras esté disponible la copia en escritura; en Windows, un git worktree. Un sistema de archivos que no puede hacer reflink hace fallar el aprovisionamiento en lugar de copiar.
  • Un proceso en el host del servidor
  • Tokens del modelo, que se acumulan por agente

Los costos aparecen en Observabilidad → Resumen. Ten en cuenta que un turno interactivo normal no tiene tope de gasto; consulta Administrar costos para ver los dos comandos que sí lo tienen.