Sistemas multi-agente: orquestación y coordinación de agentes IA
Cuándo conviene un sistema multi-agente y cuándo no, los patrones de orquestación documentados, cómo coordinar agentes y el código con Vercel AI SDK 6, sin caer en la sobre-ingeniería.
Antes de construir un sistema multi-agente, la mejor recomendación —la de Anthropic en "Building effective agents"— es no construirlo: empezar con la solución más simple y subir la complejidad solo cuando se necesita. En Cognitiva, agencia chilena de IA, lo aplicamos a rajatabla, porque el multi-agente tiene un costo real: Anthropic reporta que un agente consume del orden de 4 veces más tokens que una conversación normal, y un sistema multi-agente alrededor de 15 veces más. La buena noticia es que cuando el problema lo justifica —tareas amplias, paralelizables, que exceden una sola ventana de contexto— el multi-agente rinde: su sistema de investigación superó a un agente único en más de 90% en su evaluación interna. Este artículo explica cuándo dar el salto, los patrones de orquestación documentados, cómo coordinar los agentes y cómo implementarlo con Vercel AI SDK 6, sin caer en la sobre-ingeniería.
Empieza simple: workflow antes que agente
Anthropic distingue dos cosas que se confunden. Un **workflow** orquesta LLM y herramientas por caminos de código predefinidos: es predecible y consistente. Un **agente** dirige dinámicamente su propio proceso y uso de herramientas: es flexible pero no determinista. Para tareas bien definidas, un workflow suele bastar; el agente entra cuando se necesita flexibilidad a escala.
La jerarquía de complejidad, de menor a mayor: una sola llamada al LLM con buen contexto y recuperación → un workflow con pasos fijos → un agente autónomo → un sistema multi-agente. Cada salto agrega capacidad, pero también costo, latencia y posibilidad de error en cascada. La regla: subir un escalón solo cuando el anterior se queda corto.
Cuándo multi-agente y cuándo no
Cuándo sí
Anthropic es explícito: los sistemas multi-agente funcionan mejor en tareas valiosas que involucran fuerte paralelización, información que excede una sola ventana de contexto y el uso de muchas herramientas complejas. Brillan en consultas "a lo ancho", donde hay que explorar varias direcciones independientes a la vez. Su sistema multi-agente (un agente líder con subagentes en paralelo) superó al agente único en más de 90% en su eval de investigación.
Cuándo no
El multi-agente no sirve cuando todos los agentes necesitan compartir el mismo contexto o cuando hay muchas dependencias entre ellos. El propio Anthropic da el ejemplo del código: la mayoría de las tareas de programación tienen menos paralelismo real del que parece, y los agentes todavía no coordinan bien entre sí en tiempo real. Si tu tarea es secuencial y con dependencias, un solo agente es mejor —y más barato—.
El costo manda
Como el multi-agente usa del orden de 15 veces más tokens que un chat, solo se justifica cuando el valor de la tarea paga ese sobrecosto. Anthropic encontró que el uso de tokens explica por sí solo cerca del 80% de la variación de desempeño: más capacidad cuesta más, literalmente.
Los patrones de orquestación
Anthropic documenta cinco patrones de workflow más el agente autónomo. Esta es la taxonomía de facto del sector:
- **Prompt chaining:** pasos secuenciales donde cada llamada procesa la salida de la anterior, con chequeos intermedios. Para tareas que se descomponen limpiamente (ej. redactar y luego traducir).
- **Routing:** clasifica la entrada y la dirige a una tarea especializada. Para categorías distintas mejor atendidas por separado (ej. tipos de consulta de soporte).
- **Parallelization:** subtareas independientes en paralelo (sectioning) o la misma tarea varias veces para más confianza (voting). Para velocidad o múltiples perspectivas.
- **Orchestrator-workers:** un LLM central descompone la tarea, delega en workers y sintetiza resultados. Clave: las subtareas no están predefinidas, las decide el orquestador. Para tareas complejas impredecibles.
- **Evaluator-optimizer:** un LLM genera y otro evalúa en un loop de mejora. Para criterios de evaluación claros y refinamiento iterativo.
El patrón supervisor —un agente líder que coordina y delega a subagentes especializados— es orchestrator-workers aplicado. Es el mismo patrón que LangGraph llama "supervisor" y que el SDK de OpenAI implementa con handoffs y agents-as-tools: tres nombres para la misma idea.
Coordinación: contexto, handoffs y agregación
El valor del multi-agente está en que cada subagente tiene su propia ventana de contexto: explora un aspecto distinto en paralelo y devuelve solo un resumen condensado (típicamente de 1.000 a 2.000 tokens) al agente líder. Eso comprime y escala la capacidad efectiva del sistema más allá del límite de una sola ventana.
Hay dos modelos de estado. Anthropic usa contexto aislado por diseño (cada subagente su ventana, el líder persiste su plan en memoria). LangGraph, por defecto, usa estado compartido (todos los agentes escriben en una lista común de mensajes), con la opción de aislar para no saturar el contexto de cada subagente.
Los handoffs (entregas de control entre agentes) pueden ser de dos tipos: el especialista toma el control de la conversación (útil cuando el ruteo es parte del flujo), o un agente llama a otro como herramienta para una subtarea acotada sin cederle la conversación. La agregación final la hace el líder, que sintetiza los resúmenes y decide si falta más trabajo; un buen diseño añade un paso de verificación o cita de fuentes al cierre.
Implementación con Vercel AI SDK 6
En AI SDK 6, la clase de agente production-ready es ToolLoopAgent: corre el loop de tool-calling (llama al modelo, ejecuta las herramientas, agrega los resultados, repite hasta una condición de parada). Un agente base:
import { ToolLoopAgent, tool, stepCountIs } from "ai";
import { z } from "zod";
const agente = new ToolLoopAgent({
model: "anthropic/claude-sonnet-4.5",
instructions: "Eres un asistente de investigación.",
tools: {
buscar: tool({
description: "Busca información en la web",
inputSchema: z.object({ query: z.string() }),
execute: async ({ query }) => ({ resultados: await runSearch(query) }),
}),
},
stopWhen: stepCountIs(20), // tope de seguridad contra loops infinitos
});
const r = await agente.generate({ prompt: "Investiga el mercado X" });
console.log(r.text);El patrón multi-agente idiomático en el AI SDK es envolver cada subagente como una herramienta del orquestador (equivale a orchestrator-workers). No hay una primitiva "multi-agente" dedicada: es composición de agentes.
// Subagente especialista, con su propio contexto
const subagente = new ToolLoopAgent({
model: "anthropic/claude-sonnet-4.5",
instructions: "Investigas un aspecto puntual y devuelves un resumen breve.",
tools: { buscar },
});
// Orquestador (lead) que delega a subagentes
const orquestador = new ToolLoopAgent({
model: "anthropic/claude-opus-4.5",
instructions: "Descompones la consulta y delegas en subagentes.",
tools: {
delegar: tool({
description: "Delega una sub-investigación a un subagente con su propio contexto",
inputSchema: z.object({ subPregunta: z.string() }),
execute: async ({ subPregunta }) => {
const sr = await subagente.generate({ prompt: subPregunta });
return { resumen: sr.text }; // retorno comprimido al lead
},
}),
},
stopWhen: stepCountIs(30),
});Cada llamada a "delegar" corre un subagente con ventana propia y devuelve solo el resumen, igual que el principio de compresión de Anthropic. La paralelización real se logra disparando varias delegaciones a la vez. LangGraph es la alternativa cuando necesitas un grafo de estado explícito con ciclos, ramas y persistencia; el AI SDK favorece un loop de herramientas liviano y tipado en TypeScript.
Riesgos y escollos
- **Errores en cascada.** En sistemas agénticos, cambios menores se amplifican. Diseña para reanudar desde donde falló (no reiniciar de cero) e informa al agente cuándo una herramienta falla para que se adapte.
- **Costo.** 15 veces los tokens de un chat: define un presupuesto explícito (número de subagentes, profundidad, uso de herramientas).
- **Latencia.** El multi-agente cambia latencia por desempeño; la paralelización ayuda en tareas amplias, no en las secuenciales.
- **No determinismo.** Dos corridas con el mismo prompt pueden diferir; dificulta tests y reproducibilidad.
- **Observabilidad.** Traza las decisiones y los handoffs, no solo el output final; sin trazas, depurar un multi-agente es a ciegas.
- **Sobre-ingeniería.** El escollo número uno: el sistema correcto es el que tu necesidad pide, no el más sofisticado. Valida siempre que un agente único o un workflow no basten antes de saltar a multi-agente.
Decidir y construir un sistema multi-agente
De la duda a la arquitectura correcta.
- Paso 1
Validar la necesidad
Antes de complejizar.
- Probar una sola llamada con buen contexto
- Probar un workflow con pasos fijos
- Confirmar que la tarea es amplia y paralelizable
- Paso 2
Elegir patrón
El correcto, no el sofisticado.
- Routing / chaining para flujos predecibles
- Orchestrator-workers (supervisor) para subtareas dinámicas
- Definir contexto aislado vs compartido
- Paso 3
Implementar
Con tope de seguridad.
- Subagentes como tools del orquestador (AI SDK)
- Comprimir el retorno de cada subagente
- stopWhen con stepCountIs como límite
- Paso 4
Operar
Producción.
- Tracing de decisiones y handoffs
- Presupuesto de tokens explícito
- Diseño para reanudar tras fallas
Preguntas frecuentes
Da el siguiente paso
Hablemos
Cuéntanos sobre tu negocio. Respondemos en 24 horas.
Otros canales
Escríbenos por WhatsApp o agenda una llamada de 30 minutos.