Esencia del patrón
Agente Routing es un patrón en el que un agente elige qué otro agente o herramienta debe ejecutar una tarea.
Cuándo usarlo: cuando primero hay que elegir el mejor ejecutor o herramienta para una tarea concreta.
En lugar de ejecutar todo por sí mismo, hace esto:
- analiza la tarea
- determina quién puede ejecutarla
- la delega al agente adecuado

Problema
Imagina que en el sistema hay varios especialistas:
UI Agentpara tareas de frontendFinance Agentpara cálculos financierosCode Agentpara cambios técnicos
El usuario envía solicitudes diferentes, pero sin un paso de routing no se asignan por especialización, sino a un ejecutor "aleatorio".
El problema no es que los agentes sean débiles, sino que el sistema no sabe elegir de forma estable al ejecutor correcto.
Como resultado:
- una solicitud especializada va al agente equivocado
- la calidad baja por pérdida de especialización
- el tiempo aumenta por intentos extra "fuera de su tema"
- la ruta se vuelve impredecible
Ese es el problema: sin un paso de routing controlado, incluso una tarea simple puede ser ejecutada por el agente "equivocado" y dar un resultado débil.
Solución
Routing agrega una etapa separada de selección del ejecutor antes de la ejecución.
Analogía: es como un dispatcher en un centro de servicio. El dispatcher no repara por sí mismo, sino que decide a qué especialista enviar la solicitud. Eso es exactamente lo que reduce errores y reasignaciones innecesarias.
Principio clave: primero la elección correcta del ejecutor, luego la delegación de la tarea.
El Router no hace el trabajo por sí mismo. Su rol es controlar la ruta:
- Análisis (Analyze): clasificar la solicitud
- Decisión (Decide): elegir el agente según
routing-rules - Delegación (Delegate): pasar la tarea al ejecutor
- Reenrutamiento (Fallback, si hace falta): cambiar de ejecutor en caso de
mismatcho error
El diagrama de abajo muestra la ruta básica: elegir un ejecutor y pasarle la tarea.
Esto da:
- mayor precisión gracias a la especialización
- menos pasos extra y menor latencia
- una ruta transparente para depuración y control
- menor riesgo de errores al elegir ejecutor
Funciona bien si:
- existen reglas claras de clasificación
- los roles de los agentes no se solapan de forma caótica
- hay una ruta de respaldo (fallback) definida
- el paso de routing (router) no se omite directamente por el usuario ni por la lógica del worker
Incluso si el modelo "quiere" delegar la tarea al primer agente disponible, la routing-policy es la que fija quién debe ejecutarla realmente.
Cómo funciona
El Router no ejecuta la tarea por sí mismo.
Solo la delega a un agente especializado, que ejecuta la subtarea en su propio ciclo: Razonamiento (Think) -> Acción (Act) -> Observación (Observe).
Descripción del flujo completo: Analyze → Decide → Delegate
Análisis (Analyze)
El Router identifica el tipo de tarea, el dominio y la especialización necesaria.
Decisión (Decide)
El sistema elige el ejecutor más adecuado según routing-policy y confidence.
Delegación (Delegate)
La tarea se pasa al agente seleccionado, y el Router controla la ruta en caso de mismatch/error.
En código se ve así
agent = route(goal) # El Router clasifica el goal y elige un ejecutor especializado.
result = agent.run(goal) # La ejecución la hace el agente elegido, no el Router.
return result
Cómo se ve durante la ejecución
Goal: "¿Cuánto impuesto hay que pagar por ingresos freelance?"
Analyze: tarea financiera
Decide: elegir Finance Agent
Route confidence: 0.92 (finance)
Delegate: el sistema pasa la tarea a Finance Agent
Observe: Finance Agent devuelve el cálculo
Goal: "Cambia el color del botón en la landing page"
Analyze: tarea frontend
Decide: elegir UI Agent
Route confidence: 0.89 (ui)
Delegate: el sistema pasa la tarea a UI Agent
Observe: UI Agent devuelve el componente actualizado
El Router solo elige al ejecutor y delega la tarea.
La calidad del resultado depende de lo correcto de esa elección.
Ejemplo completo de agente Routing
Cuándo encaja - y cuándo no
Encaja
| Situación | Por qué este patrón encaja | |
|---|---|---|
| ✅ | Las tareas difieren por tipo o complejidad | El Router elige un ejecutor para un tipo de tarea concreto en lugar de enviar todo a un solo agente. |
| ✅ | Hay agentes especializados para tareas diferentes | El routing permite aprovechar las fortalezas de cada agente. |
| ✅ | La precisión de ejecución es importante | La elección correcta del ejecutor reduce errores y reintentos. |
No encaja
| Situación | Por qué este patrón no encaja | |
|---|---|---|
| ❌ | Todas las tareas son del mismo tipo | Un paso extra de selección de ruta no aporta valor si el ejecutor siempre es el mismo. |
| ❌ | En el sistema solo hay un agente | Routing duplica una llamada directa y solo complica el pipeline. |
| ❌ | El routing no influye en el resultado | Si la calidad del resultado no cambia según el ejecutor elegido, esta capa sobra. |
Porque Routing añade un paso adicional de procesamiento. Si las tareas no difieren, solo ralentiza la ejecución.
Cuándo usar Routing (vs otros patrones)
Usa Routing cuando lo principal es elegir correctamente a quién delegar la solicitud.
Prueba rápida:
- si necesitas "identificar al mejor ejecutor" -> Routing
- si necesitas "pasar la tarea por pasos claros" -> Orchestrator Agent
Comparación con otros patrones y ejemplos
Chuleta rápida:
| Si la tarea se ve así... | Usa |
|---|---|
| Hay que elegir un único mejor ejecutor | Agente Routing |
| Existe una secuencia de pasos y el orden importa | Orchestrator Agent |
| Se necesita policy-check antes del resultado | Supervisor Agent |
| Varios agentes deben llegar a una sola conclusión | Multi-Agent Collaboration |
Ejemplos:
Routing: "El cliente pide un reembolso - envíalo a Billing, no a Sales".
Orchestrator: "Prepara el release: primero changelog, luego QA, luego despliegue".
Supervisor: "Antes de enviar un correo, revisa políticas, compliance y promesas prohibidas".
Multi-Agent Collaboration: "Marketing, Legal y Product deben acordar un único texto final de promoción".
Cómo combinarlo con otros patrones
- Routing + Task Decomposition - primero se divide la tarea en partes, y luego Routing envía cada parte al agente adecuado.
- Routing + Orchestrator - Routing elige al ejecutor, y Orchestrator coordina tareas paralelas y sus dependencias.
- Routing + Supervisor - Supervisor verifica si la elección del ejecutor cumple políticas y nivel de riesgo.
Resumen
Agente Routing:
- Analiza la tarea
- Elige el agente adecuado
- La delega para ejecución
Ventajas y desventajas
Ventajas
envía rápido la tarea al agente correcto
elimina pasos innecesarios
mejora el tiempo de respuesta
facilita agregar rutas nuevas
Desventajas
un error de routing envía la tarea al lugar equivocado
hay que mantener las reglas de routing
los casos complejos requieren excepciones
FAQ
Q: ¿Puede el Router ejecutar la tarea por sí mismo?
A: No. Solo determina quién debe ejecutarla.
Q: ¿Hace falta Routing si solo hay un agente?
A: No. En ese caso añade un paso innecesario.
Q: ¿Se puede cambiar la ruta durante la ejecución?
A: Sí. Si el agente seleccionado no puede ejecutar la tarea o devuelve un error, el Router puede pasarla a otro agente.
Qué sigue
Routing permite elegir el agente adecuado.
Pero, ¿qué hacer si las tareas deben ejecutarse en paralelo?