feat: schedule_hours-Backstop, zentrale Datum/Uhrzeit, Filler-Timing
1) schedule_hours-Nudge: search_backstop erkennt jetzt auch Oeffnungszeiten,
"hat X geoeffnet", Notdienst und Fahrplaene/naechste Abfahrt (de/en/nl/fr) und
erzwingt dafuer die Suche. +6 Offline-Tests.
2) Zentrale Datum-/Uhrzeit-Auskunft (app/core/clock.py, now_context()): jedes
Modul kann das aktuelle Datum + Uhrzeit (lokale TZ, Wochentag) erfragen.
In die System-Prompts aller antwortenden LLMs injiziert (ToolCallingLLM,
OpenRouter, lokal) -> relative Zeitangaben ("heute", "morgen", "in 3 Stunden",
"naechsten Montag") werden aufgeloest. Live: "Welcher Wochentag/Datum?" ->
korrekt OHNE Web-Suche.
3) Filler-Timing: Mindestabstand 10 s zwischen Opening und Geduldssaetzen
(FILLER_PATIENCE_INTERVAL 4->10). Sobald die Antwort vorliegt, wird ein
anstehender Filler/Geduldssatz NICHT mehr ausgegeben (answer_started-Gate).
Tests: 318 gruen. Doc §5.4/§5.7/§8.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
48a79da12f
commit
b70d6f364a
9 changed files with 80 additions and 19 deletions
|
|
@ -99,8 +99,11 @@ Sprachen werden beim ersten Bedarf einmalig übersetzt. Fällt die Übersetzung
|
|||
Fallback Englisch.
|
||||
|
||||
**Geduld-Schleife:** Beim Tool-Start läuft ein Hintergrund-Task, der alle
|
||||
`FILLER_PATIENCE_INTERVAL` Sekunden einen zufälligen PATIENCE-Satz nachschiebt; er
|
||||
wird beim ersten Antwort-Delta (Antwort beginnt) und im `finally` abgeräumt.
|
||||
`FILLER_PATIENCE_INTERVAL` Sekunden (Mindestabstand **10 s** zwischen Opening und
|
||||
Geduldssätzen bzw. zwischen Geduldssätzen) einen zufälligen PATIENCE-Satz
|
||||
nachschiebt. Sobald die Antwort vorliegt (erstes Antwort-Delta), wird die Schleife
|
||||
abgeräumt **und** ein anstehender Filler/Geduldssatz NICHT mehr ausgegeben
|
||||
(`answer_started`-Gate in `_emit_filler`).
|
||||
|
||||
**Ephemeralität (Invariante):** Filler laufen über den `on_filler`-Callback, nicht
|
||||
über den Delta-Stream — sie landen **nicht** in `trace.semantic_response` und
|
||||
|
|
@ -186,8 +189,11 @@ wird zur Tool-Rangordnung).
|
|||
- **Erledigt (nach v1):** Backstop für heikle Kategorien (§5.7), Filler für
|
||||
**Gerät-TTS** (§5.4), **Citations in die UI-Bubble** (`PipelineTrace.citations`
|
||||
→ `on_citations` → WS `semantic`-Event → Quellen-Links unter der Antwort).
|
||||
- **Erledigt:** „no-tool-endpoints"-404-Härtung (§5.8).
|
||||
- **Fast-follow (offen):** ggf. deterministischer Logistik-Nudge (`schedule_hours`).
|
||||
- **Erledigt:** „no-tool-endpoints"-404-Härtung (§5.8); `schedule_hours`-Nudge
|
||||
(Öffnungszeiten/Fahrpläne jetzt im Backstop); zentrale Datum-/Uhrzeit-Auskunft
|
||||
(`app/core/clock.py` → `now_context()` in alle LLM-System-Prompts injiziert, damit
|
||||
relative Zeitangaben aufgelöst werden).
|
||||
- **Fast-follow (offen):** —
|
||||
- **Später (Multitool):** weitere Tools in dieselbe `ToolCallingLLM`-Schleife
|
||||
(Kalender, Erinnerungen, Medizin-Safety) mit Tool-Rangordnung.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue