Files

9.0 KiB

Stack-Wahrheiten — Infrastruktur, Dienste, Modelle

Live gegen die Box verifiziert am 10.07.2026 (Dienste-Liste, llama-swap-Config, hermes --version, /api/health). Bei Widerspruch zu älteren Docs (SAVEPOINT.md, docs/memory/) gewinnt diese Datei. Wer sie ändert: erst messen, dann schreiben.

Maschinen & Zugänge

Was Wo
AI Box (Bosgame M5, Ryzen AI MAX+ 395, 128 GB unified) hitonabi@192.168.178.151 (SSH); Zeitzone Europe/Berlin
Windows-PC („Tobis PC", 9070 XT) 192.168.178.98 — PC-Executor :7777 (Task HermesPCExecutor, Bearer-Token)
Proxmox root@192.168.178.108:8006 (PW in Keepass) — LXCs: adguard(100), npmplus(101), netbird(102), gitea(104), PBS(105)
PBS (Proxmox Backup Server) 192.168.178.156:8007, Datastore qnap
QNAP TS-228A „TobiNAS" 192.168.178.62 — Freigabe /Backup per NFSv3 exklusiv an pve
Gitea git.tobisniceshomelab.ddnsfree.com (lokal 192.168.178.153:3000); Push-to-Create AUS

Repos

  • MC2: F:\Coding Stuff\mission-control-2 ↔ Gitea Hitonabi/mission-control-v2 ↔ Box ~/mission-control-v2 (nur Branch main). Enthält backend, frontend (dist committet!), Sidecars, deploy, hermes-Plugin, client/hermes-pc.
  • Lucy: F:\Coding Stuff\lucyHitonabi/lucy (privat; lucy-desktop/ + lucy-tts/).
  • Wissens-Vault: ~/wissens-vault/ auf der Box (eigenes git; Lucys Lernschicht: Träume, Radar-Funde, Eigenbau-Landkarte, Skill-Kandidaten). Im MC2-UI als Wissens-Tab.

Dienste auf der Box (live 10.07.2026)

Dienst Port Zweck
llama-swap (System-Dienst) :8080 Modell-Router; Engine = llama.cpp Vulkan/RADV (/opt/llamacpp-vulkan)
mission-control-2 (User) :9001 MC2 Backend+Frontend; /v1 = OpenAI-Gateway; /hermes-ui/ = Desktop-Gateway-Proxy
hermes-gateway (User) :8642 Hermes Agent API (Lucys Lane)
hermes-builtin-ui (User) :9119 (loopback) Eingebaute Hermes-GUI; LAN-Zugang NUR via MC2-Proxy /hermes-ui/ (statischer Token im systemd-Drop-in)
mem0-service (User) :8765 (loopback) Mem0-Sidecar (Gedächtnis), Py 3.12 ~/.mem0/venv
voice-service (User) :8650 STT (Parakeet/Whisper) + Turn-Check für Lucy
box-console (User) :7682 ttyd-Login-Shell hinter MC2-Proxy

Stillgelegt (Diät 09.07.): hermes-terminal (:7681) und hermes-webui (:8787) — nicht wiederbeleben. ⚠️ User-Units per SSH nur sichtbar mit export XDG_RUNTIME_DIR=/run/user/$(id -u) vor systemctl --user.

Modell-Stack (llama-swap, live 10.07.2026)

Warm-Set (Gruppe brains, swap:false, persistent:true, alle ttl 0): Qwen3.6-35B-A3B + Qwen3-Embedding-0.6B + Qwen3-Reranker-0.6B. Sonst NICHTS dauerhaft warm.

Alias/Rolle Modell ttl Notizen
hermes + fast Qwen3.6-35B-A3B (UD-Q4_K_M, MTP) 0 Agent-Hirn. -c 131072 --parallel 265536/Slot, KV q8_0, --spec-draft-n-max 3
embed Qwen3-Embedding-0.6B (Q8_0) 0 Mem0-Embeddings (1024 dim)
reranker Qwen3-Reranker-0.6B (q8_0, Mungert-GGUF) 0 Gedächtnis-Sortierer (/v1/rerank); Community-GGUFs liefern oft Nullscores
coder Qwen3-Coder-Next (Q4_K_M) 600 131k ctx; Werkstatt-/Orchestrator-Worker + IDE „bauen"; auch delegation.model
heavy gpt-oss-120b (mxfp4) 600 32k ctx! Planer/Chef-Gutachter/Radar-Analyst — nur Ein-Schuss, lädt seit der LLM-Diät in ~28 s
vision Qwen3-VL-30B-A3B (Q4_K_M) 900 Augen, ON-DEMAND; Lucy-App wärmt beim Start + alle 10 min
kritiker GLM-4.7-Flash (UD-Q4_K_XL) 600 Fremdblick-Prosa + Chef-Gutachter-Vertretung
scout GLM-4.6V-Flash (Q4_K_M) 300 Vision+Tools-Allrounder

Config: /etc/llama-swap/config.yaml (sudo zum Schreiben). Qwen3.5-122B und VL-8B sind ENTFERNT (07.07.) — die alten Rollback-Pfade existieren nicht mehr. Merkregeln: Schutz-Key heißt persistent: (nicht persist:) · jedes brains-Mitglied MUSS ttl:0 haben · nach JEDEM Config-Reload ist das Warm-Set leer → hermes/embed (+reranker) per Mini-Request anwärmen (direkt curlen ist zuverlässiger als warmup.sh).

Hermes (Agent)

  • v0.18.2 (git-Install ~/.hermes/hermes-agent, Py 3.11), Config ~/.hermes/config.yaml (IMMER Backup vor Änderung), Persona ~/.hermes/SOUL.md = Lucy (alle Kanäle, Anrede „Commander").
  • Hirn: model.default UND model.model = fast. delegation.model: coder (seit 10.07.).
  • approvals.mode: smart, approvals.cron_mode: deny · platform_toolsets.api_server = Voice-Diät (NICHT mästen!) · cli-Bucket = volles Coding-Set (auch Hermes Desktop).
  • MCP-Server (aus ~/mission-control-v2/mcp/): mission-control-memory, mission-control-stack (mcp_mc.py, 23 Tools), hermes-pc-control, hermes-web-fetch, mcp_voice (dünn, für Voice-Lane).
  • Hermes Desktop am PC: lokales PC-Hermes mit Box-Gateway als Hirn (:9001/v1), Profil pc für F:-Arbeit, geteiltes Mem0 via mc2-memory-Plugin. Remote-Gateway der Box = http://192.168.178.151:9001/hermes-ui.

Automatik-Fahrplan (was nachts von allein läuft)

Zeit Was
02:30 PBS sichert alle Proxmox-LXCs
03:15 Traum-Cron (dreaming-feed.sh → Wissens-Vault, fremdblick-Gate, propose-only)
03:30 Tarball-Backup (mem0+Configs+Secrets+~/.hermes/cron+state → /srv/models/mc2-backups, 14 Tage; rsync-Spiegel → Proxmox)
03:50 PBS-Host-Backup der Box (host/aibox: mem0+hermes+vault+llamaswap.pxar)
04:30 Chef-Gutachter (gpt-oss richtet über die autonome Arbeit → Morgenlage)
05:15 Mo Release-Radar (hermes-Releases gegen die Eigenbau-Landkarte; erster Lauf 13.07.)
05:15 Sa Trend-Radar (Live-Puls ALLER Modell-Rollen + Engine-A/B gegen neuen llama.cpp-Build + Watch-Liste [ROCm/MMQ/Community-Grid] + HF-Kandidaten-Suche → max. 1 Prüfstand-Kandidat/Woche; Frühwarnung vor dem So-Auto-Update)
01:00 So Prüfstand (volles Programm für Modell-Kandidaten: echte Coding-/Agenten-/Recherche-/Deutsch-/Vision-Prüfungen + Tempo auf :5899 gegen die Amtsinhaber-Baseline; Download-Deckel 35 GB, Cache räumt sich selbst, Ergebnis = Karte — Rollen-Wechsel bleibt Commander-Klick. Erkennt Engine-Drift → Tempo-Baseline-Refresh)
06:40, 1. d. M. Restore-Probe (stellt WIRKLICH wieder her: PBS-Canary aus hermes.pxar via --pattern + Tarball-Probe + Frische-Check < 36 h; ⚠️-Alarm, wenn ein Backup nicht zurückkommt)
06:40, 2. d. M. Venv-Audit (pip outdated + pip-audit-CVEs für mem0-/voice-venv; Funde = Karte, Update bleibt Commander-Entscheid)
07:00 QNAP-Volume-Snapshot (7 behalten)
07:15 self-smoke (Gateway/Tools/Voice/:9119; Alarm nur bei Rot)
08:00 Daily-Briefing
09:00, 1. d. M. Monats-Review (radar-selbstkritik-wrapper.sh = Evolution-Radar + Selbstkritik)
10 9, 16.08. Gedaechtnis-Check (einmalig: Gedächtnis-Schutt räumen, alte Einträge bereinigen)
So 04:30 Auto-Update Router→Engine→Hermes (Fangnetz: Backup→Postcheck→Auto-Rollback+Pin)

mc2-autoupdate.timer ist AN (User-Entscheid 10.07., ersetzt „nur bestätigt" vom 04.07.): Fremd-Software-Updates (Router/Engine/Hermes) dürfen automatisch laufen; der User klickt sie zusätzlich oft manuell im Wartungs-Drawer. deploy.sh enablet den Timer bewusst NICHT selbst — der Schaltzustand wird nur von Hand geändert. Manueller Lauf: bash deploy/autoupdate.sh. OS-Sicherheitsupdates laufen separat via unattended-upgrades.

Security (Stufe 0, live)

PC-Executor nur mit Bearer HERMES_PC_TOKEN (fail-closed) · ufw default deny, nur LAN→22/9001/8080 (+Alt-Port 7681) · Prompt-Injection-Guard mcp/guard.py (wrappt Web-/Bildschirm-Text) · mc2-memory lernt nicht aus untrusted Turns · command_allowlist = 5 exakt gepinnte curls (fnmatch; Shell-Operatoren hart geblockt — NIE offenes curl *) · Box-sudo braucht Passwort; NOPASSWD nur für update-engine/swap (/etc/sudoers.d/mc2-autonomie). Security-Config (approvals/Tokens/ufw) NIE ohne explizites User-Ja ändern.

Deploy & Pipeline

  • Standard-Weg für Box-Arbeit = Auftragsbuch: Vorschlags-Branch auf Gitea (wartung/*, orchestrator/*, doku/*, feature/*) → Karte in der UI → User-Klick = Merge + Deploy + Health + Auto-Revert (detached Runner).
  • Manuell: main auf Gitea pushen → ssh … 'bash ~/mission-control-v2/deploy/deploy.sh' ODER POST :9001/api/system/self-update (restart meldet ok:false — harmlos, /api/health prüfen).
  • deploy.sh macht git reset --hard origin/main (main MUSS vorher auf Gitea liegen) und baut KEIN Frontend → dist lokal bauen + committen. Fallen: FALLEN.md.

Backup/Restore (3 Schichten, alle live)

  1. Tarball täglich 03:30 → /srv/models/mc2-backups/ + rsync-Spiegel auf Proxmox; Restore: bash deploy/restore.sh --list | latest (macht vorher Sicherheits-Backup). In der UI: Zeitmaschine (Ein-Klick-Restore).
  2. PBS (LXCs 02:30, Box-Host 03:50), Prune 7d/4w/3m, Verify So 06:00.
  3. QNAP-Snapshots täglich 07:00 als Ransomware-Netz. Bare-Metal: docs/DISASTER_RECOVERY.md. Mensch-Anleitung: docs/RUNBOOK.md.