# RetrieX Patch 20d - Commercial Table Follow-up Routing Fix ## Ziel p20c hat referenzielle Tabellen-/Preisnachfragen noch zu spaet bzw. zu fragil behandelt. Der Fall ```text welche grenzwerte kann der testomat 808 messen die tabelle mit preisen ``` konnte weiterhin in den RAG-only-Pfad fallen, wenn der kurze Commerce-History-Kontext keinen passenden Anchor geliefert hat. p20d sorgt dafuer, dass kommerzielle Tabellen-Follow-ups zuerst sicher als Shop-Intent geroutet werden. Die konkrete Shop-Query wird danach robuster aus erweitertem bzw. vollem Verlauf abgeleitet. ## Aenderungen Geaendert: - `src/Agent/AgentRunner.php` ## Technische Anpassungen - `detectCommerceIntentForRouting()` stuft kommerzielle Tabellen-Follow-ups nun auch dann als `product_search` ein, wenn im kurzen History-Kontext kein Anchor gefunden wurde. - Die Anchor-Pruefung bleibt im Log sichtbar (`hasHistoryAnchor`), blockiert aber nicht mehr das Shop-Routing. - `resolveShopSearchQuery()` nutzt fuer kommerzielle Tabellen-Follow-ups einen dedizierten Resolver. - Der Resolver prueft zuerst den vorhandenen Commerce-History-Kontext, dann erweiterten History-Kontext, dann optional den Full-History-Kontext. - Die History wird newest-first durchsucht, damit auch nach einem fehlgeschlagenen Zwischen-Follow-up noch der vorherige fachliche Tabellenkontext gefunden werden kann. - Wenn ein Turn zwar Indikator-/Reagenz-Kontext enthaelt, aber kein Modell, wird nicht sofort generisch `indikator` genommen. Es wird weiter nach einem juengeren/aelteren Turn mit Modellanker gesucht. Erst danach wird auf die generische Query zurueckgefallen. ## Bewusst nicht geaendert - Keine neue Tippfehlerliste. - Keine Scoring-Aenderung. - Keine Retrieval-/Vector-Aenderung. - Keine Aenderung an der LLM-Input-Normalisierung aus p20/p20b. - Keine neuen YAML-Pfade. ## Erwartete Wirkung Der Flow ```text welche grenzwerte kann der testomat 808 messen die tabelle mit preisen ``` soll eine Shop-Suche ausloesen. Erwartete Shop-Query sinngemaess: ```text testomat 808 indikator ``` Auch ```text die tabelle mit shop preisen ``` soll in den Shop-Pfad gehen. ## 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 ``` ```text ich suche eine preiswerte Loesung zur messung von pH & Chlor fuer mein schwimmbad ``` ```text welche grenzwerte kann der testomat 808 messen die tabelle mit preisen ``` ```text welche grenzwerte kann der testomat 808 messen die tabelle mit shop preisen ```