The Claude Bible
Inicio / Orquestación multi-agente
Nivel: Experto · 11 lecciones

Orquestación multi-agente

Fan-out, pipelines, verificación adversarial, paneles de jueces. Poner flotas de agentes a trabajar.

Abrir el curso interactivo212 lecciones, cuestionarios, ejercicios, 3 idiomas, gratis.

Fan-out paralelo vs pipeline

Orquestar varios agentes es elegir una topología. Las dos primitivas:

La trampa clásica: poner una barrera (paralelo) donde bastaría un pipeline, solo porque el código parece más limpio. Una barrera solo se justifica si la etapa N necesita el resultado completo de la etapa N-1 (fusión, deduplicación, salida anticipada si es cero). De lo contrario, pipeline.

Aplicación concreta en el caso de Pierre: sus auditorías SEO multilingües (Eskimoz en 4 idiomas) son fan-outs; un agente por idioma, agregación al final. Su regla de modelos aplica: Haiku/Sonnet para los agentes masivos, Opus para la síntesis.

Puntos clave
  • Paralelo/fan-out: N agentes a la vez + barrera, cuando se quiere todo junto
  • Pipeline: cada elemento recorre las etapas sin barrera (opción por defecto para múltiples etapas)
  • Barrera justificada solo si la etapa N necesita el resultado completo de N-1
  • Agentes masivos en Haiku/Sonnet, síntesis en Opus

Verificación adversarial y paneles de jueces

Un agente que encuentra errores o hallazgos produce resultados plausibles pero falsos (alucinación, de nuevo). La solución de orquestación: hacer que cada hallazgo sea verificado por otros agentes antes de conservarlo.

Patrones de calidad:

Principio rector: la confianza surge de perspectivas independientes que se contradicen entre sí, no de un agente seguro de sí mismo. Es exactamente el espíritu del reflejo de Pierre "reproducir vía Playwright antes de corregir": verificar antes de creer, aplicado a escala de agentes.

Puntos clave
  • Verificar cada hallazgo con otros agentes antes de conservarlo
  • Adversarial: N escépticos refutan; conservar si la mayoría no logra refutar
  • Multi-perspectiva: ángulos diferentes; panel de jueces: N soluciones puntuadas
  • Bucle hasta el agotamiento para búsquedas de tamaño desconocido; verificar antes de creer

Workflows: orquestación determinista

Cuando la orquestación se vuelve compleja (bucles, condiciones, fan-out, presupuestos), se pasa de un agente improvisador a un workflow: un script que orquesta los subagentes de forma determinista. El flujo de control (quién se ejecuta, cuándo, en paralelo o en serie) está codificado, no lo decide el modelo.

Bloques de construcción típicos de un motor de workflow:

La ventaja frente a un solo agente grande: la estructura (descomponer y cubrir en paralelo), la confianza (verificar antes de concluir) y la escala (migraciones o auditorías que un único contexto no podría contener). Usted permanece en el bucle: lee cada resultado antes de decidir el siguiente paso. Es el nivel más avanzado, reservado para tareas que realmente lo justifican, porque consume muchos tokens.

Puntos clave
  • Workflow = script que orquesta subagentes de forma determinista
  • Bloques: agent(schema), pipeline, parallel, bucles until-count/dry/budget
  • Para: estructura, confianza (verificar), escala (migraciones/auditorías masivas)
  • Consume muchos tokens: reservar para tareas que lo justifiquen

Barrera o sin barrera

En un pipeline multi-agente (una cadena de agentes de IA donde cada uno realiza una tarea específica), debe decidir en cada transferencia: el siguiente paso necesita esperar todos los resultados anteriores, o puede comenzar en cuanto llegue cualquier resultado. Esa decisión se llama colocar una barrera (o no).

Una barrera es un punto de sincronización. Ningún agente posterior a la barrera comienza hasta que todos los agentes anteriores hayan terminado. Esta es la opción correcta cuando el siguiente paso genuinamente necesita el panorama completo antes de poder actuar. Un funcionamiento sin barrera (también llamado streaming o fan-in sin espera) permite que los resultados fluyan de uno en uno a medida que llegan, de modo que el trabajo posterior comienza de inmediato.

