Sim

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:

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

  1. Usa el nombre del bloque (no el ID del bloque) convertido a minúsculas con espacios eliminados
  2. Añade la propiedad apropiada (.content para agentes, .output para herramientas)
  3. 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

Referencia de flujos de trabajo YAML