# 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. Für Hermes/Pi steht TinySearch direkt auf VPN-Port 8203 bereit; der eigene Web-MCP ist nur Rollback. 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 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 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. 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-Revision `01f4282f1ffe0d6212f58d3afbeae21fffd0c4be` beziehungsweise Image-Digest `sha256:6a773e5c3a246b65cbe74ce942b294292c0e5f81c138f703d111bc162f7d7c3d` gepinnt. Das zuvor dokumentierte `v0.9.5` war nicht der tatsächlich migrierte Datenbankstand und darf für diese Datenbank nicht verwendet werden. 5. 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. 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. 8. 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`). 9. 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_terms` in einem Aufruf. 10. Offene technische Diagnosen folgen unabhängig vom konkreten Plugin einer begrenzten Beweiskette: betroffene Komponente und Zeitfenster aus einem kompakten Status bestimmen, das jüngste exakte Artefakt finden, nur entscheidende Zeilen lesen und die führende Ursache mit einem zweiten Fakt bestätigen. MUA r023 begrenzt die Nur-Lese-Shell dafür bereits serverseitig auf standardmäßig 12.000 Zeichen. Auto Tool Selector 4.7 untersagt als Standard vollständige Konfigurationsausgaben, rekursive Verzeichnisbäume und spekulative Shell-Batches. Auslöser war ein realer Appdata-Backup-Test: Die notwendigen Belege waren vorhanden, wurden jedoch durch eine breite Konfigurations- und Verzeichnisinventur verdrängt. ## Abnahme - OpenWebUI-Filtertests: 43 - 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: ```bash 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.