Skip to content

Pre-Flight Check

Der Pre-Flight Check validiert den Gesprächsablauf eines Bots bevor er aktiviert wird. Er prüft jeden Interactive Block auf korrekte Konfiguration und gibt eine klare Empfehlung, ob der Bot aktiviert werden kann.

Endpoints

MethodePfadBeschreibung
GET/api/bots/:id/preflightPre-Flight Status abrufen — vollständige Analyse aller Blocks und Flow-Steps
POST/api/bots/:id/preflight/injectGenerierten System Prompt (mit Block-Inject) in der DB speichern

POST /preflight/inject

Request Body:

FeldTypPflichtBeschreibung
injectedPromptStringJaDer generierte System Prompt mit Block-Definitionen

Speichert den Prompt in bots.system_prompt_generated.

3-Check System

Jeder aktive Interactive Block wird gegen drei Checks geprüft:

Check 1 — Routing

Prüft ob der Block eine Weiterleitung konfiguriert hat.

  • OK: trigger_mode ist gesetzt ODER option_actions sind definiert
  • Fehlschlag: Keine Weiterleitung — der Block ist eine Sackgasse

Check 2 — Bedingungen

Prüft ob Conditions für Verzweigungslogik konfiguriert sind.

  • OK: conditions Array in step_config ist vorhanden und nicht leer
  • Info: Ohne Conditions läuft der Flow linear weiter (funktioniert, aber keine Verzweigung)

Check 3 — Plausibilität

Prüft ob definierte Ziele tatsächlich existieren:

  • Exits: Zeigt jeder Exit auf einen existierenden Step oder 'end'?
  • Exit-Keys: Nur 'default' wird von der Flow-Engine tatsächlich ausgelöst — andere Keys erzeugen eine Warnung
  • option_actions: Bei goto_step — existiert der Ziel-Step?

Farblogik

FarbeBedeutungBedingung
greenAlles OKRouting OK + Conditions gesetzt + Ziele plausibel. Oder: Block ohne Items (keine Regeln nötig).
orangeHinweiseRouting OK, aber: fehlende Conditions, nicht ausgelöste Exit-Keys, oder Ziel-Probleme. Flow funktioniert, könnte aber optimiert werden.
redSackgasseKein Routing konfiguriert — Block hat keine Weiterleitung.

canActivate-Logik

canActivate = (Anzahl red === 0)

Der Bot kann aktiviert werden, solange kein einziger Block den Status red hat. Orange-Warnungen blockieren die Aktivierung NICHT.

Response-Struktur

json
{
  "canActivate": true,
  "blocks": [
    {
      "blockId": "uuid",
      "blockName": "willkommen_auswahl",
      "blockType": "buttons",
      "itemCount": 3,
      "status": "green",
      "routing": {
        "ok": true,
        "method": "trigger_mode:mandatory"
      },
      "conditions": {
        "set": true,
        "count": 2
      },
      "targets": {
        "valid": true,
        "issues": []
      },
      "detail": "Weiterleitung via trigger_mode:mandatory. 2 Bedingung(en) konfiguriert.",
      "recommendation": null
    }
  ],
  "summary": {
    "total": 5,
    "green": 3,
    "orange": 1,
    "red": 1
  },
  "flowAnalysis": {
    "steps": [],
    "edges": [],
    "unreachableSteps": [],
    "deadEnds": []
  },
  "kbOnboarding": null
}

flowAnalysis

Die Flow-Analyse liefert Daten für eine visuelle Flow-Map:

FeldBeschreibung
stepsAlle aktiven Steps mit stepOrder, stepType, label und icon
edgesVerbindungen zwischen Steps. Typen: linear, exit, condition
unreachableStepsSteps die von keinem anderen Step erreichbar sind (ab Step 2)
deadEndsSteps ohne Nachfolger die nicht der letzte Step sind

Edge-Typen:

typeBeschreibung
linearLinearer Nachfolger (nächster Step nach step_order)
exitExit-basierter Sprung (default-Exit oder 'end')
conditionBedingter Sprung (benannter Exit-Key oder option_action)

kbOnboarding

Nicht-blockierender Hinweis ob die Knowledge-Base-Onboarding-Checkliste des Tenants abgeschlossen ist.

WertBedeutung
nullOnboarding abgeschlossen oder kein Onboarding vorhanden
{ type, message, details }Onboarding nicht abgeschlossen — enthält den aktuellen Checklisten-Status

Prompt Injection

Der Pre-Flight Check generiert zusätzlich einen promptInjection-Block, der die verfügbaren Auswahloptionen als System-Prompt-Abschnitt formatiert. Dieser enthält:

  • Alle aktiven Blocks mit ihren Items
  • Die -Syntax für den Bot
  • Die Anweisung, KEINE eigenen [LIST] oder [BUTTONS] Tags zu erfinden