Bedingung
Der Bedingungsblock ermöglicht es Ihnen, den Ausführungspfad Ihres Workflows basierend auf booleschen Ausdrücken zu verzweigen und so dynamische, reaktionsfähige Workflows mit unterschiedlichen Ausführungspfaden zu erstellen. Er wertet Bedingungen aus und leitet den Workflow entsprechend weiter, sodass Sie den Ausführungsfluss basierend auf Daten oder Logik steuern können, ohne ein LLM zu benötigen.

Bedingungsblöcke ermöglichen deterministische Entscheidungsfindung ohne ein LLM zu benötigen, was sie ideal für unkomplizierte Verzweigungslogik macht.
Überblick
Der Bedingungsblock ermöglicht Ihnen:
Verzweigungslogik erstellen: Workflows basierend auf booleschen Ausdrücken leiten
Datengesteuerte Entscheidungen treffen: Bedingungen anhand von Ausgaben vorheriger Blöcke auswerten
Mehrere Szenarien behandeln: Mehrere Bedingungen mit unterschiedlichen Pfaden definieren
Deterministische Weiterleitung bieten: Entscheidungen ohne ein LLM treffen
Funktionsweise
Der Bedingungsblock arbeitet durch einen sequentiellen Auswertungsprozess:
- Ausdruck auswerten - Verarbeitet den JavaScript/TypeScript-booleschen Ausdruck mit aktuellen Workflow-Daten
- Ergebnis bestimmen - Gibt basierend auf der Ausdrucksauswertung true oder false zurück
- Workflow weiterleiten - Leitet die Ausführung basierend auf dem Ergebnis an den entsprechenden Zielblock weiter
- Kontext bereitstellen - Generiert Metadaten über die Entscheidung für Debugging und Überwachung
Konfigurationsoptionen
Bedingungen
Definieren Sie eine oder mehrere Bedingungen, die ausgewertet werden. Jede Bedingung umfasst:
- Ausdruck: Ein JavaScript/TypeScript-Ausdruck, der zu true oder false ausgewertet wird
- Pfad: Der Zielblock, zu dem weitergeleitet werden soll, wenn die Bedingung true ist
- Beschreibung: Optionale Erklärung, was die Bedingung prüft
Sie können mehrere Bedingungen erstellen, die der Reihe nach ausgewertet werden, wobei die erste übereinstimmende Bedingung den Ausführungspfad bestimmt.
Format für Bedingungsausdrücke
Bedingungen verwenden JavaScript-Syntax und können auf Eingabewerte aus vorherigen Blöcken verweisen.
// Check if a score is above a threshold
<agent.score> > 75
// Check if a text contains specific keywords
<agent.text>.includes('urgent') || <agent.text>.includes('emergency')
// Check multiple conditions
<agent.age> >= 18 && <agent.country> === 'US'
Zugriff auf Ergebnisse
Nach der Auswertung einer Bedingung können Sie auf folgende Ausgaben zugreifen:
<condition.result>
: Boolesches Ergebnis der Bedingungsauswertung<condition.matched_condition>
: ID der übereinstimmenden Bedingung<condition.content>
: Beschreibung des Auswertungsergebnisses<condition.path>
: Details zum gewählten Routing-Ziel
Erweiterte Funktionen
Komplexe Ausdrücke
Verwenden Sie JavaScript-Operatoren und -Funktionen in Bedingungen:
// String operations
<user.email>.endsWith('@company.com')
// Array operations
<api.tags>.includes('urgent')
// Mathematical operations
<agent.confidence> * 100 > 85
// Date comparisons
new Date(<api.created_at>) > new Date('2024-01-01')
Auswertung mehrerer Bedingungen
Bedingungen werden der Reihe nach ausgewertet, bis eine übereinstimmt:
// Condition 1: Check for high priority
<ticket.priority> === 'high'
// Condition 2: Check for urgent keywords
<ticket.subject>.toLowerCase().includes('urgent')
// Condition 3: Default fallback
true
Fehlerbehandlung
Bedingungen behandeln automatisch:
- Undefinierte oder Null-Werte mit sicherer Auswertung
- Typabweichungen mit geeigneten Fallbacks
- Ungültige Ausdrücke mit Fehlerprotokollierung
- Fehlende Variablen mit Standardwerten
Eingaben und Ausgaben
Bedingungen: Array von booleschen Ausdrücken zur Auswertung
Ausdrücke: JavaScript/TypeScript-Bedingungen mit Block-Ausgaben
Routing-Pfade: Zielblöcke für jedes Bedingungsergebnis
condition.result: Boolesches Ergebnis der Bedingungsauswertung
condition.matched_condition: ID der übereinstimmenden Bedingung
condition.content: Beschreibung des Auswertungsergebnisses
condition.path: Details zum gewählten Routing-Ziel
Boolesches Ergebnis: Primäres Ergebnis der Bedingungsauswertung
Routing-Informationen: Pfadauswahl und Bedingungsdetails
Zugriff: Verfügbar in Blöcken nach der Bedingung
Beispielanwendungsfälle
Routing im Kundenservice
Szenario: Support-Tickets nach Priorität weiterleiten
- API-Block ruft Support-Ticket-Daten ab
- Bedingung prüft, ob
<api.priority>
gleich 'high' ist - Tickets mit hoher Priorität → Mitarbeiter mit Eskalationswerkzeugen
- Tickets mit normaler Priorität → Standard-Support-Mitarbeiter
Inhaltsmoderation
Szenario: Inhalte basierend auf Analyseergebnissen filtern
- Agent analysiert nutzergenerierte Inhalte
- Bedingung prüft, ob
<agent.toxicity_score>
> 0.7 - Toxische Inhalte → Moderationsworkflow
- Unbedenkliche Inhalte → Veröffentlichungsworkflow
Benutzer-Onboarding-Prozess
Szenario: Onboarding basierend auf Benutzertyp personalisieren
- Funktionsblock verarbeitet Benutzerregistrierungsdaten
- Bedingung prüft, ob
<user.account_type>
=== 'enterprise' - Unternehmensbenutzer → Erweiterter Einrichtungsworkflow
- Einzelbenutzer → Einfacher Onboarding-Workflow
Best Practices
- Bedingungen richtig anordnen: Platzieren Sie spezifischere Bedingungen vor allgemeinen, damit spezifische Logik Vorrang vor Fallbacks hat
- Standardbedingung einfügen: Fügen Sie eine Auffangbedingung (
true
) als letzte Bedingung hinzu, um nicht übereinstimmende Fälle zu behandeln und zu verhindern, dass die Workflow-Ausführung stecken bleibt - Ausdrücke einfach halten: Verwenden Sie klare, unkomplizierte boolesche Ausdrücke für bessere Lesbarkeit und einfachere Fehlersuche
- Dokumentieren Sie Ihre Bedingungen: Fügen Sie Beschreibungen hinzu, um den Zweck jeder Bedingung für bessere Teamzusammenarbeit und Wartung zu erklären
- Testen Sie Grenzfälle: Überprüfen Sie, ob Bedingungen Grenzwerte korrekt behandeln, indem Sie mit Werten an den Grenzen Ihrer Bedingungsbereiche testen