Sim

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.

Bedingungsblock

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:

  1. Ausdruck auswerten - Verarbeitet den JavaScript/TypeScript-booleschen Ausdruck mit aktuellen Workflow-Daten
  2. Ergebnis bestimmen - Gibt basierend auf der Ausdrucksauswertung true oder false zurück
  3. Workflow weiterleiten - Leitet die Ausführung basierend auf dem Ergebnis an den entsprechenden Zielblock weiter
  4. 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

  1. API-Block ruft Support-Ticket-Daten ab
  2. Bedingung prüft, ob <api.priority> gleich 'high' ist
  3. Tickets mit hoher Priorität → Mitarbeiter mit Eskalationswerkzeugen
  4. Tickets mit normaler Priorität → Standard-Support-Mitarbeiter

Inhaltsmoderation

Szenario: Inhalte basierend auf Analyseergebnissen filtern

  1. Agent analysiert nutzergenerierte Inhalte
  2. Bedingung prüft, ob <agent.toxicity_score> > 0.7
  3. Toxische Inhalte → Moderationsworkflow
  4. Unbedenkliche Inhalte → Veröffentlichungsworkflow

Benutzer-Onboarding-Prozess

Szenario: Onboarding basierend auf Benutzertyp personalisieren

  1. Funktionsblock verarbeitet Benutzerregistrierungsdaten
  2. Bedingung prüft, ob <user.account_type> === 'enterprise'
  3. Unternehmensbenutzer → Erweiterter Einrichtungsworkflow
  4. 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
Bedingung