4.8 KiB
RetrieX Patch 20h – Total Commerce Routing & Shop Status Fix
Ziel
Dieser Patch ersetzt die fragmentierten p20d/p20e/p20f/p20g-Nachbesserungen durch einen kumulativen Fix gegen den aktuellen rag-inprogress.zip-Stand.
Er adressiert zwei zusammenhängende Fehlerklassen:
- Explizite oder referenzielle Commerce-/Shop-Anfragen dürfen nicht im RAG-only-Pfad landen.
- Sobald ein Shop-/Commerce-Routing erkannt ist, darf die Statuskarte während des Ablaufs nicht weiter
Shop-Treffer: nicht angefragtanzeigen.
Behobene Fälle
Expliziter Shop-Intent
Beispiel:
shop testomat 808
Erwartung:
- Commerce-Intent wird abgesichert.
- Shop-Pfad wird betreten.
- Status springt nach der Intent-Erkennung auf
Shop-Treffer: wird geladen.
Tippfehler-Normalisierung bleibt erhalten
Beispiel:
was kpstet der indikator
Erwartung:
- LLM-/Fuzzy-Normalisierung bleibt erhalten.
- Die Anfrage kann intern als Preis-/Shop-Follow-up geroutet werden.
- Es wird keine konkrete Tippfehlerliste eingeführt.
Referenzieller Tabellen-/Preis-Follow-up
Beispiel:
welche grenzwerte kann der testomat 808 messen
die tabelle mit preisen
Erwartung:
die tabelle mit preisenwird als kommerzieller Tabellen-Follow-up in den Shop-Pfad gehoben.- Die Shop-Query wird aus dem Verlauf robuster abgeleitet, z. B.
Testomat 808 indikator. - Die History wird newest-first durchsucht und nicht nur der letzte Turn betrachtet.
Status-/Meta-Konsistenz
Sobald Commerce-Intent erkannt ist, wird shopCountMode zentral berechnet:
- vor Shop-Suche:
loading→Shop-Treffer: wird geladen - nach Shop-Suche:
count→ echte Trefferzahl - Shop-Systemfehler:
unavailable→Shop-Treffer: nicht verfügbar - Commerce erkannt, aber keine konkrete Suchquery lösbar:
not_resolved→Shop-Treffer: keine Suchquery - nur Nicht-Commerce bleibt
not_requested
Damit gibt es im Shop-/Commerce-Ablauf keine verstreuten harten not_requested-Zwischenstatus mehr.
Geänderte Datei
src/Agent/AgentRunner.php
Technische Änderungen
- Initialisierung von
$commerceIntentund$shopSearchSkippedBecauseNoQueryvor dem Try-Block. - Absicherung gegen Normalisierungsverluste: falls der normalisierte Routing-Prompt keinen Commerce-Intent ergibt, der Originalprompt aber schon, wird der Original-Commerce-Intent übernommen.
- Frühes Meta-Event
Shop-Routing erkanntbei Commerce-Intent. - RAG-Zwischenmeta nutzt bei Commerce-Intent
loadingstattnot_requested. not_requestedwird nicht mehr an mehreren Stellen hart gesetzt, sondern überresolveShopCountModeForMeta()zentral berechnet.- Referenzielle Tabellen-Follow-ups werden ohne vorherige harte History-Anchor-Bedingung in den Shop-Pfad gehoben.
- Tabellen-/Preis-Follow-up-Query sucht History-Kontext robuster über Commerce-Kontext, erweiterten Verlauf und optional Full-History.
- History-Turns werden newest-first geprüft.
- Wenn ein Indikator-/Tabellenkontext ohne Modell gefunden wird, bleibt ein Fallback erhalten; ein später gefundener Modellanker hat Vorrang.
Lokale Prüfungen
Durchgeführt in der Container-Umgebung:
php -l src/Agent/AgentRunner.php
Ergebnis: OK.
Zusätzliche statische Checks:
- kein hartes
shopCountMode: 'not_requested'mehr im AgentRunner not_requestednur noch zentral inresolveShopCountModeForMeta()loading,not_resolved,unavailableundcountwerden zentral unterschieden- keine konkreten Tippfehlerlisten wie
kpstet/ksotet
Nicht vollständig ausführbar in dieser Umgebung:
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
Grund: Die ZIP enthält keine installierten Composer-/Runtime-Dependencies; die lokale Umgebung hat außerdem nicht alle benötigten PHP-Extensions.
Pflichtprüfung nach Einspielen
bin/console cache:clear
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
Falls OPcache/PHP-FPM aktiv ist, danach PHP-FPM bzw. Container neu laden.
Manuelle Regressionstests
shop testomat 808
Erwartung: Shop wird angefragt; nach Shop-Routing nicht mehr Shop-Treffer: nicht angefragt.
was kpstet der indikator
Erwartung: Shop-/Preis-Follow-up greift weiterhin über Normalisierung/Fuzzy-Routing.
welche grenzwerte kann der testomat 808 messen
die tabelle mit preisen
Erwartung: Shop-Suche wird ausgelöst; Query sinngemäß Testomat 808 indikator.
die tabelle mit shop preisen
Erwartung: Shop-Suche wird ausgelöst, sofern Verlaufskontext vorhanden ist; sonst Shop-Treffer: keine Suchquery statt irreführend nicht angefragt.