Hágase una sola pregunta: "¿Puede el siguiente paso producir un resultado correcto con solo datos parciales?" Si la respuesta es sí, omita la barrera. Si es no, agregue una. Equivocarse en cualquier dirección tiene un costo: una barrera innecesaria serializa lo que podría ejecutarse en paralelo, desperdiciando tiempo; una barrera faltante corrompe los resultados porque los agentes posteriores actúan sobre información incompleta.

Puntos clave
  • Una barrera retiene a todos los agentes posteriores hasta que cada agente anterior haya terminado.
  • Omita la barrera cuando cada resultado sea accionable de forma independiente.
  • Las barreras innecesarias serializan el trabajo en paralelo y desperdician tiempo.
  • Las barreras de quorum (esperar N de M) son un término medio válido.

Iterar hasta agotar

Algunas tareas tienen una frontera desconocida: no se sabe cuántos elementos existen hasta haber terminado de recopilarlos. La paginación, los recorridos recursivos de directorios y el rastreo iterativo de la web comparten esta forma. El patrón adecuado es un bucle de agotamiento: repetir una ronda de búsqueda o recuperación, recopilar los nuevos resultados y detenerse solo cuando una ronda no devuelva nada nuevo.

En un contexto multiagente (donde varias instancias de Claude se pasan trabajo entre sí), el agente orquestador ejecuta el bucle y distribuye cada lote a los agentes trabajadores. El orquestador mantiene un conjunto visto, una colección deduplicada de todo lo que ya se ha procesado, y compara cada nueva ronda con él. Cuando el conjunto deja de crecer, el bucle termina.

Claude Code admite este patrón mediante comandos de shell encadenados y llamadas a subagentes. Un bucle mínimo en una tarea de Claude Code tiene este aspecto:

  1. Ejecutar una búsqueda o llamada a la API y capturar la salida.
  2. Comparar la salida con el conjunto visto.
  3. Si la diferencia no está vacía, agregar los nuevos elementos al conjunto visto, enviar el trabajo y volver al paso 1.
  4. Si la diferencia está vacía, detenerse e informar.

Dos salvaguardas son obligatorias: un límite máximo de rondas (por ejemplo, 50 iteraciones) para evitar bucles infinitos causados por errores o comportamientos inesperados de la API, y trabajadores idempotentes (trabajadores que producen el mismo resultado si procesan accidentalmente el mismo elemento dos veces). Sin estas protecciones, un bucle de agotamiento puede ejecutarse indefinidamente o corromper los resultados.

Puntos clave
  • Bucle de agotamiento: repetir hasta que una ronda no devuelva nada nuevo
  • Conjunto visto: registro deduplicado de los elementos ya procesados
  • El orquestador distribuye el trabajo; los trabajadores son idempotentes
  • Siempre limitar el número máximo de rondas para evitar bucles infinitos

Worktrees para agentes en paralelo

Cuando ejecutas varios agentes Claude Code a la vez, todos operan de forma predeterminada sobre los mismos archivos del repositorio. Si dos agentes editan el mismo archivo de manera simultánea, uno sobreescribirá el trabajo del otro. Los Git worktrees resuelven esto: un worktree es un directorio de trabajo adicional vinculado al mismo repositorio, extraído en su propia rama, de modo que cada agente dispone de archivos aislados sin ninguna superposición.

Creas un worktree con git worktree add. Cada worktree tiene su propia rama y su propia copia de los archivos de trabajo en disco. Los agentes se ejecutan en directorios separados y nunca tocan los archivos de los demás. Cuando su trabajo termina, fusionas las ramas de la manera habitual.

Claude Code admite este patrón directamente. El comando /worktrees (y el flag --worktree al lanzar un sub-agente) indica a un agente en qué ruta de worktree debe operar. El agente orquestador crea los worktrees, asigna uno a cada sub-agente y luego espera a que todos terminen antes de fusionar.

Puntos clave
  • git worktree add crea un directorio de trabajo aislado en una rama separada
  • cada agente paralelo apunta a un worktree para que los archivos nunca colisionen
  • el orquestador fusiona las ramas una vez que todos los agentes terminan
  • git worktree remove realiza la limpieza al finalizar

Despachar agentes en paralelo

Cuando una tarea puede dividirse en partes independientes, ejecutar esas partes una tras otra desperdicia tiempo. El fan-out consiste en lanzar varios agentes (o subprocesos) al mismo tiempo, cada uno gestionando una porción distinta del trabajo, y luego recopilar todos los resultados cuando terminan. Claude Code admite este patrón mediante la herramienta Agent, que permite a un agente orquestador crear agentes hijos.

