Add Hermes Agent as reproducible second client
This commit is contained in:
@@ -15,6 +15,8 @@ Heimnetz / VPN-Clients
|
||||
|
|
||||
<Fritz-VPN-IP>:8080 Open WebUI
|
||||
<Fritz-VPN-IP>:8081 Profile Router API
|
||||
<Fritz-VPN-IP>:9119 Hermes Dashboard
|
||||
<Fritz-VPN-IP>:8642 Hermes Agent API
|
||||
<Fritz-VPN-IP>:8201-08 direkte MCP-Endpunkte
|
||||
|
|
||||
Docker-intern
|
||||
@@ -42,6 +44,7 @@ Heimnetz / VPN-Clients
|
||||
|---|---|---|
|
||||
| WireGuard Gateway | VPN-Adresse, feste Portmatrix | Tunnel und direkte TCP-Proxys für UI, API und Werkzeuge |
|
||||
| Open WebUI | nur Docker-intern | Chat-Oberfläche |
|
||||
| Hermes Agent | nur Docker-intern; Dashboard/API über VPN-Gateway | agentische Oberfläche, Skills, Sitzungen und MCP-Client |
|
||||
| Profile Router | nur Docker-intern | OpenAI-API und Profilwahl |
|
||||
| Profile Controller | nein | startet ausschließlich fest erlaubte Profile |
|
||||
| llama.cpp Profile | nein | Inferenz, Tool Calling, integrierte Vision |
|
||||
|
||||
@@ -12,6 +12,7 @@ Dokumentation.
|
||||
| Qwen-, Projektor- und Bildmodelle | dokumentierte URLs und SHA256 in `config/install.env.example` beziehungsweise der gesicherten Installationskonfiguration |
|
||||
| Navidrome-MCP 2.2.0 samt llama.cpp-Schemafix | `platform/mcp/Dockerfile.navidrome` |
|
||||
| OpenWebUI-Benutzer, Chats, Arbeitsbereichsmodelle, Filter und Verbindungen | verschlüsseltes Recovery-Bundle |
|
||||
| Hermes-Sitzungen, Skills, Konfiguration und Arbeitsfläche | `/data/hermes` im verschlüsselten Recovery-Bundle |
|
||||
| Router-, WireGuard-, HA-, ARR-, Unraid- und Navidrome-Zugangsdaten | verschlüsseltes Recovery-Bundle |
|
||||
| Last.fm API-Key | `/etc/mike-ai/navidrome-mcp.env` im verschlüsselten Bundle |
|
||||
| Navidrome-Bibliothek und Benutzer | bleiben auf dem separaten Unraid-Server |
|
||||
@@ -54,6 +55,8 @@ Das Skript nimmt ausschließlich auf:
|
||||
- das produktive Dokumentations-Overlay unter `/opt/mike-ai/stack/docs`,
|
||||
- Vorschläge, Sicherungen und Auditstatus des Platform Context MCP unter
|
||||
`/data/mike-ai-platform-context`,
|
||||
- Hermes-Sitzungen, Skills, Konfiguration und Arbeitsfläche unter
|
||||
`/data/hermes`,
|
||||
- das vollständige OpenWebUI-Datenvolume,
|
||||
- Prüfsummen und den eingesetzten Git-Commit.
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
| llama.cpp | ggml-org/llama.cpp, festgeschriebener Commit | Buildskript und Commit | Kern |
|
||||
| Qwen-Profile | `platform/profiles/` | vollständig, Modelle ausgenommen | Kern |
|
||||
| MCP-Tool-Stack | `platform/mcp/compose.yaml` | vollständig | Kern |
|
||||
| Hermes Agent | NousResearch Hermes Agent 0.20.5, OCI-Digest gepinnt | eigener Clientcontainer, Dashboard/API, persistente Daten unter `/data/hermes` | Kern |
|
||||
| Websuche | SearXNG + TinySearch/Crawl4AI | intern, ohne veröffentlichten Port | 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 |
|
||||
|
||||
@@ -83,6 +83,20 @@ Der Router übernimmt:
|
||||
- Piper als automatischer CPU-Fallback
|
||||
- Zustands- und Modellendpunkte
|
||||
|
||||
## Hermes Agent
|
||||
|
||||
- Container: `mike-ai-hermes`
|
||||
- Version: 0.20.5, offizielles Image per OCI-Digest gepinnt
|
||||
- Standardmodell: `qwen-medium`, 160.000 Kontext, über den Profile Router
|
||||
- Dashboard: WireGuard-Port 9119 mit Basic-Auth
|
||||
- Agent-API: WireGuard-Port 8642 mit eigenem Bearer-Key
|
||||
- persistenter Zustand: `/data/hermes`
|
||||
- lokales Terminal: ausschließlich `/data/hermes/workspace` im Container
|
||||
- MCPs: Athena-Plattform, Athena-Operator, allgemeines Web, GitHub, Home
|
||||
Assistant, ARR, Navidrome und ein gemeinsamer MUA-Unraid-Zugang
|
||||
- kein Docker-Socket, kein Host-Root-Mount und keine Veröffentlichung auf der
|
||||
Universitätsadresse
|
||||
|
||||
## Vision
|
||||
|
||||
| Bereich | Referenz |
|
||||
|
||||
@@ -63,6 +63,8 @@ werden nicht ausgegeben. Sie liegen root-only unter `/etc/mike-ai`.
|
||||
|
||||
- Open WebUI: `http://<WIREGUARD-IP>:8080`
|
||||
- Router: `http://<WIREGUARD-IP>:8081`
|
||||
- Hermes Dashboard: `http://<WIREGUARD-IP>:9119`
|
||||
- Hermes API: `http://<WIREGUARD-IP>:8642`
|
||||
- SSH fallback: `ssh root@<WIREGUARD-IP>` (key-only, forwarded to host sshd)
|
||||
- llama.cpp-WebUI: absichtlich deaktiviert und nicht veröffentlicht
|
||||
|
||||
@@ -72,9 +74,23 @@ sudo docker inspect -f '{{.State.Health.Status}}' mike-ai-wireguard-gateway
|
||||
sudo docker compose --env-file /etc/mike-ai/stack.env \
|
||||
-f /opt/mike-ai/stack/compose.yaml ps
|
||||
curl http://<WIREGUARD-IP>:8081/health
|
||||
curl http://<WIREGUARD-IP>:8642/health
|
||||
ssh -o BatchMode=yes root@<WIREGUARD-IP> true
|
||||
```
|
||||
|
||||
Hermes verwendet standardmäßig `qwen-medium` mit 160K Kontext und dieselbe
|
||||
Router-API wie OpenWebUI. Das Dashboard meldet sich mit Benutzer `michael` an;
|
||||
das zufällig erzeugte Kennwort wird ausschließlich lokal angezeigt:
|
||||
|
||||
```bash
|
||||
sudo cat /etc/mike-ai/hermes-dashboard-password
|
||||
```
|
||||
|
||||
Der Schlüssel der Agent-API liegt entsprechend unter
|
||||
`/etc/mike-ai/hermes-api-key`. Beide Werte gehören weder in Git noch in Chats.
|
||||
Hermes' lokales Terminal sieht nur `/data/hermes/workspace` im Container. Für
|
||||
Athena und Unraid verwendet es die dokumentierten Operator-/MUA-MCPs.
|
||||
|
||||
Der SSH-Fallback lauscht ausschließlich auf der IPv4-Adresse von `wg0` im
|
||||
WireGuard-Gateway-Container. Er wird nicht als Docker-Port auf dem
|
||||
Standort-Interface veröffentlicht. Das Gateway leitet die Verbindung an den
|
||||
|
||||
@@ -7,7 +7,8 @@ operative Änderungen gilt zusätzlich `QWEN_OPERATOR_CONTEXT.md`.
|
||||
|
||||
Athena ist ein selbst betriebener, datenschutzorientierter KI-Host. Er steht
|
||||
physisch an einem entfernten Standort ohne KVM und wird ausschließlich remote
|
||||
administriert. Open WebUI ist die Benutzeroberfläche. Ein eigener Profile
|
||||
administriert. Open WebUI ist die einfache Benutzeroberfläche; Hermes Agent
|
||||
ist der zweite Client für lange agentische Aufgaben. Ein eigener Profile
|
||||
Router stellt eine OpenAI-kompatible API bereit und schaltet zwischen mehreren
|
||||
reproduzierbaren llama.cpp-Profilen um. Fachwerkzeuge laufen als getrennte MCP-
|
||||
Container; Zugangsdaten gelangen weder in llama.cpp noch in Modellprompts.
|
||||
@@ -43,7 +44,7 @@ bezeichnen als Index 0 von `nvidia-smi` auf dem Host.
|
||||
## Hauptfluss
|
||||
|
||||
```text
|
||||
Browser / API-Client
|
||||
Browser / OpenWebUI / Hermes Agent
|
||||
|
|
||||
| WireGuard, ausschließlich VPN
|
||||
v
|
||||
@@ -64,6 +65,12 @@ Open WebUI ---> Profile Router ---> Profile Controller ---> genau ein llama.cpp-
|
||||
+-- Unraid
|
||||
```
|
||||
|
||||
Hermes hängt parallel zu OpenWebUI direkt am Router und an denselben
|
||||
MCP-Containern. Es betreibt kein zweites Qwen und verändert die Profilmatrix
|
||||
nicht. Dashboard und Agent-API sind nur über WireGuard erreichbar; dauerhafte
|
||||
Hermes-Daten liegen unter `/data/hermes` und sind Bestandteil des
|
||||
verschlüsselten Recovery-Bundles.
|
||||
|
||||
Deemix läuft bereits als Container auf dem Unraid-HomeServer. Eine künftige
|
||||
Deemix-MCP-Integration auf Athena verwendet dieses Backend über WireGuard und
|
||||
erzeugt nicht ungefragt eine zweite Deemix-Instanz.
|
||||
|
||||
@@ -15,6 +15,8 @@ Aktuelle VPN-Adresse: `192.168.1.212`
|
||||
| 8085 | TTS-Gateway | `http://192.168.1.212:8085` |
|
||||
| 8091 | Piper direkt | `http://192.168.1.212:8091` |
|
||||
| 8092 | XTTS direkt | `http://192.168.1.212:8092` |
|
||||
| 9119 | Hermes Dashboard | `http://192.168.1.212:9119` |
|
||||
| 8642 | Hermes Agent API | `http://192.168.1.212:8642` |
|
||||
| 8201 | Athena Platform Context MCP | `http://192.168.1.212:8201/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` |
|
||||
|
||||
Reference in New Issue
Block a user