Files
MtoRagSystem/RETRIEX_PATCH_44_RUNTIME_ANSWER_GUARD_README.md
2026-05-06 10:05:56 +02:00

4.3 KiB

RetrieX Patch 44 - Runtime Answer Guard / Shop Follow-up Cleanup

Ziel

Dieser Patch behandelt drei Fehler außerhalb der p43 YAML-/Listen-/Maps-Konsolidierung:

  1. Sporadische endlos lange Produktlisten, bei denen ein letztes Shop-Produkt wiederholt wird.
  2. Falscher einleitender Satz bei direkten Zubehör-/Kabel-Shopfragen wie zeige mir Anschlusskabel für pH/Redox.
  3. Falsche Shop-Follow-up-Query schaue bei schaue im shop nach einer vorherigen fachlichen Frage.

Änderungen

1. Runtime-Schutz gegen Endlosantworten

Dateien:

  • src/Agent/AgentRunner.php
  • src/Config/AgentRunnerConfig.php
  • config/retriex/agent.yaml

Änderung:

  • Neuer konfigurierbarer final_answer_guard.
  • Stoppt die finale LLM-Ausgabe, wenn eine Antwort zu lang wird oder dieselbe relevante Antwortzeile zu oft wiederholt wird.
  • Der Guard läuft im finalen Streaming-Pfad und ist generisch: keine Chlor-, Schwimmbad-, Testomat- oder Produkt-Sonderlogik.
  • Bei Abbruch wird ein kurzer Hinweis ausgegeben statt endlos weiterzustreamen.

2. Ollama Output-Cap

Dateien:

  • src/Infrastructure/OllamaClient.php
  • config/retriex/model.yaml
  • config/services.yaml
  • src/Config/RetriexEffectiveConfigProvider.php

Änderung:

  • Neuer Parameter retriex.llm.num_predict: 2048.
  • Wird als Ollama-Option num_predict gesendet.
  • Wichtig für Installationen mit blockierender Ollama-Generierung (stream=false), damit Runaway-Ausgaben bereits auf Modellseite begrenzt werden.

3. schaue im shop als Meta-Shop-Follow-up

Datei:

  • config/retriex/language.yaml

Änderung:

  • Ergänzt zentrale User-Instruction-Terme: schaue, schau, schauen, nachschauen.
  • Dadurch wird schaue im shop wie suche im shop als Meta-Shop-Follow-up behandelt und kann den vorherigen Kontext verwenden, statt die Suchquery schaue zu senden.

4. Zubehörantwort-Hardening

Datei:

  • config/retriex/prompt.yaml

Änderung:

  • Verstärkt Antwortregeln für direkte Zubehör-/Kabel-Shopfragen.
  • Bei passenden Shop-Treffern soll nicht mit einer fehlenden Hauptgerät-/Messgeräte-Aussage begonnen werden.
  • Das verhindert Sätze wie sinngemäß „kein sicher belegter Testomat für pH-Messung“, wenn der Nutzer Anschlusskabel für pH/Redox angefragt hat.

Geänderte Dateien

  • config/retriex/agent.yaml
  • config/retriex/language.yaml
  • config/retriex/model.yaml
  • config/retriex/prompt.yaml
  • config/services.yaml
  • src/Agent/AgentRunner.php
  • src/Config/AgentRunnerConfig.php
  • src/Config/RetriexEffectiveConfigProvider.php
  • src/Infrastructure/OllamaClient.php

Lokale Prüfungen

Ausgeführt:

php -l src/Agent/AgentRunner.php
php -l src/Config/AgentRunnerConfig.php
php -l src/Infrastructure/OllamaClient.php
php -l src/Config/RetriexEffectiveConfigProvider.php
python3 -c 'YAML parse check for changed YAML files'

Ergebnis:

  • PHP-Syntax der geänderten PHP-Dateien: grün.
  • YAML-Parsing der geänderten YAML-Dateien: grün.
  • Konfigurations-Sanity für schaue/schau und shop: grün.

Nicht vollständig lokal ausführbar:

php bin/console mto:agent:config:validate

Grund: Im entpackten ZIP ist kein vendor/ enthalten; bin/console bricht mit Dependencies are missing. Try running "composer install". ab.

Nach dem Einspielen bitte prüfen

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

Manuelle Regressionen

  1. ich würde gern chlor im schwinnbad messen

    • Erwartung: keine endlose Wiederholung des letzten Produkts.
    • Falls das Modell trotzdem wiederholt, muss die Antwort durch den Guard abbrechen.
  2. zeige mir Anschlusskabel für pH/Redox

    • Erwartung: Zubehör-/Kabeltreffer direkt listen.
    • Kein einleitender Satz über fehlenden Testomat oder fehlendes pH-Messgerät.
  3. Dialog:

    • welche indikatoren gibt es für die messung von freiem chlor
    • danach: schaue im shop
    • Erwartung: Shop-Follow-up nutzt den vorherigen Kontext, nicht die Query schaue.

Hinweise

  • Keine Retrieval-, Ranking- oder Produktmatching-Logik wurde geändert.
  • Keine neuen fachlichen Token-/Produktlisten im PHP-Core.
  • Neue fachliche/sprachliche Begriffe liegen in YAML.
  • Der Runtime-Guard ist bewusst generisch und konfigurierbar.