La regla fundamental es la independencia: las tareas que se distribuyen en fan-out no deben depender del resultado de las demás. Si la tarea B necesita que la tarea A termine primero, ambas deben permanecer en secuencia. Buenos candidatos para el fan-out incluyen: auditar archivos separados, traducir el mismo contenido a varios idiomas, ejecutar el mismo prompt sobre distintos conjuntos de datos o recuperar varias URLs en paralelo.

Un flujo de trabajo fan-out típico tiene tres etapas:

  1. Descomponer: el orquestador divide el objetivo en N subtareas independientes.
  2. Despachar: llama a la herramienta Agent N veces, una llamada por subtarea, sin esperar entre llamadas.
  3. Recopilar: cuando todos los agentes responden, el orquestador fusiona o resume los resultados.

En Claude Code también es posible hacer fan-out a nivel de shell usando --print (modo no interactivo) y procesos en segundo plano, y luego unir las salidas. Esto funciona bien para tareas simples donde se controla directamente el entorno de shell.

Puntos clave
  • Fan-out: lanzar subtareas independientes de forma simultánea en lugar de secuencial.
  • Orquestador: el agente padre que despacha y luego recopila los agentes hijos.
  • Verificación de independencia: el fan-out solo funciona cuando las subtareas no comparten dependencias.
  • Fase de recopilación: fusionar o resumir todas las salidas de los agentes una vez que completan.

Escalar un fan-out con presupuesto controlado

Un fan-out ocurre cuando un orquestador (el agente coordinador) lanza múltiples sub-agentes en paralelo para abordar distintas partes de un problema al mismo tiempo. Cada sub-agente consume tokens, por lo que el costo total de una ejecución de fan-out equivale a la suma de los tokens de entrada y salida de cada agente. Sin planificación, los costos se disparan rápidamente.

El primer mecanismo es la selección del modelo por tarea. No todos los sub-agentes necesitan el modelo más capaz. Asigne claude-opus-4-8 únicamente a las tareas que requieren razonamiento profundo, como decisiones de arquitectura o análisis ambiguos. Use claude-sonnet-4-6 para trabajos de complejidad media, como la generación de código, y claude-haiku-4-5 para tareas simples de alto volumen, como clasificación, formateo o extracción. Esto por sí solo puede reducir el costo de una ejecución en un 80 % o más.

El segundo mecanismo es el recorte de contexto. La entrada de cada agente se factura en su totalidad. Pase únicamente la parte del contexto que ese agente realmente necesita: un archivo relevante, un resumen breve o un objeto estructurado en lugar del historial completo de la conversación. El prompt caching (reutilizar un prefijo común entre agentes) reduce aún más los cargos por contexto repetido cuando varios agentes comparten un prompt de sistema extenso o un documento de referencia.

Controles presupuestarios prácticos que debe aplicar antes de lanzar una flota de agentes:

Puntos clave
  • Asigne modelos según la complejidad de la tarea, no por costumbre
  • Recorte el contexto de cada agente a lo estrictamente necesario
  • Limite max_tokens y el número de agentes antes del lanzamiento
  • Use prompt caching para prefijos compartidos entre agentes

Schemas para datos de agente limpios

En un pipeline multi-agente (una cadena de modelos de IA que se pasan resultados entre si), la salida de un agente se convierte en la entrada del siguiente. Si esa salida es texto libre, el agente receptor debe adivinar la estructura, lo que provoca errores silenciosos. La solución es la salida estructurada: forzar al modelo a devolver los datos en un formato estricto y legible por máquinas, como JSON.

Claude admite la salida estructurada mediante el uso de herramientas. Se define un JSON Schema (una descripción formal de los campos, tipos y propiedades requeridas que se esperan) y se pasa como definición de herramienta. Claude rellena ese schema en lugar de escribir texto. El resultado es un objeto JSON que el código puede analizar y validar sin ninguna manipulación de cadenas.

Razones clave para imponer schemas en cadenas de agentes:

