Sim

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:

Lógica y flujo de control

Bloques para implementar lógica condicional y flujo de control:

Bloques de integración

Bloques para conectar con servicios y sistemas externos:

Bloques avanzados

Bloques especializados para patrones de flujo de trabajo complejos:

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:

  1. Campos obligatorios: Deben estar presentes
  2. Validación de tipo: Los valores deben coincidir con los tipos esperados
  3. Validación de enumeración: Los valores de cadena deben ser de las listas permitidas
  4. Validación de rango: Los números deben estar dentro de los rangos especificados
  5. Validación de patrón: Las cadenas deben coincidir con patrones regex (cuando corresponda)

Referencia rápida

Tipos de bloques y propiedades

Tipo de bloqueSalida principalCasos de uso comunes
starter.inputPunto de entrada del flujo de trabajo
agent.contentProcesamiento de IA, generación de texto
function.outputTransformación de datos, cálculos
api.outputIntegración con servicios externos
conditionN/A (ramificación)Lógica condicional
routerN/A (ramificación)Enrutamiento inteligente
responseN/A (terminal)Formateo de salida final
loop.resultsProcesamiento iterativo
parallel.resultsProcesamiento concurrente
webhook.payloadDisparadores externos
evaluator.scoreValidación de salida, evaluación de calidad
workflow.outputEjecució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
Esquemas de bloques