Files
mission-control-v2/docs/HERMES_SETUP.md
Hitonabi 592057c53f Doku an die Hermes-Desktop-Realität angepasst (Umbau 09.07.2026)
- BEDIENUNG.md: Bereichs-Liste auf die echten 10 Sidebar-Tabs gebracht
  (Auftragsbuch/Wissen/Chronik/Konsole fehlten komplett), Verbinden-Abschnitt
  auf Hermes Desktop/Kilo/Claude Code umgestellt (Zed/Roo abgeschafft),
  Verweis "Arbeiten = Desktop-App, MC2 = Maschinenraum".
- DISASTER_RECOVERY.md: hermes-terminal-Zeile durch Desktop-Gateway
  (hermes-builtin-ui) + Token-Drop-in + Token-Kopie ersetzt (übernimmt die
  gerettete Orchestrator-Änderung), nesquena-WebUI-Zeile durch
  Hermes-Desktop-Eintrag (PC) ersetzt, Wizard-Checkliste angepasst.
- HERMES_SETUP.md: §3 (nesquena-webui-Install, obsolet) durch "Hermes
  Desktop (PC) anbinden" ersetzt: Token-Drop-in auf der Box,
  connection.json am PC, MC2-Proxy-URL, cli-Toolset-Hinweis.

Hintergrund: Der Orchestrator-Lauf zu diesem Auftrag delegierte erstmals
echt (worker.sh plan/build), scheiterte aber an falschem Schreibziel
(Live-Checkout statt Worktree) + Output-Limit — Rest von Hand zu Ende
geführt, gerettete Änderung übernommen.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 10:08:43 +02:00

95 lines
4.9 KiB
Markdown

