# State Machine — Gesprächslogik (Phase 1: Simulation)
## Zustände
```
S0 GREETING Begrüßung + Transparenz-/Consent-Ansage:
„Sie sprechen mit dem digitalen Assistenten von Mallorca
AirServices. Das Gespräch wird NICHT aufgezeichnet; ich
notiere Ihre Angaben für einen Rückruf."
S1 LANGUAGE „Für Deutsch drücken Sie die 1 / Para español pulse 2 /
For English press 3" — Phase 1: simulierte Tastenwahl.
Kein Input → Erkennung aus erster Äußerung; bei
Unsicherheit Deutsch + Nachfrage.
S2 REASON Offene Frage „Worum geht es?" → Intent-Klassifikation
(Schwellen: docs/sicherheitsregeln.md §4)
S3 SLOTS Name → Rückrufnummer (Ziffer für Ziffer wiederholen und
bestätigen!) → Ort → Thema/Kurzbeschreibung → grobe
Dringlichkeit (akut / nicht akut). Gefüllte Slots werden
nicht erneut abgefragt (Vento-Prinzip).
S4 CONFIRM Zusammenfassung vorlesen → „Ist das richtig?"
(nein → genau 1 Korrekturrunde)
S5 CLOSE Rückruf ankündigen (OHNE Zeitzusage) → verabschieden → Ende.
HumanSummary erzeugen → (später) Queue/Case Intake.
SX HANDOFF Sofortübergabe: HumanSummary mit EscalationLevel
sofort_handoff; nur Rückrufnummer bestätigen, dann Ende.
```
## Übergänge
| Von | Ereignis | Nach |
|---|---|---|
| S0 | Ansage abgespielt | S1 |
| S0 | Consent-Widerspruch | S3 (nur Rückrufnummer) → S5 |
| S1 | Taste 1/2/3 oder erkannte Sprache | S2 |
| S2 | Intent ≥ 0.70 | S3 |
| S2 | Intent 0.40–0.69 | S2 (eine Nachfrage) |
| S2 | 2× unklar / < 0.40 | S3 (Minimal-Slots) mit Intent `unklar` |
| S2/S3/S4 | RiskFlag reklamation oder wut | SX |
| S3 | alle Pflicht-Slots gefüllt | S4 |
| S3 | 2× Erkennungsfehler auf einem Slot | S3 nächster Slot bzw. S4 (Minimal) |
| S4 | „ja" | S5 |
| S4 | „nein" (1. Mal) | S3 (Korrektur des genannten Slots) |
| S4 | „nein" (2. Mal) | SX (Rückruf klärt Rest) |
| alle | Turn-/Zeitbudget erschöpft | S4 (Minimal-Zusammenfassung) |
| alle | Spam/falsche Nummer erkannt | S5 (höflich beenden, keine Datenerfassung) |
## Pfad-Sonderregeln
| Fall | Verhalten |
|---|---|
| Neukunde DE/ES/EN | Standardpfad S0→S5 in gewählter Sprache |
| Bestandskunde (Nummer bekannt) | verkürzt: „Geht es um Ihren bestehenden Vorgang?" → nur Thema + Dringlichkeit |
| Reklamation | sofort SX: „Das klärt der Chef persönlich" → Nummer bestätigen → Ende |
| Reiner Rückrufwunsch | direkt S3 (Nummer + Zeitfenster) — kürzester Pfad |
| Unklare Anfrage | max. 1 Nachfrage, dann Rückruf statt Weiterreden |
| Spam / falsch verbunden | höflich beenden, Session `spam`, keine Datenerfassung |
| Wütender Anrufer | Verständnis-Satz (Template) + sofort SX |
| Außerhalb Geschäftszeiten | Hinweis-Template + normale Aufnahme, CallbackRequest mit Zeitfenster |
## Phase-1-Umsetzung
Die Testkonsole speist Text-Turns (simulierte STT-Ausgabe inkl. absichtlicher
Fehler für Akzent-/Qualitätsszenarien) direkt in die State Machine. Audio
existiert in Phase 1 nicht.