patch 20f

This commit is contained in:
team 1
2026-05-02 20:52:38 +02:00
parent 446df191c0
commit dbfc079bde
7 changed files with 534 additions and 41 deletions

View File

@@ -0,0 +1,91 @@
# 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
```