Neuer update-fester Patch-Traeger (deploy/hermes-patches/apply.py) haelt
MC2-eigene Fixes im Hermes-Quellcode, idempotent, in deploy.sh + postcheck
verdrahtet (Exit 10 = Gateway-Neustart, Exit 1 = rot):
0001 needs_input/capability warten auf Commander (keine triage-Eskalation
-> keine Muenz-Schleife)
0002 Decompose erst bei Startreife (Parents done)
0003 Orphan-Guard: Reaper killt Worker, deren Task nicht mehr running
(mc2_kanban_reaper.py) -> max_in_progress leckt nicht
0004 Projekt-/Repo-Kontext vererbt sich auf Kind-Karten
0005 Etappen-Auto-Kette: Bulk-Root-triage-Karten einer Session verketten
Steckbrief: 'Repo fehlt -> selbst anlegen' + verschaerfte Kontext-Regel.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Mission Control 2.0
Komponierbarer Local-AI-Stack für den Bosgame M5 (Strix Halo). Läuft live auf der Box
als sudo-freier systemd-User-Dienst (:9001) und ist als Final-Version eingefroren —
Pflege übernehmen ab jetzt die selbst-wartenden Box-KIs (Auto-Update mit Fangnetz + die
„Werkstatt"), nicht mehr manuelle Releases.
Schichten: Engine (llama.cpp Vulkan/RADV auf Strix Halo) · Router (llama-swap,
Ko-Residenz-Warm-Set) · Builtin-Routing-Gateway in MC2 (model: auto, kein externer
LiteLLM — scheitert auf Python 3.14) · Mission Control 2.0 (FastAPI + React/shadcn) ·
Hermes Agent (api_server-Gateway :8642, Tools/MCP/Telegram/cron) · auto-lernendes
Gedächtnis (Mem0-Sidecar, semantisch). Jede Schicht hinter stabilem Vertrag austauschbar.
Sprachassistentin Lucy (Voice + 3D-Avatar) ist in ein eigenes Repo ausgelagert (
Hitonabi/lucy) und spricht über den Hermes-Gateway. Aus MC2 selbst sind die Voice-/ Web-Reste entfernt — MC2 ist die Steuerzentrale, kein Sprach-Frontend.
Status: live + eingefroren (MC2 Final)
Der ganze Stack ist auf der Box in Betrieb und auf Autonomie ausgelegt (Ziel: läuft auch ohne Betreuung monatelang weiter):
- Modelle & Routing — Discover (live HF + Fit/Caps), Engine-Write (register,
groups/ Ko-Residenz, vocab-geprüfte Spec-Drafts), Gatewaymodel: auto+ Fallbacks. - System & Wartung — Status (CPU/RAM/GPU/Disk), ehrliche Speicher-Zahlen (echte KV-Bytes aus GGUF-Architektur), Logs mit Fehler-Filter, Dienst-Neustart (sudo-frei).
- Updates mit Fangnetz — OS/Engine/Router/Hermes per Timer: Backup → Update → Postcheck → bei Fehler Auto-Rollback + Pin; verständliche Zusammenfassung („Musst du etwas tun?") in Lucys Stimme. Eigene Software wird eingefroren, nicht geupdatet.
- Gedächtnis — Mem0-Sidecar (auto-lernend, semantisch), 4 Kategorien, Auto-Dedupe.
- Selbsterhaltung — Health-Wächter (
sentry), Warm-Set-Wächter (warmer), tägliche Self-Smokes, Lucy-Watchdog + Alarmkette; Werkstatt (Hermes wartet den Stack via Gitea- Branch → Gate → Deploy selbst).
API: health · models · discover · fit · models/register · groups · routing · system/* · maintenance/* · connect · memory/* · agent/* · voice/announce · reminders/*. MCP: mcp/.
Box-Runbooks: docs/HERMES_SETUP.md, docs/RUNBOOK.md,
docs/BEDIENUNG.md + deploy/ (Units, deploy.sh, backup.sh, warmup.sh).
Entwickeln
Backend:
cd backend
python -m venv .venv && .venv/Scripts/python -m pip install -r requirements.txt # Windows
.venv/Scripts/python -m uvicorn app:app --port 9000
Frontend (Dev, proxyt /api → :9000):
cd frontend
npm install
npm run dev # http://localhost:5173
Frontend (Build → wird vom Backend ausgeliefert):
cd frontend && npm run build # → frontend/dist
Env-Vars (Auswahl)
| Variable | Default | Zweck |
|---|---|---|
MC_LLAMA_SWAP_URL |
http://127.0.0.1:8080 |
Engine |
MC_CONFIG_PATH |
/etc/llama-swap/config.yaml |
llama-swap Config |
MC_GATEWAY_URL |
http://127.0.0.1:$MC_PORT |
Builtin-Gateway (Teil von MC2, kein externer Dienst) |
MC_PORT |
9000 |
MC-Backend-Port |
MC_ENGINE_PATH |
/opt/llamacpp-vulkan |
Aktive Engine-Binary (Vulkan-Build) |
MC_ENGINE_REPO |
ggml-org/llama.cpp |
Quelle für Engine-Update-Check |
MC_DRAFTS_DIR |
$MODELS/drafts |
Spec-Draft-Modelle (vocab-geprüft) |
MC_SPEC_TYPE |
draft-simple |
Speculative-Decoding-Typ (llama.cpp) |