- 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>
4.9 KiB
Hermes-Schicht — Box-Runbook
Diese Schritte laufen auf der Bosgame (
192.168.178.151, Userhitonabi). 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 ausdeploy/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: [browser, vision, computer_use, image_gen, tts, video, video_gen, memory] memory: memory_enabled: false user_profile_enabled: falsehermes tools disable <x>wirkt nur für die cli-Plattform, nicht den api_server — nutzeagent.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_serversin config) — laufen über die v2-venv (hat dasmcp-Modul nach pip install):- geteiltes Gedächtnis:
~/mission-control-v2/backend/.venv/bin/python ~/mission-control-v2/mcp/mcp_memory.py(EnvMC_URL=http://127.0.0.1:9001) - Stack-Management:
~/mission-control-v2/backend/.venv/bin/python ~/mission-control-v2/mcp/mcp_mc.py(EnvMC_URL=http://127.0.0.1:9001)
- geteiltes Gedächtnis:
- SSH→Windows-PC (voller Zugriff): OpenSSH-Server auf Windows aktiv + Key
~/.ssh/id_ed25519_hermes_agentautorisiert; Hermes nutzt sein terminal-Tool fürssh TobisPC@<win-ip>.
6. Verifikation
curl :8642/v1/chat/completions„bist du da?" → kurze Antwort in wenigen Sekunden, kein Tool-Loop imjournalctl --user -u hermes-gateway; llama-swap/runningzeigtHermes-4-14B.- WebUI öffnet vom Windows-PC, Chat antwortet.
- Hermes kann via
mcp_mcModelle listen/Routing ändern; erreicht (nach §5-SSH) den Windows-PC.