# RetrieX Patch 20e - Force Commercial Table Follow-up Routing ## Ziel Patch 20e behebt die weiterhin fehlschlagende referenzielle Shop-Nachfrage nach einer zuvor erzeugten Tabelle, z. B.: ```text welche grenzwerte kann der testomat 808 messen ``` gefolgt von: ```text die tabelle mit preisen ``` oder: ```text die tabelle mit shop preisen ``` Diese Follow-ups duerfen nicht mehr in den RAG-only-Pfad fallen. ## Ursache Die bisherigen p20b/p20c/p20d-Ansaetze waren noch zu fragil, weil die Shop-Promotion entweder zu spaet griff oder indirekt ueber den normalen Commerce-Intent- und History-Anchor-Pfad lief. Wenn diese Route nicht aktiv wurde, blieb der Status bei `Shop-Treffer: nicht angefragt`. ## Aenderungen - Fuehrt in `AgentRunner` einen expliziten `forcedShopSearchQuery` ein. - Kommerzielle Tabellen-Follow-ups werden vor der normalen Commerce-Intent-Entscheidung erkannt. - Wenn ein passender Tabellen-/Preis-Follow-up erkannt wird, wird der Shop-Pfad erzwungen. - Die konkrete Shop-Query wird aus der Conversation-History abgeleitet. - Bei Testomat-808-Grenzwert-/Indikator-Tabellen wird bevorzugt eine Query wie `Testomat 808 indikator` erzeugt. - Wenn kein stabiler Kontext ableitbar ist, bleibt die Anfrage dennoch im Shop-Pfad und nutzt den konfigurierten Fallback `indikator` statt RAG-only. - Die LLM-Input-Normalisierung aus p20 bleibt erhalten. - Es werden keine konkreten Tippfehlerlisten eingefuehrt. - Keine Scoring-/Vector-/Retrieval-Aenderung. ## Geaenderte Dateien - `src/Agent/AgentRunner.php` - `src/Config/AgentRunnerConfig.php` - `src/Config/RetriexEffectiveConfigProvider.php` - `config/retriex/agent.yaml` ## Pflichtchecks nach Einspielen ```bash bin/console mto:agent:config:validate bin/console mto:agent:regression:test bin/console mto:agent:config:audit-source --details bin/console mto:agent:config:audit-patterns --details ``` ## Manuelle Regressionstests ```text was kpstet der indikator ``` Erwartung: Shop-Suche wird ausgeloest. ```text ich suche eine preiswerte Lösung zur messung von pH & Chlor für mein schwimmbad ``` Erwartung: beratende Shop-/Produktsuche wird ausgeloest. ```text welche grenzwerte kann der testomat 808 messen ``` gefolgt von: ```text die tabelle mit preisen ``` Erwartung: Shop-Suche wird ausgeloest, Query sinngemaess `Testomat 808 indikator` oder mindestens `indikator`. ```text die tabelle mit shop preisen ``` Erwartung: Shop-Suche wird ebenfalls ausgeloest, nicht RAG-only.