feat: open Athena tool architecture

This commit is contained in:
Mikei386
2026-08-24 12:46:33 +02:00
parent 5528f3ab22
commit 5db73d0a92
26 changed files with 430 additions and 212 deletions
+10 -8
View File
@@ -144,7 +144,7 @@ nicht ein Container pro einzelner Funktion und nicht ein gemeinsamer
Allzweck-MCP mit sämtlichen Zugangsdaten.
```text
Open WebUI ── internes Netz ───────────┬── web-mcp
Open WebUI ── internes Netz ───────────┬── native Websuche / TinySearch-MCP
├── platform-context-mcp
├── home-assistant-mcp
├── arr-mcp
@@ -158,7 +158,8 @@ Pi / weitere MCP-Clients ─┴── feste VPN-Ports 8201-8208 ── MCP-Conta
| Container | Werkzeugbereich | Standardrecht |
|---|---|---|
| `web-mcp` | manuell zugeschaltete Spezialabfragen für YouTube und Hugging Face | nur lesen; begrenzte Aufrufschleifen |
| `tinysearch` | allgemeine portable Websuche für beliebige Sites | nur lesen; kurze Resultate |
| `athena-operator` | strukturierte Plattformarbeit plus breites Terminal | Power und Erreichbarkeitsumbau blockiert |
| `platform-context-mcp` | Architektur, Quellen, Snapshot und Docs-Pflege | kein Docker-Socket; Docs nur Preview/Approval |
| `github-mcp-read` | Repositorysuche, gezielte Datei- und Code-Suche | drei Tools, strikt nur lesen |
| `home-assistant-mcp-read` | Entities, Bereiche, Historie, Diagnose | nur lesen |
@@ -174,10 +175,11 @@ unterschiedlichen Tokens, Netzwerkzugriffen und Werkzeug-Allowlisten. Der
Gateway besitzt keine HA-, ARR- oder Unraid-Secrets. Er authentifiziert Clients,
routet zum zuständigen MCP und begrenzt Antwortgröße, Laufzeit und Aufrufrate.
Eine allgemeine Host-Shell ist ausdrücklich ausgeschlossen. `sandbox-mcp`
läuft ohne Docker-Socket, ohne Infrastruktur-Secrets und nur mit einem
begrenzten Arbeitsverzeichnis. Administrative Aktionen werden als feste,
prüfbare Werkzeuge mit Vorschau und Freigabe modelliert.
Ein zweiter allgemeiner Host-Shell-MCP ist ausgeschlossen, weil das breite
Terminal bereits im Athena Operator liegt. Der Operator hält Ausgaben kurz und
blockiert ausschließlich Befehle, die Stromversorgung oder Athenas entfernte
Erreichbarkeit gefährden. Wiederkehrende Administrative Aktionen bleiben als
strukturierte, prüfbare Werkzeuge modelliert.
Clients aktivieren nur die für den aktuellen Chat benötigte Werkzeuggruppe.
Das reduziert Tool-Schemas, Kontextverbrauch und Fehlaufrufe kleiner Modelle.
OpenWebUI ergänzt passende Fachgruppen automatisch; das allgemeine Web bleibt
immer verfügbar. Andere Clients können dieselben MCP-Endpunkte direkt nutzen.
+3 -2
View File
@@ -7,13 +7,14 @@
| Qwen-Profile | `platform/profiles/` | vollständig, Modelle ausgenommen | Kern |
| MCP-Tool-Stack | `platform/mcp/compose.yaml` | vollständig | Kern |
| Websuche | SearXNG + TinySearch/Crawl4AI | intern, ohne veröffentlichten Port | Kern |
| Web-MCP-Fassade | `platform/web-search/web_search_mcp.py`, sechs begrenzte Werkzeuge einschließlich YouTube/Transkript | eigener Container, `yt-dlp` fest versioniert | Kern |
| Allgemeines Web | OpenWebUI native Suche; TinySearch-Upstream-MCP auf VPN-Port 8203 für andere Clients | site-unabhängig; keine neue Implementierung pro Website | Kern |
| Frühere Web-MCP-Fassade | `platform/web-search/web_search_mcp.py` | nur Rollback-Profil `legacy-web` | Altbestand |
| Home-Assistant-MCP | HA-Endpunkt plus lokaler Relay | eigener optionaler Container | optional |
| ARR-MCP | `arr-mcp` 1.0.1 plus dokumentierter Sonarr-Patch | eigener optionaler Container | optional |
| Navidrome-MCP | Blakeem/Navidrome-MCP 2.2.0, Image per OCI-Digest | eigener optionaler Container ohne mpv | optional |
| GitHub-MCP | offizieller `github/github-mcp-server` 1.10.1, drei begrenzte read-only Werkzeuge | eigener optionaler Container hinter Streamable-HTTP-Brücke | optional |
| Platform Context MCP | Athena-/MikeAI-Wissen, begrenzter Laufzeitsnapshot und kontrollierte Dokumentationspflege | eigener Container ohne Docker-Socket, Shell, Egress oder Secrets | Kern |
| Athena Operator MCP | Entwicklung und vollständiger Betrieb der KI-Plattform mit gebundenen Freigaben | unprivilegierte MCP-Fassade plus rootseitiger strukturierter Executor; keine freie Shell | Kern |
| Athena Operator MCP | Entwicklung und vollständiger Betrieb der KI-Plattform | strukturierte Operationen plus breites, begrenztes Terminal; Erreichbarkeitsänderungen blockiert | Kern |
| Operator-Kontext | `docs/QWEN_OPERATOR_CONTEXT.md` plus `config/operator-system-prompt.txt` | versionierte Selbstbeschreibung und Sicherheitsregeln für Qwen | Kern |
| Unraid/MUA | MUA r020+ auf dem HomeServer, direkter MCP-Endpunkt | read-only Automatik; begrenzte Datei-/Medieninventare; Verwaltung bei explizitem Änderungsauftrag; idempotente Batch-Updates | Kern |
| Whisper | ggml-org/whisper.cpp | Service im Router-Deploy | optional |
+18 -18
View File
@@ -150,11 +150,9 @@ Der isolierte Eignungs- und Ausfalltest ist in
- TinySearch 0.5.1, per Digest gepinnt
- TinySearch ausschließlich im internen Docker-Netz, ohne Host-Port
- lokale ONNX-Embeddings
- kompakte Web-MCP-Fassade 3.0 mit sechs Werkzeugen: Suche, Seite lesen,
YouTube, Vergleich, Einkauf und Recherche
- YouTube-Kanalfeed, Metadaten und Untertitel über fest versioniertes `yt-dlp`;
keine Auswertung von Consent-Seiten
- technisch erzwungener Abbruch nach drei semantisch ähnlichen Suchaufrufen
- OpenWebUI-native allgemeine Suche und Seitenabruf in allen normalen Profilen
- portabler TinySearch-Upstream-MCP mit vier breiten Werkzeugen auf VPN-Port 8203
- die frühere sechsfach spezialisierte Web-Fassade ist nur noch Rollback-Profil
- aktuelle Suchen erhalten keinen pauschalen Wikipedia-Fallback
- strukturierter API-Pfad für Hugging Face; GitHub-Quellcode läuft über den
getrennten offiziellen GitHub-MCP
@@ -173,13 +171,13 @@ Aktuell existieren funktionale Adapter für:
- Unraid read-only
- eigener Unraid-Administrationsserver
OpenWebUI bindet diese Kataloge nicht pauschal an jedes Modellprofil. Der
lokale `MikeAI Auto Tool Selector` ergänzt anhand der jüngsten Nutzernachricht
höchstens drei passende Fach-MCP-Verbindungen pro Anfrage. Eine echte
OpenWebUI bindet nicht pauschal sämtliche großen Fachkataloge ein. Der lokale
`MikeAI Auto Tool Selector` hält das allgemeine Web immer verfügbar und ergänzt
anhand der jüngsten Nutzernachricht alle passenden Fach-MCP-Verbindungen. Eine echte
Mehrdomänen-Aufgabe erhält automatisch ein begrenztes mittleres Reasoning-
Budget; einfache Aufgaben bleiben schnell. Allgemeine
Webrecherche erfolgt über Open WebUIs native `search_web`/`fetch_url`-Werkzeuge;
`web-local` ist nur noch manuell für Spezialfälle verfügbar. Dadurch bleiben
für andere Clients liegt TinySearch direkt auf Port 8203. Dadurch bleiben
Fachkataloge klein und kurze Profile verlieren keinen unnötigen Kontext. Reine
Unraid-Abfragen erhalten nur MUA read-only. Verlangt die aktuelle Nachricht
ausdrücklich eine Unraid-Änderung, stellt die Automatik zusätzlich den
@@ -206,12 +204,12 @@ Die Transportbrücke verwendet den OpenWebUI-kompatiblen `mcp-proxy` 0.12.0 im
stateless Betrieb. Supergateway wurde nach reproduzierbaren HTTP-400-Fehlern
bei `notifications/initialized` aus diesem Pfad entfernt.
Die agentische OpenWebUI-Schleife führt höchstens zwölf einzelne Werkzeuge aus,
höchstens vier Varianten desselben Werkzeugs und niemals zweimal exakt dieselbe
Signatur. Nach Ende des Budgets stehen zusätzliche interne Runden ausschließlich
Die agentische OpenWebUI-Schleife führt höchstens 40 einzelne Werkzeuge aus,
höchstens zwölf Aufrufe desselben Werkzeugnamens und höchstens zweimal exakt
dieselbe Signatur. Nach Ende des Budgets stehen zusätzliche interne Runden ausschließlich
für eine sichtbare werkzeugfreie Schlussantwort bereit. Das produktive
OpenWebUI-Derivat trägt den Tag
`mike-ai/openwebui:main-01f4282-agent-loop-v5`.
`mike-ai/openwebui:main-01f4282-agent-loop-v6`.
Der Platform Context MCP läuft ohne Docker-Socket, Shell, Egress oder Secrets.
Ein root-eigener Minutentimer erzeugt nur einen begrenzten Laufzeitsnapshot.
@@ -222,12 +220,14 @@ Der Athena Operator MCP ersetzt die frühere begrenzte Terminal-Fassade. Er ist
die zusammenhängende Bedienebene, mit der Qwen die KI-Plattform selbst
weiterentwickeln und betreiben kann. Quellenlesen, Dateiänderungen, Tests,
Compose-Deployments, Containeraktionen, Modell-Downloads, Benchmarks,
Git-Publishing und Recovery sind strukturiert verfügbar. Zustandsänderungen
benötigen immer Vorschau und ein content-gebundenes Approval-Ticket. Ein freies
Root-Terminal sowie Remotezugang, Netzwerk/SSH/Boot/Power bleiben getrennt.
Git-Publishing und Recovery sind strukturiert verfügbar. Zusätzlich bietet er
ein breites, ausgabebegrenztes Root-Terminal für Docker, Dateien, Git, HTTP,
Modelle und SSH zu konfigurierten Zielsystemen. Strombefehle und Änderungen an
Athenas SSH, Netzwerk, WireGuard, Firewall, Boot, Kernel, Mounts und Partitionen
sind serverseitig blockiert.
Der frühere allgemeine Shell-MCP und doppelte, schreibende Werkzeuge gehören
nicht zum Sicherheitsziel und werden nicht ungeprüft wiederhergestellt.
Ein separater allgemeiner Shell-MCP wird nicht benötigt; die breite Fähigkeit
ist portabel im Athena Operator auf VPN-Port 8202 enthalten.
## Bekannte Probleme des alten Hosts
+2 -2
View File
@@ -132,8 +132,8 @@ laufen, sondern alle fachlichen Funktionen geprüft wurden.
- [ ] Router nur aus erlaubtem Netz erreichbar
- [ ] Dienste laufen mit minimalen Rechten
- [ ] Environment-Dateien Modus 0600
- [ ] kein allgemeiner Shell-MCP im Standardprofil; Athena Operator besitzt nur
strukturierte, ticketgebundene Plattformoperationen
- [ ] Athena Operator bietet strukturierte Abläufe und das breite Terminal;
Power sowie Athenas SSH/LAN/WireGuard/Firewall/Boot/Kernel/Mounts bleiben blockiert
- [ ] Schreibaktionen verlangen Vorschau und Approval Ticket
- [ ] Secret-Restore wurde ohne Klartextausgabe durchgeführt
- [ ] verschlüsseltes Recovery-Bundle liegt außerhalb von Athena
+10 -7
View File
@@ -10,8 +10,8 @@ Reihenfolge ist absichtlich festgelegt:
2. `Thinking`, Priorität 20: läuft nur bei aktiviertem Brain-Schalter und
ü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 drei passende MCPs
bereit. Er erkennt GitHub, Home Assistant, Sonarr/Radarr, Navidrome,
jüngste Nutzernachricht, hält die native allgemeine Websuche verfügbar und
ergänzt die passenden MCP-Domänen. Er erkennt GitHub, Home Assistant, Sonarr/Radarr, Navidrome,
Unraid-Diagnose und Athena-Plattformwissen. Manuell gewählte Werkzeuge
bleiben erhalten. Bei einer ausdrücklich verlangten Unraid-Änderung werden
MUA-Diagnose und -Verwaltung gemeinsam bereitgestellt; reine Statusfragen
@@ -20,7 +20,8 @@ Reihenfolge ist absichtlich festgelegt:
ausdrücklich keine Freigabe für eine andere Zustandsänderung.
Medienbestandsprüfungen verwenden ab MUA r020 zuerst eine gezielte
Verzeichnissuche und danach ein Inventar des exakten relativen Pfads mit
`unraid_files_inventory`; wiederholte `ls`/`find`-Aufrufe sind nur Fallback.
`unraid_files_inventory`; das allgemeine Athena-Terminal bleibt Fallback für
neue Aufgaben, die kein Fachwerkzeug abdeckt.
4. `MikeAI Stability Guard`, Priorität 30: begrenzt einzelne und gesamte
Werkzeugresultate, verdichtet bei Bedarf zuerst alte Tool-Ausgaben und
Dialogteile und stoppt identische beziehungsweise ausufernde Tool-Schleifen.
@@ -100,10 +101,12 @@ 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.
`fetch_url`; TinySearch ist der portable MCP-Weg für andere Clients. Die
frühere eigene Web-Fassade ist nur noch Rollback. Pro Antwort sind 48 interne
Runden und höchstens 40 tatsächliche Werkzeugausführungen möglich. Je
Werkzeugname sind zwölf Aufrufe möglich; eine identische Signatur darf einmal
wiederholt werden und wird beim dritten Versuch gestoppt. Ein Resultat ist auf
12.000 und alle Resultate zusammen auf 64.000 Zeichen begrenzt.
`install-filters.sh` setzt die schlüssellose DuckDuckGo-Suche dabei
reproduzierbar aktiv (fünf Treffer, maximal drei parallele Abrufe).
+11 -10
View File
@@ -98,11 +98,11 @@ Bestätigungspflichten oder Netzwerkgrenzen auf.
## MCP-Prinzip
Ein Container entspricht einem Fachbereich und einer Vertrauensgrenze. Große
Allzweck-MCPs, ein allgemeiner Root-Shell-MCP und pauschale Werkzeugfreigaben
sind ausdrücklich nicht Teil der Architektur. Standard ist read-only; jede
Schreibaktion benötigt eine konkrete Vorschau, eine daran gebundene Freigabe
und eine anschließende Verifikation.
Ein Container entspricht einem Fachbereich und einer Vertrauensgrenze. Breite
Grundfähigkeiten werden jedoch nicht künstlich in Site-spezifische Werkzeuge
zerlegt: allgemeines Web ist immer verfügbar und der zentrale Athena Operator
besitzt ein begrenztes Terminal für neue Aufgaben. Fach-MCPs bleiben für kurze,
strukturierte API-Ergebnisse der bevorzugte Weg.
Der offizielle GitHub-MCP bietet nur drei Werkzeuge:
@@ -117,11 +117,12 @@ Andere GitHub-Werkzeuge sowie Schreibzugriffe sind serverseitig deaktiviert.
Für Entwicklung und Betrieb der KI-Plattform existiert ein zentraler Athena
Operator MCP. Eine unprivilegierte MCP-Fassade spricht ausschließlich über
einen Unix-Socket mit einem rootseitigen strukturierten Executor. Dadurch kann
Qwen MCPs, Docker-Dienste, Modelle, Profile, OpenWebUI, Tests, Git und Recovery
selbst pflegen, erhält aber keinen freien Root-Befehl. Jede Mutation wird als
gebundene Vorschau vorbereitet und erst nach ausdrücklicher späterer Freigabe
ausgeführt. Netzwerk-, SSH-, Boot- und Powerzugriffe sind nicht Teil davon.
einen Unix-Socket mit einem rootseitigen Executor. Dadurch kann Qwen MCPs,
Docker-Dienste, Modelle, Profile, OpenWebUI, Tests, Git und Recovery selbst
pflegen. Strukturierte Mutationen behalten Vorschau und Ticket; ein breites
Terminal deckt unvorhergesehene Arbeiten ab. Nur Strombefehle und Änderungen an
Athenas SSH, LAN, WireGuard, Firewall, Boot, Kernel, Mounts und Partitionen
bleiben zum Schutz der entfernten Erreichbarkeit blockiert.
## Verbindliche Quellen
+10 -12
View File
@@ -235,8 +235,8 @@ WireGuard-Adresse sind alle Fach-MCPs direkt erreichbar.
| Bereich | Aufgabe | Rechte |
|---|---|---|
| Athena-Plattform | Architektur, Quellen, Laufzeitsnapshot, Dokumentationspflege | Lesen; Markdown nur Preview/Approval |
| Athena Operator | vollständige Entwicklung und Betrieb der KI-Plattform | Lesen direkt; Änderungen nur Preview/Ticket/Approval |
| Web | allgemeine Recherche nativ über Open WebUI; Spezialserver für YouTube und Hugging Face nur bei Bedarf | read-only; höchstens drei verwandte Aufrufe |
| Athena Operator | vollständige Entwicklung und Betrieb der KI-Plattform; breites Terminal für neue Aufgaben | direkt; Power und Athenas Erreichbarkeitskonfiguration blockiert |
| Web | OpenWebUI-native allgemeine Recherche; TinySearch-MCP auf Port 8203 für Hermes/Pi | read-only; site-unabhängig |
| GitHub | Repositorysuche, gezielte Datei- und Code-Suche | strikt read-only, drei Tools |
| Home Assistant | Zustände, Historie, Diagnose, begrenzte YAML-Abläufe | Lesen; Schreiben nur Preview/Approval |
| ARR | Sonarr/Radarr, Indexersuche, kontrollierte Grabs | Lesen; Schreiben nur Preview/Approval |
@@ -264,16 +264,14 @@ im Diensteverzeichnis eingetragen. Für ein Deemix-MCP wird standardmäßig nur
ein Relay auf Athena gebaut; ein zweites Deemix-Backend erfordert einen
ausdrücklichen Migrations-, Ersatz- oder Testauftrag.
`Athena Operator` ist die zentrale Arbeitsumgebung für Änderungen an Athena.
Nutze ihn zum Lesen der tatsächlichen Quellen, Erstellen und Anwenden von
Dateiänderungen, Testen, Deployen von Compose-Diensten und MCPs, Verwalten der
MikeAI-Container, Laden und Prüfen von Modellen, Starten versionierter
Benchmarks, Git-Publishing und Recovery. Änderungen erfolgen stets in zwei
getrennten Phasen: vollständige Vorschau erzeugen, dem Benutzer zeigen und
stoppen; erst nach dessen späterer exakter Ticketbestätigung ausführen. Ein
freier Shellbefehl, SSH, Netzwerk-/WireGuard-/Firewall-Umbau, Boot/Kernel/
Treiber/Partitionen sowie Reboot und Shutdown sind nicht Bestandteil des
Operators und dürfen nicht umgangen werden.
`Athena Operator` ist die zentrale Arbeitsumgebung für Athena. Nutze die
strukturierten Operationen für wiederkehrende Plattformabläufe. Nutze das
allgemeine Terminal, wenn die Aufgabe neu ist oder keine passende strukturierte
Operation existiert; es kann Docker, Dateien, Git, HTTP, Modelle und SSH zu
konfigurierten Zielsystemen bedienen. Halte Ausgaben kurz und verifiziere
Änderungen. Der Executor blockiert Strombefehle und Änderungen an Athenas SSH,
LAN, WireGuard, Firewall, Boot, Kernel, Mounts und Partitionen, weil der Host
physisch nicht erreichbar ist.
Der offizielle GitHub-MCP `github/github-mcp-server` 1.10.1 läuft hinter einer
reinen stdio-zu-Streamable-HTTP-Brücke. Aktiv sind ausschließlich:
+8 -9
View File
@@ -55,15 +55,14 @@ Sandbox. Er ist klein, testbar und nicht von Clients direkt erreichbar.
| Unraid Diagnose | Status und eng begrenzte Logs |
| Administration | Vorschau, Approval-Ticket, Verifikation |
Allgemeine Shell, beliebiges SSH/SCP, freies `curl`, Docker-Administration und
freie Dateisystemsuche gehören nicht ins Standardprofil. Für die Athena-
Plattform existiert genau ein Operator-MCP. Seine unprivilegierte Fassade sieht
nur einen lokalen Unix-Socket; ein rootseitiger Executor besitzt die für
Repository, Docker, Modelle, Git und Recovery notwendigen Rechte. Er bietet
keinen beliebigen Befehl an, sondern strukturierte Operationen mit Vorschau,
Inhaltsbindung, Ablaufzeit und späterer exakter Freigabe. SSH-, Netzwerk-,
WireGuard-, Firewall-, Boot-, Kernel-, Treiber-, Partitions-, Reboot- und
Shutdown-Änderungen liegen außerhalb seiner API.
Für die Athena-Plattform existiert genau ein Operator-MCP. Seine unprivilegierte
Fassade sieht nur einen lokalen Unix-Socket; ein rootseitiger Executor besitzt
die für Repository, Docker, Modelle, Git und Recovery notwendigen Rechte. Neben
strukturierten Operationen bietet er ein breites, ausgabebegrenztes Terminal für
neue Aufgaben, einschließlich SSH zu konfigurierten Zielsystemen. Serverseitig
gesperrt bleiben Strombefehle sowie Änderungen an Athenas SSH, LAN, WireGuard,
Firewall, Boot, Kernel, Mounts und Partitionen. Diese Grenze schützt die
Erreichbarkeit des physisch entfernten Hosts.
## Schreibaktionen
+13 -14
View File
@@ -12,8 +12,8 @@ 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.
`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.
@@ -27,10 +27,10 @@ benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.
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 16 interne Werkzeugrunden und zwölf tatsächlich
ausgeführte Einzelaufrufe erlaubt. Pro konkretem Werkzeug sind höchstens
vier unterschiedliche Aufrufe zulässig; identische Argumente werden kein
zweites Mal ausgeführt. Die zusätzlichen vier internen Runden sind nur
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
@@ -39,24 +39,23 @@ benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.
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.
nicht erneut ausgeführt werden. Ein einzelnes Resultat ist auf 12.000, alle
Resultate zusammen auf 64.000 Zeichen begrenzt.
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
höchstens drei gezielte Code-Suchen und öffnen nur relevante Treffer. Eine
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 höchstens drei passende
Fachkataloge und ein begrenztes Qwen-Reasoning-Budget. Einfache Ein-Domänen-
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
@@ -66,9 +65,9 @@ benötigte deshalb kleinere, klarere Werkzeuge und harte Abbruchgrenzen.
## Abnahme
- OpenWebUI-Filtertests: 28
- OpenWebUI-Filtertests: 34
- Web-MCP-Tests: 9
- Athena-Operator-Sicherheitstests: 11
- 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
+83
View File
@@ -0,0 +1,83 @@
# Werkzeugarchitektur ab 24. August 2026
## Ziel
Athena darf nicht für jede neue Website oder jede neue Verwaltungsaufgabe ein
neues Werkzeug benötigen. Die Plattform stellt deshalb breite Grundfähigkeiten
bereit und ergänzt sie nur dort durch Fach-MCPs, wo eine strukturierte API einen
echten Vorteil bietet.
## Die drei Ebenen
1. **Breites Web:** OpenWebUI hält `search_web` und `fetch_url` in allen
normalen Profilen verfügbar. MakerWorld, eBay, Herstellerseiten oder eine
morgen neu entstehende Website benötigen keine Selector-Änderung. Für
Hermes, Pi und andere MCP-Clients liegt derselbe allgemeine Einsatzzweck über
den unveränderten TinySearch-Upstream-MCP auf VPN-Port 8203 bereit.
2. **Breiter Operator:** Der Athena Operator enthält neben strukturierten
Plattformaktionen ein ausgabebegrenztes allgemeines Terminal. Es deckt
Docker, Compose, Dateien, Git, HTTP/API, Modellarbeit und SSH zu
konfigurierten Zielsystemen ab. Eine kleine serverseitige Sperre verhindert
ausschließlich Strombefehle und Änderungen an Athenas SSH, LAN, WireGuard,
Firewall, Boot, Kernel, Mounts und Partitionen, weil Athena physisch nicht
erreichbar ist.
3. **Fach-MCPs:** Home Assistant, MUA/Unraid, ARR, Navidrome und GitHub bleiben
erhalten. Sie liefern kurze strukturierte Ergebnisse und domänenspezifische
Schreibabläufe. Sie sind der bevorzugte Weg, aber keine Schranke: Fehlt eine
Spezialoperation, darf der Operator die Aufgabe allgemein erledigen.
OpenWebUI ist Oberfläche und Komfortschicht. Der Auto Tool Selector hält Web
bereit und hängt anhand der Anfrage passende Fachkataloge an. Er verweigert
keine Fähigkeit und erfordert keine Site-spezifischen Regeln. Alle zentralen
MCPs sind über feste WireGuard-Ports auch für Hermes und Pi erreichbar.
## Agentische Grenzen
- maximal 48 interne Werkzeugrunden
- maximal 40 tatsächlich ausgeführte Einzelaufrufe
- maximal 12 Aufrufe desselben Werkzeugnamens
- identischer Werkzeugname mit identischen Argumenten darf einmal wiederholt
werden; der dritte identische Aufruf wird unterdrückt
- ein unterdrückter Parallelaufruf beendet nicht mehr die gesamte Recherche,
solange im selben Stapel noch sinnvolle Aufrufe vorhanden sind
- bei ausgeschöpftem Budget folgt zwingend eine werkzeugfreie, sichtbare
Schlussantwort aus den bereits erhobenen Befunden
- Werkzeugausgaben bleiben kurz: 12.000 Zeichen je Ergebnis und 64.000 Zeichen
über den Verlauf; ältere Resultate werden zuerst verdichtet
Damit stoppt die Plattform bewiesene Schleifen, nicht normale lange Recherche.
Die früheren Grenzen von zwölf Gesamtaufrufen und vier Aufrufen je Werkzeug
waren für Qwen3.8-Agentenaufgaben zu klein.
## Webwege
| Client | Standardweg |
|---|---|
| OpenWebUI | native `search_web` und `fetch_url`, immer verfügbar |
| Hermes/Pi/andere MCP-Clients | `http://192.168.1.212:8203/mcp` (TinySearch) |
| Spezial-/Rollbackbedarf | historischer `mcp-web` nur mit Compose-Profil `legacy-web` |
TinySearch stellt die vier Upstream-Werkzeuge `search`, `scrape_urls`,
`research` und `get_current_datetime` bereit. Die frühere selbstgeschriebene
Web-Fassade wird nicht mehr standardmäßig gestartet und liegt nur für Rollback
im Repository.
## Sicherheitsgrenze
Über die WireGuard-Adresse sind die Dienste normal nutzbar. Auf der physischen
Universitätsadresse bleiben UI, Router und MCP-Ports geschlossen. Die
Terminal-Sperre schützt ausschließlich die entfernte Erreichbarkeit; sie ist
kein allgemeiner Funktions- oder Internetfilter.
## Abnahme
Nach Änderungen müssen mindestens folgende Prüfungen erfolgreich sein:
1. `python3 dev/test_openwebui_filters.py`
2. `python3 dev/test_athena_operator.py`
3. `docker compose -f compose.yaml config -q`
4. `docker compose -f platform/mcp/compose.yaml config -q`
5. `dev/verify_mcp_catalogs.sh`
6. Browserlauf mit einer unbekannten öffentlichen Website, GitHub plus
Laufzeitprüfung sowie einer mehrstufigen Home-/Unraid-Aufgabe
+2 -2
View File
@@ -16,8 +16,8 @@ Aktuelle VPN-Adresse: `192.168.1.212`
| 8091 | Piper direkt | `http://192.168.1.212:8091` |
| 8092 | XTTS direkt | `http://192.168.1.212:8092` |
| 8201 | Athena Platform Context MCP | `http://192.168.1.212:8201/mcp` |
| 8202 | Athena Operator MCP | `http://192.168.1.212:8202/mcp` |
| 8203 | Web-MCP | `http://192.168.1.212:8203/mcp` |
| 8202 | Athena Operator MCP einschließlich Terminal | `http://192.168.1.212:8202/mcp` |
| 8203 | Allgemeiner TinySearch-MCP | `http://192.168.1.212:8203/mcp` |
| 8204 | GitHub-MCP | `http://192.168.1.212:8204/mcp` |
| 8205 | Home-Assistant-MCP | `http://192.168.1.212:8205/mcp` |
| 8206 | ARR-MCP | `http://192.168.1.212:8206/mcp` |