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:
Starter-Block
Workflow-Einstiegspunkt mit Unterstützung für manuelle, Webhook- und geplante Trigger
Agent-Block
KI-gestützte Verarbeitung mit Unterstützung für Tools und strukturierte Ausgabe
Function-Block
Ausführung von benutzerdefiniertem JavaScript/TypeScript-Code
API-Block
HTTP-Anfragen an externe Dienste
Condition-Block
Bedingte Verzweigung basierend auf booleschen Ausdrücken
Router-Block
KI-gestützte intelligente Weiterleitung zu mehreren Pfaden
Loop-Block
Iterative Verarbeitung mit for- und forEach-Schleifen
Parallel-Block
Gleichzeitige Ausführung über mehrere Instanzen
Webhook-Block
Webhook-Trigger für externe Integrationen
Evaluator-Block
Validierung von Ausgaben anhand definierter Kriterien und Metriken
Workflow-Block
Ausführung anderer Workflows als wiederverwendbare Komponenten
Response-Block
Formatierung der endgültigen Workflow-Ausgabe
Block-Referenz-Syntax
Der wichtigste Aspekt von YAML-Workflows ist das Verständnis, wie man Daten zwischen Blöcken referenziert:
Grundregeln
- Verwende den Blocknamen (nicht die Block-ID), umgewandelt in Kleinbuchstaben ohne Leerzeichen
- Füge die entsprechende Eigenschaft hinzu (.content für Agenten, .output für Tools)
- 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
- Block-Referenz-Syntax - Detaillierte Referenzregeln
- Vollständige Block-Schemas - Alle verfügbaren Blocktypen
- Workflow-Beispiele - Praxisnahe Workflow-Muster