Paket A des Plans. Ersetzt die flache SQLite-Fakten-DB durch Mem0 (LLM-Auto-
Extraktion + Vektor/Chroma-Suche). Architektur erzwungen durch Python-Split:
MC2-Backend laeuft auf 3.14 (kann mem0 nicht importieren), mem0+chromadb nur
auf 3.12 (~/.mem0/venv) -> Mem0-Sidecar (FastAPI, localhost:8765), MC2 spricht
ihn per HTTP. /api/memory-Form bleibt unveraendert (UI + MCP kompatibel).
- mem0_service/: Sidecar (app.py), Migration (migrate.py), deps.
- Embeddings: neue llama-swap embed-Rolle (Qwen3-Embedding-0.6B, 1024 Dim,
pooling last) ueber /v1/embeddings.
- LLM-Extraktion: lokales fast-Hirn; NoThinkLLM schaltet Qwen3-Thinking ab
(sonst bricht json_object-Extraktion ab), custom_instructions halten Deutsch.
- backend/services/memory.py: duenner HTTP-Client auf den Sidecar (semantische
Suche mit score, verbatim add, learn()). Router: /api/memory/learn.
- mcp/mcp_memory.py: neues learn-Tool (Auto-Lernen aus Gespraechs-Turns),
search jetzt semantisch.
- Frontend: Relevanz-Score + Auto/Manuell-Herkunft im Gedaechtnis-Tab.
- deploy/: mem0-service.service + deploy.sh (uv-Install, Migration, Restart).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Mission Control 2.0
Komponierbarer Local-AI-Stack für den Bosgame M5. Greenfield-Neuaufbau —
siehe Architektur-Plan (docs/ bzw. der genehmigte Plan).
Schichten: Engine (llama-swap, Vulkan/RADV auf Strix Halo) · Builtin-Routing-Gateway
in MC2 (model: auto, kein externer LiteLLM-Dienst — scheitert auf Python 3.14) ·
Mission Control 2.0 (FastAPI + React/shadcn) · Hermes Agent + hermes-webui ·
Shared Memory (SQLite via MCP). Jede Schicht hinter stabilem Vertrag austauschbar.
Status: Phasen 0–5 ✅ · MC2 live auf der Box (:9001) · Modelle/Hermes-Wiring + Cutover offen
Fortschritt & Resume-Guide: siehe docs/STATUS.md.
-
Phase 0 — FastAPI-Skeleton + React/shadcn-Shell (Cmd+K, Dark, PWA).
-
Phase 1 — Compute-Module (fit/caps/sources, portiert), Discover (live HF + Fit + Caps), Engine-Write (register +
groups/Ko-Residenz + vocab-geprüfte Spec-Drafts), Builtin-Gateway (model: auto+ Fallbacks), Frontend Modelle & Routing (Caps-Chips, Fit, Discover, Routing-View). -
Phase 2 — System-Status (CPU/RAM/GPU/Disk), Wartung (restart/self-update, sudo-frei), Connect (saubere IDE-Snippets → Gateway
model:auto, LAN-IP-Override). -
Phase 3 — Geteiltes Gedächtnis (SQLite/WAL, 5 Kategorien, Dedupe-Kurator) + MCP-Server (
mcp/mcp_memory.pyshared,mcp/mcp_mc.pyStack-Management für Hermes), MemoryView. -
Phase 4 — Hermes-Agent-Status (
/api/agent/status, AgentView mit Tiles + „Hermes öffnen"),deploy/hermes-webui.service, Box-Runbookdocs/HERMES_SETUP.md(hermes-webui, Brain=auto, Tools/MCP-Verdrahtung). Box-Ausführung steht noch aus. -
Phase 5 — Backup (Memory + Configs), Services-Health + Observability-Links, Theme-Toggle (Hell/Dunkel). Box-Deploy/-Wiring + Cutover (Phase 6) brauchen die Box.
API: health · models · discover · fit · models/register · groups · routing · system/* · connect · memory/* · agent/status (Details in docs/STATUS.md). MCP: mcp/ (siehe mcp/requirements.txt).
Box-Runbooks: docs/HERMES_SETUP.md + deploy/ (Units, deploy.sh, backup.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) |