Sim

Condición

El bloque de Condición te permite ramificar la ruta de ejecución de tu flujo de trabajo basándose en expresiones booleanas, permitiéndote crear flujos de trabajo dinámicos y receptivos 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 basado en datos o lógica sin requerir un LLM.

Bloque de Condición

Los bloques de Condición permiten una toma de decisiones determinista sin requerir un LLM, haciéndolos ideales para lógica de ramificación sencilla.

Descripción general

El bloque de Condición te permite:

Crear lógica de ramificación: dirigir flujos de trabajo basados en expresiones booleanas

Tomar decisiones basadas en datos: evaluar condiciones usando salidas de bloques anteriores

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

Proporcionar enrutamiento determinista: tomar decisiones sin requerir un LLM

Cómo funciona

El bloque de Condición opera a través de 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 basado en la evaluación de la expresión
  3. Dirigir flujo de trabajo - Dirige la ejecución al bloque de destino apropiado basado en 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 serán evaluadas. Cada condición incluye:

  • Expresión: una expresión JavaScript/TypeScript que evalúa a verdadero o falso
  • Ruta: el bloque de destino al que dirigir si la condición es verdadera
  • Descripción: explicación opcional de lo que comprueba la condición

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

Formato de expresión de condición

Las condiciones utilizan sintaxis 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'

Acceso a resultados

Después de evaluar una condición, puedes acceder a sus salidas:

  • <condition.result>: Resultado booleano de la evaluación de la condición
  • <condition.matched_condition>: ID de la condición que coincidió
  • <condition.content>: Descripción del resultado de la evaluación
  • <condition.path>: 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.tags>.includes('urgent')

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

// Date comparisons
new Date(<api.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 condiciones manejan automáticamente:

  • Valores indefinidos o nulos con evaluación segura
  • Incompatibilidades de tipo con alternativas apropiadas
  • Expresiones inválidas con registro de errores
  • Variables faltantes con valores predeterminados

Entradas y salidas

  • Condiciones: Array de expresiones booleanas para evaluar

  • Expresiones: Condiciones JavaScript/TypeScript usando salidas de bloques

  • Rutas de enrutamiento: Bloques de destino para cada resultado de condición

  • condition.result: Resultado booleano de la evaluación de condición

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

  • condition.content: Descripción del resultado de evaluación

  • condition.path: Detalles del destino de enrutamiento elegido

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

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

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

Ejemplos de casos de uso

Enrutamiento de atención al cliente

Escenario: Enrutar tickets de soporte según la prioridad

  1. El bloque API obtiene datos de tickets de soporte
  2. La condición verifica si <api.priority> es igual a 'high'
  3. Tickets de alta prioridad → Agente con herramientas de escalación
  4. Tickets de prioridad normal → Agente de soporte estándar

Moderación de contenido

Escenario: Filtrar contenido basado en resultados de análisis

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

Flujo de incorporación de usuarios

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

  1. El bloque de función procesa datos de registro de usuarios
  2. La condición verifica si <user.account_type> === 'enterprise'
  3. Usuarios empresariales → Flujo de configuración avanzada
  4. Usuarios individuales → Flujo de incorporación simple

Mejores prácticas

  • Ordenar las condiciones correctamente: Coloca las condiciones más específicas antes que las generales para asegurar que la lógica específica tenga prioridad sobre las alternativas
  • Incluir una condición predeterminada: Añade una condición general (true) como última condición para manejar casos no coincidentes y evitar que la ejecución del flujo de trabajo se quede atascada
  • Mantener las expresiones simples: Usa expresiones booleanas claras y directas para mejorar la legibilidad y facilitar la depuración
  • Documentar tus condiciones: Añade descripciones para explicar el propósito de cada condición para una mejor colaboración en equipo y mantenimiento
  • Probar casos límite: Verifica que las condiciones manejen correctamente los valores límite probando con valores en los extremos de los rangos de tus condiciones
Condición