Referencia de flujos de trabajo YAML
GuÃa completa para escribir flujos de trabajo YAML en Sim
Los flujos de trabajo YAML proporcionan una forma potente de definir, versionar y compartir configuraciones de flujos de trabajo en Sim. Esta guÃa de referencia cubre la sintaxis completa de YAML, esquemas de bloques y mejores prácticas para crear flujos de trabajo robustos.
Inicio rápido
Cada flujo de trabajo de Sim sigue esta estructura básica:
version: '1.0'
blocks:
start:
type: starter
name: Start
inputs:
startWorkflow: manual
connections:
success: agent-1
agent-1:
type: agent
name: "AI Assistant"
inputs:
systemPrompt: "You are a helpful assistant."
userPrompt: 'Hi'
model: gpt-4o
apiKey: '{{OPENAI_API_KEY}}'
Conceptos fundamentales
Declaración de versión: Debe ser exactamente version: '1.0'
(con comillas)
Estructura de bloques: Todos los bloques del flujo de trabajo se definen bajo la clave blocks
Referencias de bloques: Usa nombres de bloques en minúsculas sin espacios (por ejemplo, <aiassistant.content>
)
Variables de entorno: Referencia con dobles llaves {{VARIABLE_NAME}}
Tipos de bloques
Sim admite varios tipos de bloques principales, cada uno con esquemas YAML especÃficos:
Bloque de inicio
Punto de entrada del flujo de trabajo con soporte para activadores manuales, webhooks y programados
Bloque de agente
Procesamiento impulsado por IA con soporte para herramientas y salida estructurada
Bloque de función
Ejecución de código JavaScript/TypeScript personalizado
Bloque de API
Solicitudes HTTP a servicios externos
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
Bloque de webhook
Activadores de webhook para integraciones externas
Bloque evaluador
Validación de salidas según criterios y métricas definidos
Bloque de flujo de trabajo
Ejecuta otros flujos de trabajo como componentes reutilizables
Bloque de respuesta
Formateo de salida final del flujo de trabajo
Sintaxis de referencia de bloques
El aspecto más crÃtico de los flujos de trabajo YAML es entender cómo referenciar datos entre bloques:
Reglas básicas
- Usa el nombre del bloque (no el ID del bloque) convertido a minúsculas con espacios eliminados
- Añade la propiedad apropiada (.content para agentes, .output para herramientas)
- Cuando uses chat, referencia el bloque inicial como
<start.input>
Ejemplos
# Block definitions
email-processor:
type: agent
name: "Email Agent"
# ... configuration
data-formatter:
type: function
name: "Data Agent"
# ... configuration
# Referencing their outputs
next-block:
type: agent
name: "Next Step"
inputs:
userPrompt: |
Process this email: <emailagent.content>
Use this formatted data: <dataagent.output>
Original input: <start.input>
Casos especiales
- Variables de bucle:
<loop.index>
,<loop.currentItem>
,<loop.items>
- Variables paralelas:
<parallel.index>
,<parallel.currentItem>
Variables de entorno
Usa variables de entorno para datos sensibles como claves API:
inputs:
apiKey: '{{OPENAI_API_KEY}}'
database: '{{DATABASE_URL}}'
token: '{{SLACK_BOT_TOKEN}}'
Mejores prácticas
- Mantén los nombres de bloques legibles: "Procesador de correo" para mostrar en la interfaz
- Referencia variables de entorno: Nunca codifiques claves API directamente
- Estructura para legibilidad: Agrupa bloques relacionados de manera lógica
- Prueba incrementalmente: Construye flujos de trabajo paso a paso
Próximos pasos
- Sintaxis de referencia de bloques - Reglas de referencia detalladas
- Esquemas completos de bloques - Todos los tipos de bloques disponibles
- Ejemplos de flujos de trabajo - Patrones de flujos de trabajo del mundo real