This commit is contained in:
team 1
2026-05-02 19:17:59 +02:00
parent 72241c1d00
commit 0fc34f4bc0
8 changed files with 940 additions and 23 deletions

View File

@@ -0,0 +1,58 @@
# RetrieX Patch 20b Routing Normalization Fix
## Ziel
Patch 20b korrigiert den ersten LLM-Normalisierungsansatz aus p20. Die LLM-gestützte Eingabekorrektur bleibt erhalten, wird aber robuster und sauberer im Routing verwendet.
## Problem
Der Test `was kpstet der indikator` blieb nach p20 weiterhin RAG-only. Ursache: Wenn das LLM wegen strenger Guardrails unsicher war, konnte es den Originaltext unverändert zurückgeben. Dann erkannte die Commerce-/Shop-Intent-Logik das falsch geschriebene Routing-Wort nicht.
Zusätzlich darf die normalisierte Routing-Frage nicht die eigentliche Nutzerfrage in History und Antwortkontext ersetzen.
## Lösung
- Originalprompt bleibt erhalten.
- Separater `routingPrompt` wird vor Intent-, RAG- und Shop-Routing verwendet.
- LLM-Normalisierung bleibt der erste Schritt.
- Danach generischer Fuzzy-Fallback gegen kanonische Routing-Terme aus YAML.
- Keine Tippfehlerlisten wie manuell gepflegte Vertipper.
- Fuzzy-Matching arbeitet nur gegen kanonische Signalwörter wie `kostet`, `suche`, `shop`, `messgerät`, `lösung`, `schwimmbad` usw.
- Mehrdeutige oder unsichere Korrekturen werden verworfen.
- Produktnamen, Zahlen und fachliche Ergänzungen werden nicht hinzugefügt.
## Zusätzliche Intent-Korrektur
Die Formulierung `ich suche eine preiswerte Lösung zur messung von pH & Chlor für mein schwimmbad` wird als beratende Produktsuche behandelt. Dafür wurde ein zusätzliches Advisory-Product-Selection-Pattern sowie Preiswert-/Günstig-Signale in YAML ergänzt.
## 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: interne Routing-Normalisierung zu `was kostet der indikator`
- Shop-Suche wird angefragt
2. `ich suche eine preiswerte Lösung zur messung von pH & Chlor für mein schwimmbad`
- Erwartung: beratende Shop-/Produktsuche wird ausgelöst
- Chlor-/pH-Messfähigkeit darf genannt werden
- Schwimmbad-Eignung nur vorsichtig formulieren, wenn nicht explizit belegt
3. Stabile 1.5.1-Baseline
- `Was ist der niedrigste Grenzwert für die Wasserhärte, welcher mit einem Testomaten überwacht werden kann?`
- `mit welchem indikator wird der wert gemessen`