# Hermes-Schicht — Box-Runbook
> Diese Schritte laufen **auf der Bosgame** (`192.168.178.151`, User `hitonabi`).
> MC betreibt Hermes nicht — es zeigt nur Status + verlinkt das WebUI. Hier wird die
> eigentliche **volle Verdrahtung** gemacht (das war in v1 der „Hermes ist dumm"-Grund).
## Reihenfolge der Dienste
`llama-swap (:8080)`**builtin Gateway (`:9001/v1`, Teil von MC2)**`hermes-gateway (:8642)`
`hermes-webui (:8787, nesquena)`
## 1. Gateway = builtin (kein LiteLLM)
LiteLLM scheitert auf Python 3.14 (uvloop/orjson). MC2 bringt einen **eingebauten** OpenAI-kompatiblen
Gateway auf `:9001/v1` mit: `model: auto` (kurz→`fast`, komplex→`heavy`) + explizite Aliase
(`fast`/`heavy`/`coder`/`vision`/`hermes`). Verifizieren:
```bash
curl -s http://127.0.0.1:9001/v1/models
```
## 2. Engine: Rollen (llama-swap)
Aliase sauber: `fast` (Qwen3.6-35B-A3B), `heavy` (Qwen3.5-122B-A10B), `coder`, `vision`, `scout`,
`hermes` (Hermes-4-14B, `ttl 99999` = immer warm). Verwaltung im Cockpit (Modelle & Routing).
**Ko-Residenz** (optional): Gruppe `swap:false` für `hermes`+`fast` → beide warm; `heavy`/`vision`
on-demand. GTT beobachten (~124 GB Limit).
## 3. Hermes Desktop (PC) anbinden — die Agent-Oberfläche
> Historie: früher lief hier das nesquena-hermes-webui (:8787), danach der „Hermes GUI"-Tab in
> MC2. Beides ist seit 09.07.2026 abgebaut — die Agent-Oberfläche ist die **Hermes-Desktop-App**
> am Windows-PC; auf der Box bleibt nur `hermes-builtin-ui` (:9119, loopback) als **Desktop-Gateway**
> (Unit kommt aus `deploy/deploy.sh`).
**Auf der Box (einmalig):** statischer Session-Token, damit die App Dienst-Neustarts/Deploys übersteht:
```bash
mkdir -p ~/.config/systemd/user/hermes-builtin-ui.service.d
# session-token.conf: [Service] + Environment=HERMES_DASHBOARD_SESSION_TOKEN=<zufallswert>
# Wert zusätzlich nach ~/.hermes/desktop-gateway-token legen (chmod 600 auf beide Dateien)
systemctl --user daemon-reload && systemctl --user restart hermes-builtin-ui
```
**Am PC:** `Hermes-Setup.exe` (hermes-assets.nousresearch.com) installieren, dann in
`%APPDATA%\Hermes\connection.json` den Remote-Modus setzen:
```json
{ "mode": "remote",
"remote": { "url": "http://192.168.178.151:9001/hermes-ui",
"authMode": "token",
"token": { "encoding": "plain", "value": "<Wert aus ~/.hermes/desktop-gateway-token>" } } }
```
Die URL läuft über den **bestehenden MC2-Proxy** (`/hermes-ui/*` inkl. WebSockets) — kein neuer
Port, keine neue Firewall-Freigabe. Alternativ in der App: Settings → Gateway. Desktop-Sessions
nutzen das volle `cli`-Toolset; die schlanke `api_server`-Lane (Lucy/Voice) bleibt unberührt.
Token-Werte gehören NIE in Doku/Git — nur die Pfade.
## 4. Hermes-Hirn = dediziertes Hermes-4-14B + Delegation (NICHT model:auto)
In `~/.hermes/config.yaml`:
```yaml
model:
default: Hermes-4-14B
provider: custom
base_url: http://127.0.0.1:9001/v1
api_key: local
model: hermes # Hermes' eigenes Hirn (Alias→Hermes-4-14B), NICHT 'auto'
delegation:
model: heavy # harte Teilaufgaben → Qwen3.5-122B
provider: custom
base_url: http://127.0.0.1:9001/v1
api_key: local
orchestrator_enabled: true
subagent_auto_approve: true
```
`model:auto` bleibt ausschließlich Gateway-Funktion für Vibe Coding/IDEs.
## 5. Tools/MCP verdrahten — UND kaputte Tools abschalten (Thrash-Fix!)
- **Kaputte/Cloud-Tools global abschalten** (sonst Endlos-Loops, siehe Memory `hermes-thrash-rootcause-fix`):
```yaml
agent:
disabled_toolsets: [browser, vision, computer_use, image_gen, tts, video, video_gen, memory]
memory:
memory_enabled: false
user_profile_enabled: false
```
⚠️ `hermes tools disable <x>` wirkt nur für die cli-Plattform, **nicht den api_server** — nutze
`agent.disabled_toolsets` (gilt für ALLE Plattformen).
- **Behalten:** terminal/shell, file, code_execution, skills, todo, session_search, clarify,
delegation, cronjob, web. `approvals: auto` (rein lokal).
- **MCP-Server** (`mcp_servers` in config) — laufen über die v2-venv (hat das `mcp`-Modul nach pip install):
- geteiltes Gedächtnis: `~/mission-control-v2/backend/.venv/bin/python ~/mission-control-v2/mcp/mcp_memory.py` (Env `MC_URL=http://127.0.0.1:9001`)
- Stack-Management: `~/mission-control-v2/backend/.venv/bin/python ~/mission-control-v2/mcp/mcp_mc.py` (Env `MC_URL=http://127.0.0.1:9001`)
- **SSH→Windows-PC** (voller Zugriff): OpenSSH-Server auf Windows aktiv + Key
`~/.ssh/id_ed25519_hermes_agent` autorisiert; Hermes nutzt sein terminal-Tool für `ssh TobisPC@<win-ip>`.
## 6. Verifikation
- `curl :8642/v1/chat/completions` „bist du da?" → kurze Antwort in wenigen Sekunden, **kein** Tool-Loop
im `journalctl --user -u hermes-gateway`; llama-swap `/running` zeigt `Hermes-4-14B`.
- WebUI öffnet vom Windows-PC, Chat antwortet.
- Hermes kann via `mcp_mc` Modelle listen/Routing ändern; erreicht (nach §5-SSH) den Windows-PC.