Es importante considerar detenidamente cómo y dónde se toman las decisiones en un sistema basado en agentes.
Delegar más decisiones a un LLM permite que el sistema pueda generalizarse a más tareas, pero puede reducir la velocidad, la confiabilidad y la solidez.
Siempre que sea posible, procure trasladar la mayor parte del proceso de toma de decisiones del LLM a código de software explícito. Esto es especialmente cierto para los flujos de trabajo de alto riesgo o en producción.
Al diseñar un sistema basado en agentes y en un LLM, una de las decisiones más importantes es determinar qué parte de la toma de decisiones quedará encapsulada en un modelo LLM y cuál se implementará mediante software explícito.
Para entenderlo mejor, podemos considerar esta elección como un espectro entre los siguientes enfoques:
Las arquitecturas basadas en enrutadores definen explícitamente en el código el orden y la lógica, lo que garantiza capacidad de prueba, previsibilidad y solidez para tareas de un dominio específico (también se denominan “agentes de flujo de trabajo”).
Los agentes orquestadores recurren a modelos de lenguaje de gran tamaño (LLM) para decidir dinámicamente los flujos de tareas mediante instrucciones en lenguaje natural. Son ideales para interacciones abiertas en las que la lógica predefinida resulta insuficiente o imposible.


Para flujos de trabajo de alto riesgo y en producción, solemos recomendar más funciones basadas en enrutadores y reservar los orquestadores para aplicaciones que exijan conversaciones flexibles y de propósito general.
Arquitecturas basadas en enrutadores
Los sistemas basados en agentes con enrutadores:
Definen explícitamente mediante código o software el flujo de toma de decisiones y usan un LLM para determinar qué ruta debe seguir el software.
Se asemejan más a los sistemas de software tradicionales, pues tienen rutas claras y previsibles que generan resultados más uniformes.
Son ideales para tareas que pueden definirse de manera estricta.
El siguiente es un ejemplo simplificado de un agente de reservas para un chatbot de una aerolínea que utiliza el “enfoque de enrutador”. Aunque el LLM ayuda a clasificar la intención de la pregunta entre tres opciones posibles, es el software el que finalmente vincula esa intención con una respuesta de texto predefinida. Como el LLM está sujeto a muchas restricciones, el usuario experimentará un comportamiento más uniforme.


Arquitecturas de orquestadores
A diferencia del sistema de enrutador, los sistemas basados en agentes con orquestadores:
Definen los flujos lógicos mediante instrucciones en lenguaje natural en lugar de software. Nota: en comparación con un lenguaje de programación, el lenguaje natural es inherentemente ambiguo y flexible, características que pueden ser tanto positivas como negativas, como veremos más adelante. Consideramos este enfoque como “intención en lugar de instrucción”.
Pueden ofrecer varias opciones de procesamiento, mientras el LLM determina el orden y el método de ejecución.
Pueden crear dinámicamente nuevas rutas lógicas que resultan difíciles de definir explícitamente en el software.
Esta ambigüedad puede generar resultados incoherentes, pero, cuando funciona, puede parecer “mágica”.
El siguiente ejemplo aplica un enfoque de orquestador al mismo problema simplificado de la aerolínea. En lugar de dejar que el software decida qué respuesta es adecuada, la toma de decisiones se delega a la capa del LLM. Aquí tenemos un sistema multiagente en el que un agente orquestador “principal” evalúa la consulta del usuario y la transfiere a un agente diseñado específicamente para cambiar vuelos, que finalmente responde al usuario.
En este ejemplo, la capa del LLM desempeña las funciones de clasificador, enrutador y redactor de respuestas. En el ejemplo del enrutador, solo desempeñaba la función de clasificador, mientras el software se encargaba del resto.


