fix(tools): harden OpenWebUI tool workflows

This commit is contained in:
Mikei386
2026-08-24 00:40:32 +02:00
parent bfb990a4fd
commit e24839bfe1
24 changed files with 505 additions and 100 deletions
+32 -2
View File
@@ -11,7 +11,7 @@ Reihenfolge ist absichtlich festgelegt:
überschreibt den Standard mit Low, Medium oder High.
3. `MikeAI Auto Tool Selector`, Priorität 25: betrachtet ausschließlich die
jüngste Nutzernachricht und stellt pro Anfrage höchstens zwei passende MCPs
bereit. Er erkennt Web, GitHub, Home Assistant, Sonarr/Radarr, Navidrome,
bereit. Er erkennt GitHub, Home Assistant, Sonarr/Radarr, Navidrome,
Unraid-Diagnose und Athena-Plattformwissen. Manuell gewählte Werkzeuge
bleiben erhalten. MUA mit erweiterten Verwaltungsrechten wird nie
automatisch zugeschaltet. Die Auswahl eines MCP ist ausdrücklich keine
@@ -75,7 +75,8 @@ das jeweilige MCP, Bestätigungsregeln und die manuelle MUA-Auswahl begrenzt.
Alle fünf Modelle erhalten außerdem dieselbe Evidenzregel: Aussagen über
aktuelle externe oder Systemzustände benötigen im aktuellen Turn einen
erfolgreichen Aufruf des zuständigen Fachwerkzeugs. Task-Verwaltung zählt nicht
als Datenquelle. Fehlt das Werkzeug oder schlägt es fehl, muss das Modell die
als Datenquelle und wird für einzelne Fragen, Nachschlageaufgaben, Diagnosen
oder Dateiauswertungen nicht verwendet. Fehlt das Werkzeug oder schlägt es fehl, muss das Modell die
fehlende Verifikation offen nennen, statt Werte oder Diagnosen zu erfinden.
Bei mehreren Administratoren muss der gewünschte Eigentümer explizit über
@@ -93,6 +94,35 @@ abgeschnitten. Sind allein die ausgewählten Schemas zu groß, wird der
Werkzeugzugriff nur für diesen Schritt deaktiviert und das Modell erhält eine
eindeutige Abschlussanweisung.
Allgemeine Webrecherche läuft nativ über Open WebUIs `search_web` und
`fetch_url`; der frühere Web-MCP ist nur noch ein manuell gewähltes
Spezialwerkzeug. Pro Antwort sind global höchstens zwölf Werkzeugrunden erlaubt.
Der Stability Guard stoppt den zweiten identischen Aufruf, begrenzt ein Resultat
auf 10.000 und alle Resultate zusammen auf 36.000 Zeichen.
`install-filters.sh` setzt die schlüssellose DuckDuckGo-Suche dabei
reproduzierbar aktiv (fünf Treffer, maximal drei parallele Abrufe).
CSV-, TSV-, Excel- und ODS-Dateien werden ausschließlich lokal verarbeitet.
Die Profile aktivieren dafür den eingebauten Python-Code-Interpreter und die
nativen Dateizugriffswerkzeuge. Tabellen werden nicht als Knowledge/RAG-Text
behandelt; Web- und Web-MCP-Werkzeuge sind für private Tabellendaten gesperrt.
Der Home-Assistant-Relay behält `https://ha.casaderoll.de` als TLS- und
Hostnamen, löst ihn innerhalb des Containers aber über `extra_hosts` auf den
privaten Reverse Proxy `${HOME_LAN_PROXY_IP:-192.168.1.2}` auf. Damit fließt der
MCP-Verkehr über WireGuard ins Heimnetz und nicht über die öffentliche
Fritzbox-Adresse. Bei einer abweichenden Heimserver-IP wird nur
`HOME_LAN_PROXY_IP` in `/etc/mike-ai/stack.env` angepasst.
Nach Installation, Update oder Recovery prüft der rein lesende Katalog-TÜV
alle laufenden MCPs auf Handshake, Werkzeuganzahl, Schema-Größe, ungültige
Regex-Muster und verbotene GitHub-Komplettbäume. Er ruft dabei kein fachliches
Werkzeug auf und liest keine Chats oder Secrets:
```bash
sudo /opt/mike-ai/stack/dev/verify_mcp_catalogs.sh
```
Die rotierende, inhaltsfreie Metrikdatei liegt im persistenten
OpenWebUI-Volume unter `mike-ai-request-metrics.jsonl` (maximal 5 MiB plus eine
Rotation). Sie darf für Benchmarks ausgewertet werden, ohne Chats auszulesen.