Files
mission-control-v2/docs/HERMES_SETUP.md
T
2026-08-07 12:09:55 +02:00

4.9 KiB

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:

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:

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:

{ "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:

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):
    agent:
      disabled_toolsets: [vision, computer_use, image_gen, tts, video, video_gen]
    memory:
      memory_enabled: true
      user_profile_enabled: true
    
    ⚠️ 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, browser, memory. 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.