Siempre que sea posible, recomendamos usar enfoques basados en enrutadores porque ofrecen las siguientes ventajas:
Velocidad y eficiencia: los cálculos locales son más rápidos que los orquestadores que dependen de API externas. También es mucho más barato procesar la lógica “IF/ELSE” en Python que pagar a un proveedor de LLM para ejecutarla mediante su modelo de 400 000 millones de parámetros.
Capacidad de prueba y previsibilidad: las prácticas de software establecidas facilitan considerablemente la depuración, las pruebas y el mantenimiento.
Transparencia y confiabilidad: una menor variación del comportamiento facilita la solución de problemas. Además, un mayor porcentaje del flujo de la aplicación se expresa mediante software transparente y con control de versiones, en lugar de los parámetros opacos e imposibles de interpretar de un LLM.
Las desventajas de los enfoques de enrutadores son que pueden ser rígidos, poco flexibles y tener dificultades con problemas más abiertos. Los usuarios podrían considerar aburrido o monótono un chatbot que siempre ofrece exactamente las mismas respuestas.
Los diseños de orquestadores ofrecen capacidades potentes:
Planificación: pueden planificar respuestas dinámicamente.
Selección de herramientas y transferencia a agentes: pueden seleccionar las herramientas adecuadas o delegar tareas a otros agentes.
Combinación iterativa de resultados: pueden repetir procesos y recombinar resultados de manera creativa.
Determinación de la finalización: pueden determinar cuándo se ha recopilado suficiente información para completar una respuesta.
El uso de frameworks como Pydantic-AI o el Agents SDK de OpenAI permite implementar la orquestación de forma sencilla y rápida. Por eso, este enfoque es excelente para demostraciones o pruebas de concepto.
Las desventajas de este enfoque son las siguientes:
No hay garantías de que los pasos de planificación del LLM y las acciones posteriores sean correctos o adecuados. El sistema de enrutador presenta el mismo problema, pero, como está más restringido, su comportamiento es más previsible.
Para tareas sencillas y bien definidas, es poco probable que necesitemos toda la capacidad de un sistema multiagente. Por ejemplo, en nuestro caso del agente de una aerolínea, probablemente solo haya una cantidad limitada de consultas que alguien quiera realizar al interactuar con su sistema de atención al cliente.
Como el LLM contiene más lógica, es mucho más susceptible a intentos de jailbreak o de explotación por parte de actores maliciosos.
Este enfoque abstrae la toma de decisiones en el LLM y, por lo tanto, dificulta la comprensión del sistema, aunque herramientas de monitoreo como Langfuse o Braintrust podrían ayudar parcialmente.
Nota para el lector: aunque las capacidades de los modelos cambian rápidamente, es poco probable que lo siguiente cambie en el futuro cercano.
Determine el alcance del problema.
¿Puede definir fácilmente en un diagrama la lógica de decisión que desea?
¿Su aplicación no admite fallas ni comportamientos inesperados?
Responder “sí” a cualquiera de las preguntas anteriores indica que las funciones de enrutador serían más adecuadas.
Siempre que sea posible, recomendamos usar enfoques de enrutadores mientras resulten suficientes. Como principio general, si una parte del sistema puede expresarse mediante código, impleméntela así; es decir, no use LLM de forma excesiva cuando no sean necesarios.
Cuando estos enfoques llegan a su límite, algunas de las ventajas abiertas de los orquestadores pueden reproducirse de manera controlada. Por ejemplo:
Selección de herramientas y transferencia a agentes: puede implementarse fácilmente mediante bifurcaciones condicionales o clasificadores basados en LLM.
Determinación de la finalización: clasificadores sencillos basados en LLM pueden verificar que una respuesta esté completa antes de enviarla al usuario.
Sin embargo, la “planificación” y la “combinación iterativa de resultados” son, sin duda, mucho más difíciles de lograr en un sistema de enrutador rígido. Por eso, cuando una tarea requiera estas capacidades, según lo determine un clasificador basado en LLM u otra lógica, sugerimos crear en el sistema una rama de orquestador con menos restricciones.
La elección entre arquitecturas de enrutadores y de orquestadores debe reflejar la claridad, la complejidad y el estilo de interacción de la aplicación. Actualmente, los enfoques basados en enrutadores ofrecen confiabilidad, eficiencia y facilidad de prueba para tareas claramente definidas. Los orquestadores ofrecen mayor flexibilidad para interacciones conversacionales más amplias.
A medida que los LLM sigan avanzando, el equilibrio entre estos enfoques podría evolucionar. Nos inclinamos por arquitecturas basadas en enrutadores o híbridas para las cargas de trabajo en producción, y reservamos los orquestadores para problemas abiertos que exigen una interacción dinámica y similar a la humana.