Darstellung
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
| Methode | Pfad | Beschreibung |
|---|---|---|
GET | /api/bots/:id/preflight | Pre-Flight Status abrufen — vollständige Analyse aller Blocks und Flow-Steps |
POST | /api/bots/:id/preflight/inject | Generierten System Prompt (mit Block-Inject) in der DB speichern |
POST /preflight/inject
Request Body:
| Feld | Typ | Pflicht | Beschreibung |
|---|---|---|---|
injectedPrompt | String | Ja | Der 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_modeist gesetzt ODERoption_actionssind definiert - Fehlschlag: Keine Weiterleitung — der Block ist eine Sackgasse
Check 2 — Bedingungen
Prüft ob Conditions für Verzweigungslogik konfiguriert sind.
- OK:
conditionsArray instep_configist 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
| Farbe | Bedeutung | Bedingung |
|---|---|---|
| green | Alles OK | Routing OK + Conditions gesetzt + Ziele plausibel. Oder: Block ohne Items (keine Regeln nötig). |
| orange | Hinweise | Routing OK, aber: fehlende Conditions, nicht ausgelöste Exit-Keys, oder Ziel-Probleme. Flow funktioniert, könnte aber optimiert werden. |
| red | Sackgasse | Kein 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:
| Feld | Beschreibung |
|---|---|
steps | Alle aktiven Steps mit stepOrder, stepType, label und icon |
edges | Verbindungen zwischen Steps. Typen: linear, exit, condition |
unreachableSteps | Steps die von keinem anderen Step erreichbar sind (ab Step 2) |
deadEnds | Steps ohne Nachfolger die nicht der letzte Step sind |
Edge-Typen:
| type | Beschreibung |
|---|---|
linear | Linearer Nachfolger (nächster Step nach step_order) |
exit | Exit-basierter Sprung (default-Exit oder 'end') |
condition | Bedingter Sprung (benannter Exit-Key oder option_action) |
kbOnboarding
Nicht-blockierender Hinweis ob die Knowledge-Base-Onboarding-Checkliste des Tenants abgeschlossen ist.
| Wert | Bedeutung |
|---|---|
null | Onboarding 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