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

83 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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:
```bash
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.