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.

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:
- Evaluar expresión - Procesa la expresión booleana de JavaScript/TypeScript usando los datos actuales del flujo de trabajo
- Determinar resultado - Devuelve verdadero o falso basado en la evaluación de la expresión
- Dirigir flujo de trabajo - Dirige la ejecución al bloque de destino apropiado basado en el resultado
- 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
- El bloque API obtiene datos de tickets de soporte
- La condición verifica si
<api.priority>
es igual a 'high' - Tickets de alta prioridad → Agente con herramientas de escalación
- Tickets de prioridad normal → Agente de soporte estándar
Moderación de contenido
Escenario: Filtrar contenido basado en resultados de análisis
- El agente analiza contenido generado por usuarios
- La condición verifica si
<agent.toxicity_score>
> 0.7 - Contenido tóxico → Flujo de moderación
- Contenido limpio → Flujo de publicación
Flujo de incorporación de usuarios
Escenario: Personalizar la incorporación según el tipo de usuario
- El bloque de función procesa datos de registro de usuarios
- La condición verifica si
<user.account_type>
=== 'enterprise' - Usuarios empresariales → Flujo de configuración avanzada
- 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