feat: open Athena tool architecture
This commit is contained in:
+10
-8
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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` |
|
||||
|
||||
Reference in New Issue
Block a user