En Claude Code, la API de Claude (la interfaz HTTP que el agente llama de forma programática) permite pasar un array tools con una herramienta cuyo input_schema define exactamente lo que se desea recibir. Establecer tool_choice en {"type":"tool","name":"tu_herramienta"} obliga a Claude a llamar esa herramienta en cada ocasión, garantizando una salida estructurada en cada solicitud.

Puntos clave
  • La salida estructurada elimina la ambigüedad entre agentes
  • JSON Schema define exactamente los campos y tipos que Claude debe devolver
  • tool_choice fuerza una llamada a herramienta específica en cada solicitud
  • Valida el schema de inmediato para detectar errores antes de que se propaguen

Retomar y cachear un flujo de trabajo

Un flujo de trabajo multi-agente (un pipeline donde varios sub-agentes de IA manejan diferentes tareas en secuencia) puede ser costoso de volver a ejecutar desde cero cada vez que se modifica un paso. La solución es la reanudación parcial: volver a ejecutar solo los pasos cuyos datos de entrada cambiaron, y reutilizar las salidas de todo lo demás.

Claude Code admite esto mediante dos mecanismos complementarios. El caché de prompts (una función de la API de Anthropic) almacena el cálculo a nivel de tokens para un prompt de sistema largo y estable, o para un bloque de contexto, de modo que el modelo evita reprocesarlo en la siguiente llamada. Esto reduce tanto la latencia como el costo. Los aciertos de caché se facturan a aproximadamente el 10 % de la tarifa normal de tokens de entrada. El caché se indexa por el texto exacto del prefijo: incluso un solo carácter cambiado en el bloque cacheado lo invalida.

A nivel del flujo de trabajo, usted controla la reanudación mediante puntos de control (checkpoints): salidas guardadas de cada paso del agente escritas en disco o en un almacén. Al volver a ejecutar el pipeline, cada paso verifica si su checkpoint sigue siendo válido (entradas sin cambios) antes de llamar al modelo. Los patrones habituales incluyen:

En Claude Code, puede escribir esta lógica en un orquestador shell o Node que llama a claude con el indicador --print (no interactivo, imprime la respuesta y termina) y escribe cada salida en un archivo. En la siguiente ejecución, lea primero el archivo y omita por completo la llamada a claude si el checkpoint es reciente.

Puntos clave
  • El caché de prompts reduce costos al reutilizar el contexto estable entre llamadas a la API
  • Los checkpoints guardan la salida de cada paso para que solo se vuelvan a ejecutar los pasos modificados
  • Hacer hash o verificar la marca de tiempo de las entradas permite decidir si un checkpoint sigue siendo válido
  • Usar --print para llamadas a claude no interactivas dentro de scripts de orquestación

El crítico de completitud

En un pipeline multiagente (una cadena de agentes IA donde cada uno realiza una tarea concreta), el último cuello de botella rara vez es contenido incorrecto. Es contenido faltante. Un crítico de completitud es un agente final cuya única función es preguntarse: "¿Qué debería estar aquí y no está?" Revisa la salida de todos los agentes anteriores comparándola con el brief original y señala las omisiones antes de que el resultado llegue al usuario.

Este agente tiene un propósito deliberadamente acotado. No reescribe, no mejora el tono ni verifica hechos. Solo compara el alcance del brief con el alcance de la salida y devuelve una lista estructurada de omisiones. Mantenerlo acotado lo hace rápido, económico (un modelo Haiku suele ser suficiente) y fácil de probar.

Ejemplos habituales de lo que detecta un crítico de completitud:

El crítico devuelve sus hallazgos al pipeline como un diff estructurado (una lista de diferencias legible por una máquina). Un agente de segundo paso, o el orquestador en sí (el agente que coordina a todos los demás agentes), decide luego qué brechas cerrar, cuáles aceptar y cuáles escalar al humano.

Puntos clave
  • Crítico de completitud: agente que encuentra contenido faltante, no errores
  • Diff de alcance: comparar lo que pidió el brief con lo que se entregó
  • Un rol acotado hace al crítico rápido y fácil de probar
  • La salida es una lista estructurada que se devuelve al orquestador
Trabaja conmigo

Domina Claude, Claude Code y los LLM, desde tu primer prompt hasta la orquestacion multiagente.

Te gusta este curso? Lo cree de principio a fin. Necesitas una web app, una app movil, automatizacion con IA o SEO/GEO? Hablemos.

Contactame en LinkedInVer un sitio que hice