Condición

Ramifica las rutas del flujo de trabajo según expresiones booleanas

El bloque Condición te permite ramificar la ruta de ejecución de tu flujo de trabajo según expresiones booleanas, lo que te permite crear flujos de trabajo dinámicos y adaptables con diferentes rutas de ejecución. Evalúa condiciones y dirige el flujo de trabajo en consecuencia, permitiéndote controlar el flujo de ejecución según datos o lógica sin necesidad de un LLM.

condition-input

Los bloques Condición permiten una toma de decisiones determinista sin necesidad de un LLM, lo que los hace ideales para lógica de ramificación sencilla.

Descripción general

El bloque Condición te permite:

Crear lógica de ramificación: Enruta flujos de trabajo según expresiones booleanas

Tomar decisiones basadas en datos: Evalúa condiciones usando las salidas de bloques anteriores

Manejar múltiples escenarios: Define múltiples condiciones con diferentes rutas

Proporcionar enrutamiento determinista: Toma decisiones sin necesidad de un LLM

Cómo funciona

El bloque Condición opera mediante un proceso de evaluación secuencial:

  1. Evaluar expresión - Procesa la expresión booleana de JavaScript/TypeScript usando los datos actuales del flujo de trabajo
  2. Determinar resultado - Devuelve verdadero o falso según la evaluación de la expresión
  3. Enrutar flujo de trabajo - Dirige la ejecución al bloque de destino adecuado según el resultado
  4. Proporcionar contexto - Genera metadatos sobre la decisión para depuración y monitoreo

Opciones de configuración

Condiciones

Define una o más condiciones que se evaluarán. Cada condición incluye:

  • Expresión: Una expresión de JavaScript/TypeScript que se evalúa como verdadero o falso
  • Ruta: El bloque de destino al que enrutar si la condición es verdadera
  • Descripción: Explicación opcional de lo que verifica la condición

Puedes crear múltiples condiciones que se evalúan en orden, y la primera condición que coincida determina la ruta de ejecución.

Formato de expresión de condición

Las condiciones usan sintaxis de JavaScript y pueden hacer referencia a valores de entrada de bloques anteriores.

// Check if a score is above a threshold
<agent.score> > 75
// Check if a text contains specific keywords
<agent.text>.includes('urgent') || <agent.text>.includes('emergency')
// Check multiple conditions
<agent.age> >= 18 && <agent.country> === 'US'

Acceder a los resultados

Después de que se evalúa una condición, puedes acceder a sus salidas:

  • <condition.conditionResult>: Indica si se seleccionó una ruta conectada, incluida Else; no es el valor de la primera expresión.
  • <condition.selectedOption>: ID de la condición que coincidió
  • <condition.selectedPath>: Detalles del destino de enrutamiento elegido

Funciones avanzadas

Expresiones complejas

Usa operadores y funciones de JavaScript en las condiciones:

// String operations
<user.email>.endsWith('@company.com')

// Array operations
<api.data.tags>.includes('urgent')

// Mathematical operations
<agent.confidence> * 100 > 85

// Date comparisons
new Date(<api.data.created_at>) > new Date('2024-01-01')

Evaluación de múltiples condiciones

Las condiciones se evalúan en orden hasta que una coincida:

// Condition 1: Check for high priority
<ticket.priority> === 'high'

// Condition 2: Check for urgent keywords
<ticket.subject>.toLowerCase().includes('urgent')

// Condition 3: Default fallback
true

Manejo de errores

Las expresiones no válidas y los accesos inseguros a propiedades pueden hacer fallar el bloque. Valida las propiedades opcionales explícitamente, por ejemplo ((<api.data>)?.tags ?? []).includes('urgent') si data es un objeto. Condition no admite la recuperación por la ruta de error normal. Para validaciones con excepciones recuperables, usa un bloque Function anterior con una ruta de error.

Entradas y salidas

  • Condiciones: Matriz de expresiones booleanas a evaluar

  • Expresiones: Condiciones de JavaScript/TypeScript que usan las salidas de block

  • Rutas de enrutamiento: Destino blocks para cada resultado de condición

  • condition.conditionResult: True cuando se selecciona una ruta conectada, incluida Else

  • condition.selectedOption: ID de la condición coincidente

  • condition.selectedPath: Detalles del destino de enrutamiento elegido

  • Resultado booleano: Resultado principal de la evaluación de la condición

  • Información de enrutamiento: Selección de ruta y detalles de la condición

  • Acceso: Disponible en blocks después de la condición

Casos de uso

Enrutamiento de soporte al cliente

Escenario: Enrutar tickets de soporte según la prioridad

  1. El API block obtiene los datos de los tickets de soporte
  2. La condición comprueba si <api.data.priority> es igual a 'high'
  3. Tickets de alta prioridad → Agente con escalation tools
  4. Tickets de prioridad normal → Agente de soporte estándar

Moderación de contenido

Escenario: Filtrar contenido según los resultados del análisis

  1. El agente analiza el contenido generado por el usuario
  2. La condición comprueba si <agent.toxicity_score> > 0.7
  3. Contenido tóxico → workflow de moderación
  4. Contenido limpio → workflow de publicación

Flujo de incorporación de usuario

Escenario: Personalizar la incorporación según el tipo de usuario

  1. Function block procesa los datos de registro del usuario
  2. La condición comprueba si <function.result.account_type> === 'enterprise'
  3. Usuarios empresariales → workflow de configuración avanzada
  4. Usuarios individuales → workflow de incorporación simple

Buenas prácticas

  • Ordena las condiciones correctamente: Coloca las condiciones más específicas antes de las generales para que la lógica específica tenga prioridad sobre los casos de respaldo
  • Incluye una condición predeterminada: Agrega una condición general (true) como última condición para manejar los casos no coincidentes y evitar que la ejecución del flujo de trabajo se quede bloqueada
  • Mantén las expresiones simples: Usa expresiones booleanas claras y directas para mejorar la legibilidad y facilitar la depuración
  • Documenta tus condiciones: Agrega descripciones que expliquen el propósito de cada condición para mejorar la colaboración y el mantenimiento del equipo
  • Prueba los casos límite: Verifica que las condiciones manejen correctamente los valores límite probando con valores en los extremos de tus rangos de condiciones