Sim

YAML Workflow Referenz

Vollständiger Leitfaden zum Schreiben von YAML-Workflows in Sim

YAML-Workflows bieten eine leistungsstarke Möglichkeit, Workflow-Konfigurationen in Sim zu definieren, zu versionieren und zu teilen. Dieser Referenzleitfaden behandelt die vollständige YAML-Syntax, Block-Schemas und Best Practices für die Erstellung robuster Workflows.

Schnellstart

Jeder Sim-Workflow folgt dieser grundlegenden Struktur:

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}}'

Kernkonzepte

Versionsdeklaration: Muss genau version: '1.0' (mit Anführungszeichen) sein

Blockstruktur: Alle Workflow-Blöcke werden unter dem Schlüssel blocks definiert

Block-Referenzen: Verwenden Sie Blocknamen in Kleinbuchstaben ohne Leerzeichen (z.B. <aiassistant.content>)

Umgebungsvariablen: Referenzierung mit doppelten geschweiften Klammern {{VARIABLE_NAME}}

Blocktypen

Sim unterstützt mehrere Kern-Blocktypen, jeder mit spezifischen YAML-Schemas:

Block-Referenz-Syntax

Der wichtigste Aspekt von YAML-Workflows ist das Verständnis, wie man Daten zwischen Blöcken referenziert:

Grundregeln

  1. Verwende den Blocknamen (nicht die Block-ID), umgewandelt in Kleinbuchstaben ohne Leerzeichen
  2. Füge die entsprechende Eigenschaft hinzu (.content für Agenten, .output für Tools)
  3. Bei Verwendung von Chat, referenziere den Starter-Block als <start.input>

Beispiele

# 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>

Sonderfälle

  • Schleifenvariablen: <loop.index>, <loop.currentItem>, <loop.items>
  • Parallele Variablen: <parallel.index>, <parallel.currentItem>

Umgebungsvariablen

Verwende Umgebungsvariablen für sensible Daten wie API-Schlüssel:

inputs:
  apiKey: '{{OPENAI_API_KEY}}'
  database: '{{DATABASE_URL}}'
  token: '{{SLACK_BOT_TOKEN}}'

Best Practices

  • Halte Blocknamen benutzerfreundlich: "Email Processor" für die UI-Anzeige
  • Referenziere Umgebungsvariablen: Niemals API-Schlüssel fest codieren
  • Strukturiere für Lesbarkeit: Gruppiere zusammengehörige Blöcke logisch
  • Teste schrittweise: Baue Workflows Schritt für Schritt auf

Nächste Schritte

YAML Workflow Referenz