6.2 KiB
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
- Allgemeine öffentliche Recherche verwendet Open WebUIs native
search_web- undfetch_url-Werkzeuge. Für Hermes/Pi steht TinySearch direkt auf VPN-Port 8203 bereit; der eigene Web-MCP ist nur Rollback. - Der offizielle GitHub-MCP bietet genau drei read-only Werkzeuge:
search_repositories,search_codeundget_file_contents. Rekursive Komplettbäume sind ausgeschlossen. - 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. Vorpandas.read_csvwerden 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. - Pro Antwort sind höchstens 48 interne Werkzeugrunden und 40 tatsächlich
ausgeführte Einzelaufrufe erlaubt. Pro Werkzeugname sind höchstens zwölf
Aufrufe zulässig; identische Argumente dürfen einmal wiederholt werden und
werden beim dritten Versuch unterdrückt. Die zusätzlichen internen Runden sind
Synthesepuffer und erhöhen nicht das Ausführungsbudget. Das abgeleitete,
reproduzierbar gebaute OpenWebUI-Image verwendet die letzte Runde zwingend
als werkzeugfreie Synthese. Erzeugt das Modell trotz entfernter Schemata
noch einmal werkzeugförmige Ausgabe, folgt genau ein zweiter, ebenfalls
werkzeugloser Syntheseversuch. Statt
Tool-call limit reachedohne 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. Seit OpenWebUI-Derivat V7 sitzt die Größenbegrenzung deshalb direkt in der internen Fortsetzungsschleife: ein einzelnes Resultat ist auf 12.000, alle Resultate zusammen auf 64.000 Zeichen begrenzt. Zitate und sichtbarer Werkzeugstatus werden zuvor verarbeitet; das Modell erhält eine markierte Kopf-/Ende-Verdichtung. Die Basis ist unveränderlich auf OpenWebUI-Revision01f4282f1ffe0d6212f58d3afbeae21fffd0c4bebeziehungsweise Image-Digestsha256:6a773e5c3a246b65cbe74ce942b294292c0e5f81c138f703d111bc162f7d7c3dgepinnt. Das zuvor dokumentiertev0.9.5war nicht der tatsächlich migrierte Datenbankstand und darf für diese Datenbank nicht verwendet werden. - Repository-Prüfungen beginnen mit README/Wurzel, verwenden anschließend gezielte Code-Suchen und öffnen nur relevante Treffer. Eine konkrete Laufzeitinstanz wird genau einmal über ihr Fachwerkzeug geprüft.
- Der Home-Assistant-MCP behält den TLS-Namen
ha.casaderoll.de, routet ihn im Container aber aufHOME_LAN_PROXY_IPim Heimnetz. Dadurch funktioniert er auch vom Außenstandort über WireGuard. - Task-Management ist keine Faktenquelle und wird nicht für einzelne Fragen, Nachschlageaufgaben oder Dateianalysen verwendet.
- Mehrdomänen-Aufgaben erhalten automatisch die passenden Fachkataloge und
ein begrenztes Qwen-Reasoning-Budget. Einfache Ein-Domänen-
Aufgaben bleiben im schnellen Non-Thinking-Modus. Alle llama.cpp-Profile
bewahren Reasoning-Zustand zwischen Werkzeugrunden (
--reasoning-preserve). - Wiederkehrende Fachsuchen werden serverseitig gebündelt: Home Assistant
inventarisiert auskommentierte YAML-Blöcke in einem Aufruf; MUA durchsucht
Community Applications mit mehreren Namensvarianten in einem Feed-Durchlauf
und filtert Containerlogs mit mehreren
focus_termsin einem Aufruf.
Abnahme
- OpenWebUI-Filtertests: 36
- Web-MCP-Tests: 9
- Athena-Operator-Tests: 13
- 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.
Reale Browserabnahme
Die angemeldete OpenWebUI-Sitzung bestand am 24. August 2026 folgende Läufe:
- unbekannte Website MakerWorld über native Suche plus TinySearch 0.6.1
- GitHub-Repository plus vorhandener Unraid-Container plus Athena-Planung
- mehrstufige Home-Assistant-YAML-Analyse ohne Vollinventar
- bewusst angeforderte 223-KB-Klasse einer Home-Assistant-Zustandsliste; V7 lieferte trotz 2.169 Zuständen nach 30,9 Sekunden eine sichtbare Kurzantwort
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.