Esquemas de bloques
Referencia completa del esquema YAML para todos los bloques de Sim
Esta sección contiene las definiciones completas del esquema YAML para todos los tipos de bloques disponibles en Sim. Cada tipo de bloque tiene requisitos de configuración especÃficos y formatos de salida.
Bloques principales
Estos son los bloques esenciales para crear flujos de trabajo:
Bloque de inicio
Punto de entrada del flujo de trabajo que admite activadores manuales, webhooks y programaciones
Bloque de agente
Procesamiento impulsado por IA con integración de LLM y soporte de herramientas
Bloque de función
Entorno de ejecución de código JavaScript/TypeScript personalizado
Bloque de respuesta
Formatear y devolver los resultados finales del flujo de trabajo
Lógica y flujo de control
Bloques para implementar lógica condicional y flujo de control:
Bloque de condición
Ramificación condicional basada en expresiones booleanas
Bloque de enrutador
Enrutamiento inteligente impulsado por IA a múltiples rutas
Bloque de bucle
Procesamiento iterativo con bucles for y forEach
Bloque paralelo
Ejecución concurrente en múltiples instancias
Bloques de integración
Bloques para conectar con servicios y sistemas externos:
Bloque de API
Solicitudes HTTP a APIs REST externas
Bloque de webhook
Activadores de webhook para integraciones externas
Bloques avanzados
Bloques especializados para patrones de flujo de trabajo complejos:
Bloque evaluador
Validar salidas según criterios y métricas definidos
Bloque de flujo de trabajo
Ejecutar otros flujos de trabajo como componentes reutilizables
Elementos comunes del esquema
Todos los bloques comparten estos elementos comunes:
Estructura básica
block-id:
type: <block-type>
name: <display-name>
inputs:
# Block-specific configuration
connections:
# Connection definitions
Tipos de conexión
- success: Bloque objetivo para ejecución exitosa
- error: Bloque objetivo para manejo de errores (opcional)
- conditions: Múltiples rutas para bloques condicionales
Variables de entorno
Usa dobles llaves para las variables de entorno:
inputs:
apiKey: '{{API_KEY_NAME}}'
endpoint: '{{SERVICE_ENDPOINT}}'
Referencias de bloque
Referencia las salidas de otros bloques usando el nombre del bloque en minúsculas:
inputs:
userPrompt: <blockname.content>
data: <functionblock.output>
originalInput: <start.input>
Reglas de validación
Todos los bloques YAML se validan contra sus esquemas:
- Campos obligatorios: Deben estar presentes
- Validación de tipo: Los valores deben coincidir con los tipos esperados
- Validación de enumeración: Los valores de cadena deben ser de las listas permitidas
- Validación de rango: Los números deben estar dentro de los rangos especificados
- Validación de patrón: Las cadenas deben coincidir con patrones regex (cuando corresponda)
Referencia rápida
Tipos de bloques y propiedades
Tipo de bloque | Salida principal | Casos de uso comunes |
---|---|---|
starter | .input | Punto de entrada del flujo de trabajo |
agent | .content | Procesamiento de IA, generación de texto |
function | .output | Transformación de datos, cálculos |
api | .output | Integración con servicios externos |
condition | N/A (ramificación) | Lógica condicional |
router | N/A (ramificación) | Enrutamiento inteligente |
response | N/A (terminal) | Formateo de salida final |
loop | .results | Procesamiento iterativo |
parallel | .results | Procesamiento concurrente |
webhook | .payload | Disparadores externos |
evaluator | .score | Validación de salida, evaluación de calidad |
workflow | .output | Ejecución de subflujos de trabajo, modularidad |
Obligatorio vs opcional
- Siempre obligatorio:
type
,name
- Generalmente obligatorio:
inputs
,connections
- Dependiente del contexto: Los campos de entrada especÃficos varÃan según el tipo de bloque
- Siempre opcional: Conexiones
error
, campos especÃficos de la interfaz de usuario