Zyntia AIDocumentation

Routing y Condiciones

Cómo funcionan RouterNode, SwitchNode y AgentNode para ramificar conversaciones según condiciones o intención del usuario.

Routing y Condiciones en el Flow Builder

El Flow Builder ofrece tres nodos para ramificar el flujo de una conversación: Router, Switch y Agent. Cada uno tiene una estrategia distinta para decidir qué camino tomar.


RouterNode — Condiciones + Intención LLM

El RouterNode es el nodo más flexible. Evalúa las rutas en dos fases:

Fase 1 — Condiciones (sin LLM)

Cada ruta puede tener condiciones sobre variables del contexto. Se evalúan en orden de arriba hacia abajo — la primera que coincida gana.

Ejemplo: Si user_city == "Madrid" → ir a ruta "España".

Puedes configurar múltiples condiciones dentro de una ruta usando AND (todas deben cumplirse) u OR (basta con una). También puedes agrupar condiciones con lógica AND/OR entre grupos.

Importante: El orden de las rutas importa. Usa el drag-and-drop para reordenarlas.

Fase 2 — Intención (con LLM)

Las rutas sin condiciones configuradas pasan al LLM. Zyntia describe las rutas disponibles al modelo y este clasifica el mensaje del usuario en la ruta más adecuada.

Ejemplo: Rutas "Soporte técnico", "Ventas", "Facturación" → el LLM decide cuál corresponde al mensaje.

Ruta Default

Siempre existe y actúa como fallback si ninguna condición coincide y el LLM no puede clasificar el mensaje.


SwitchNode — Condición única determinista

El SwitchNode evalúa una sola variable del contexto contra una lista de casos, en orden de arriba hacia abajo. La primera coincidencia gana.

Ejemplo: {{estado_pedido}} puede ser "pendiente", "enviado" o "entregado" — cada valor va a un camino distinto.

A diferencia del RouterNode, el SwitchNode nunca llama al LLM. Es 100% determinista.


AgentNode — Routing por intención

Cuando un AgentNode tiene rutas configuradas, utiliza un modelo de clasificación en paralelo con la generación de respuesta (ejecución especulativa):

  • Si el clasificador detecta que el usuario quiere cambiar de flujo → redirige y descarta la respuesta generada.
  • Si el clasificador dice "continuar" (default) → la respuesta se muestra al usuario.

Operadores disponibles

OperadorDescripciónAplica a
==Igual aTexto / Número
!=Distinto deTexto / Número
containsContieneTexto
not_containsNo contieneTexto
>Mayor queNúmero
<Menor queNúmero
>=Mayor o igualNúmero
<=Menor o igualNúmero
is_emptyEstá vacíoTexto
is_not_emptyNo está vacíoTexto

Comparar con otra variable

En lugar de comparar con un valor fijo, puedes comparar una variable con otra del contexto. Selecciona el tipo Variable en el campo de valor y elige la variable de destino.

Ejemplo: {{precio_oferta}} < {{presupuesto_usuario}}


Buenas prácticas

  • Pon las condiciones específicas primero — las rutas más generales o el Default van al final.
  • No dejes condiciones sin configurar — una condición con variable vacía no coincide con nada.
  • Usa SwitchNode para valores conocidos y RouterNode cuando el usuario puede expresar lo mismo de muchas formas.
  • Nómbrá tus rutas claramente — el nombre aparece como etiqueta en el canvas y el LLM lo usa para clasificar la intención.