Files
AI-Profile-Router/docs/TOOLING_RELIABILITY_2026-08-24.md
T

4.1 KiB
Raw Blame History

Werkzeug-Zuverlässigkeit – Umbau vom 24. August 2026

Anlass

Mehrere reale Aufgaben scheiterten nicht am Qwen-Modell, sondern an der Werkzeugschicht: öffentliche Suchen lieferten leere oder veraltete Resultate, ein rekursiver GitHub-Baum verdrängte die Antwort aus dem Kontext, eine private Bank-CSV wurde als Knowledge-Quelle statt als Tabelle behandelt und ein nicht erreichbarer Home-Assistant-Endpunkt provozierte Wiederholungen. Das System benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.

Verbindliche Lösung

  1. Allgemeine öffentliche Recherche verwendet Open WebUIs native search_web- und fetch_url-Werkzeuge. Der eigene Web-MCP bleibt nur als manuell zugeschalteter Spezialadapter für YouTube und Hugging Face.
  2. Der offizielle GitHub-MCP bietet genau drei read-only Werkzeuge: search_repositories, search_code und get_file_contents. Rekursive Komplettbäume sind ausgeschlossen.
  3. Private CSV-/Excel-Dateien werden ausschließlich mit dem lokalen Code-Interpreter und pandas/openpyxl ausgewertet. Web, MCP und Knowledge/RAG erhalten keine Dateiinhalte oder daraus abgeleitete Suchbegriffe. Der Filter leert dafür die MCP-Auswahl und deaktiviert features.web_search; im installierten OpenWebUI-Code läuft der Filter nachweislich vor der Webwerkzeug-Injektion. Vor pandas.read_csv werden Rohvorschau, Kodierung, Trennzeichen, Kopfzeile, Metadatenzeilen, Dezimal- und Datumsformat erkannt; damit führen deutsche Bankexporte nicht mehr unnötig zuerst zu einem ParserError wegen einer falschen Spaltenzahl. Tabellenanalysen sollen im Regelfall mit einer Erkennungs- und einer Auswertungsrunde auskommen.
  4. Pro Antwort sind höchstens acht Werkzeugrunden erlaubt. Das abgeleitete, reproduzierbar gebaute OpenWebUI-Image verwendet die letzte Runde zwingend als werkzeugfreie Synthese. Statt Tool-call limit reached ohne Ergebnis erhält der Benutzer deshalb eine sichtbare Antwort aus den vorhandenen Befunden samt ehrlicher Angabe fehlender Belege. Inlet-Filter allein können dies nicht erzwingen, weil sie zwischen OpenWebUIs internen Werkzeugrunden nicht erneut ausgeführt werden. Der zweite identische Aufruf wird gestoppt. Ein einzelnes Resultat ist auf 10.000, alle Resultate zusammen auf 36.000 Zeichen begrenzt.
  5. Repository-Prüfungen beginnen mit README/Wurzel, verwenden anschließend höchstens drei gezielte Code-Suchen und öffnen nur relevante Treffer. Eine konkrete Laufzeitinstanz wird genau einmal über ihr Fachwerkzeug geprüft.
  6. Der Home-Assistant-MCP behält den TLS-Namen ha.casaderoll.de, routet ihn im Container aber auf HOME_LAN_PROXY_IP im Heimnetz. Dadurch funktioniert er auch vom Außenstandort über WireGuard.
  7. Task-Management ist keine Faktenquelle und wird nicht für einzelne Fragen, Nachschlageaufgaben oder Dateianalysen verwendet.

Abnahme

  • OpenWebUI-Filtertests: 28
  • Web-MCP-Tests: 9
  • Athena-Operator-Sicherheitstests: 11
  • Platform-Context-Test: bestanden
  • MCP-Katalog-TÜV: Handshake, Toolanzahl, Schema-Größe, Regex-Muster und verbotene Tools; keinerlei fachliche Toolaufrufe
  • Gesamttest des Routers: Profile, Streaming, Tools, Bild, Sprache und Fehlerwiederherstellung

Der wiederholbare MCP-Test lautet:

sudo /opt/mike-ai/stack/dev/verify_mcp_catalogs.sh

Er muss mit MCP_CATALOG_SUITE_OK enden.

Noch manuell zu prüfen

Ein echter Browsertest mit einer bewusst synthetischen CSV benötigt eine angemeldete OpenWebUI-Sitzung. Nach Login wird eine harmlose Beispieltabelle hochgeladen und geprüft, dass die Antwort sichtbare Summen enthält und in der Werkzeuganzeige ausschließlich lokale Datei-/Codewerkzeuge erscheinen. Für diesen Test dürfen niemals echte Bankdaten verwendet werden.

Rollback

Vor dem Live-Umbau liegt die Quell- und Konfigurationssicherung unter /data/mike-ai-recovery/pre-tooling-upgrade-20260823-235527. OpenWebUIs Datenbank wurde zusätzlich unmittelbar vor Filter- und Modellinstallation gesichert. Ein Rollback betrifft ausschließlich Werkzeug-/OpenWebUI-Dateien; Netzwerk, SSH, WireGuard, Kernel, GPU-Treiber und Bootkonfiguration wurden nicht verändert.