patch 20c

This commit is contained in:
team 1
2026-05-02 20:08:25 +02:00
parent 0fc34f4bc0
commit 446df191c0
6 changed files with 284 additions and 2 deletions

View File

@@ -0,0 +1,61 @@
# RetrieX Patch 20c Commercial Table Follow-up Fix
## Ziel
Patch 20c korrigiert eine Regression aus dem p20/p20b-Normalisierungs- und Routing-Umfeld: kurze referenzielle Nachfragen wie `die tabelle mit preisen` müssen den letzten fachlichen Kontext übernehmen und eine Shop-Suche auslösen.
## Reproduzierter Problemfall
1. `welche grenzwerte kann der testomat 808 messen`
2. RetrieX antwortet korrekt mit Testomat 808 und einer Grenzwert-/Indikatortyp-Tabelle.
3. Folgefrage: `die tabelle mit preisen`
Vor p20c blieb die Folgefrage RAG-only bzw. ohne Shop-Suche. Das ist fachlich zu schwach, weil `die tabelle` klar auf die vorherige Indikatortyp-Tabelle referenziert und `mit preisen` aktuelle Shopdaten verlangt.
## Lösung
- LLM-Input-Normalisierung aus p20/p20b bleibt erhalten.
- Es gibt eine zusätzliche, YAML-konfigurierbare Erkennung für kommerzielle Tabellen-Follow-ups.
- Wenn der normale Commerce-Intent ausfällt, kann ein kurzer Tabellen-/Preis-Follow-up anhand vorhandener History-Anker gezielt zu `product_search` hochgestuft werden.
- Für Preis-Tabellen-Follow-ups wird vor einer generischen optimierten Suchquery ein kontextueller Shop-Suchbegriff aus der letzten Antwort abgeleitet.
- Beim Testomat-808-/Indikatortyp-Fall ergibt der Fallback generisch `Testomat 808 indikator` statt nur `die tabelle mit preisen` oder `Testomat 808`.
- Es werden keine konkreten Tippfehlerlisten eingeführt.
## Geänderte Dateien
- `src/Agent/AgentRunner.php`
- `src/Config/AgentRunnerConfig.php`
- `src/Config/RetriexEffectiveConfigProvider.php`
- `config/retriex/agent.yaml`
- `config/retriex/intent.yaml`
## Pflichtchecks
```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 Regressionen
1. `was kpstet der indikator`
- Erwartung: LLM-/Fuzzy-Normalisierung bleibt wirksam.
- Shop-Suche wird ausgelöst.
2. `ich suche eine preiswerte Lösung zur messung von pH & Chlor für mein schwimmbad`
- Erwartung: beratende Shop-/Produktsuche wird ausgelöst.
3. `welche grenzwerte kann der testomat 808 messen``die tabelle mit preisen`
- Erwartung: Folgefrage wird als kommerzieller Tabellen-Follow-up erkannt.
- Shop-Suche wird ausgelöst.
- Gesendete Suchquery sollte sinngemäß `Testomat 808 indikator` sein.
- Antwort soll eine Preistabelle der passenden Indikatoren/Zubehörtreffer bilden, soweit Shopdaten vorhanden sind.
## Nicht geändert
- Kein Scoring-Umbau.
- Keine harte Tippfehlerliste.
- Keine Änderung an Retrieval-/Vectorlogik.
- Keine Änderung an Shop-Service-Suche selbst.