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