Files
mission-control-v2/docs/wissen/STACK.md
T
HitonabiandClaude Opus 5.5 45048c60b7 doku: Stand main 75611be nachgezogen (Phase 2a, Waechter-Fixes)
- STACK.md: Instanz-Rolle box, Partner noch nicht eingerichtet; 62 /api-Routen; Waechter prueft
  die Partner-Instanz, sobald es sie gibt.
- OFFENE-FAEDEN.md: Phase 2 begonnen (2a auf main: backend/kern/, /api/partner,
  Partner-Pruefung, Telegram-Zweitweg); die Homelab-Instanz selbst in Phase 3 (User-OK).
  Punkt "Waechter prueft die schlafende Spracherkennung" gestrichen - auf main behoben (99ba6a7).
- VERDIKTE.md: eine Codebasis, zwei Rollen (MC_ROLLE); zweiter Weg zu Telegram direkt ueber die
  Bot-API.
- FALLEN.md: schlafgelegte Dienste auch in den HTTP-Proben ausnehmen (Fehlalarm 24.09. 14:56).
- ARBEITSWEISE.md, README.md: Homelab-Instanz ab Phase 3, Partner-Pruefung "sobald eingerichtet".

Pruefungen: git grep auf Altbegriffe ausserhalb docs/archiv trifft nur noch die Tabelle
"Ueberholt (mit Datum)" in VERDIKTE.md; 0 tote Links in 15 Dateien; keine zerrissenen Tabellen.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 17:43:25 +02:00

10 KiB
Raw Blame History

Stack-Wahrheiten — Maschinen, Dienste, Modelle, Automatik

Stand 24.09.2026. Quellen: Code in main (75611be: Units, deploy/llama-swap.config.yaml, Skripte) und die Prüfberichte vom 24.09.2026 (live auf der Box gelesen). Bei Widerspruch zu anderen Dokumenten gewinnt diese Datei. Wer sie ändert: erst messen, dann schreiben, Datum dazu.

Instanzen: Auf der KI-Box läuft der Homelab Orchestrator in der Rolle box (Standard von MC_ROLLE, Anzeigename „Box-Wart"). Die zweite Instanz (Rolle homelab, Container auf dem Proxmox-PC) ist noch nicht eingerichtet; MC_PARTNER_URL ist deshalb nicht gesetzt.

Maschinen und Zugänge

Was Wo Stand
KI-Box — Bosgame M5, AMD Ryzen AI MAX+ 395 (gfx1151), 128 GB gemeinsamer Speicher (~122 GB nutzbar) hitonabi@192.168.178.151 (SSH) · Ubuntu 26.04.1 · Zeitzone Europe/Berlin 24.09.
Windows-PC (Dev-PC, OpenChamber) 192.168.178.22 23.09.
Proxmox-Host 192.168.178.108 · Container 100 AdGuard, 101 NPMplus, 102 NetBird, 103 PVE Scripts Local, 104 Gitea, 105 PBS · VM 106 Arcane (Docker, u. a. NerdQuiz) 24.09.
Gitea 192.168.178.153 · HTTP :3000 · SSH :2222, Benutzer gitea 21.08.
PBS 192.168.178.156:8007 07/2026, nicht neu geprüft
QNAP 192.168.178.62 07/2026, nicht neu geprüft

Repos

  • Homelab Orchestrator / Box-Wart (dieses Repo): PC F:\Coding Stuff\mission-control-2 ↔ Gitea Hitonabi/mission-control-v2 ↔ Box ~/mission-control-v2. Auf Gitea nur main plus zwei Archiv-Tags (git tag -l 'archiv/*'). frontend/dist ist committet (die Box baut kein Frontend).
  • Lucy (Desktop-App): F:\Coding Stuff\lucyHitonabi/lucy (Electron, eigenes Repo).

Dienste auf der Box

Unit Art Port Aufgabe 24.09.
llama-swap System :8080 Modell-Router, startet je Modell einen llama-server (Vulkan, /opt/llamacpp-vulkan), liest die Config mit --watch-config läuft
mission-control-2 User :9001 Box-Wart: Oberfläche, 62 /api-Routen (davon 2 für die Partner-Instanz), /v1-Weiterleitung, /hermes-ui/, Erinnerungen läuft
mc2-gateway User 127.0.0.1:9010 /v1-Datenpfad: model: auto, Bild-Weiche läuft
mc2-steward User Wächter und Re-Warm (hält das Hirn geladen) läuft
hermes-gateway User :8642 Hermes Agent „Lucy", Telegram läuft
hermes-builtin-ui User :9119 Hermes-Dashboard, in MC2 unter /hermes-ui/ läuft
lucy-stimme User 127.0.0.1:8021 Lucys Stimme (pocket-tts german_24l) läuft
voice-service User 127.0.0.1:8650 Spracherkennung für Lucy-Desktop schläft
box-console User 7682 (nur lo) Web-Konsole (ttyd) schläft

„Schläft" = systemctl --user disable --now (User-Entscheid 24.09.): kein Fehler für den Wächter, in der Oberfläche grau mit Knopf „Wecken". Die Android-App (Phase 5) braucht die Spracherkennung wieder. Versionen (Prüfbericht 24.09.): llama.cpp b11147, llama-swap v257, Hermes Agent v0.21.4, Python 3.14 im Box-Wart-venv, Kernel 7.0.0-34 (seit dem Neustart am 24.09. 14:51). ‼ User-Units per SSH nur mit export XDG_RUNTIME_DIR=/run/user/$(id -u) vor systemctl --user.

Units im Repo (deploy/, spielt deploy.sh aus): mission-control-2 (+ Override), mc2-gateway, mc2-steward (+ Warm-Set-Drop-in), lucy-stimme, voice-service, box-console und die Paare mc2-radar, mc2-backup, mc2-morgenmeldung, mc2-autoupdate, projekte-sync (.service/.timer). Nicht im Repo: llama-swap.service samt Drop-ins (Inhalt: WIEDERAUFBAU.md, Anhang A), hermes-gateway.service (legt Hermes an) und hermes-builtin-ui.service samt Drop-ins. Seit 24.09. liegen alle User-Units und die llama-swap-Drop-ins als Kopie in jeder Sicherung.

Modelle (llama-swap, Config vom 24.09.2026)

Warm ist nur das Hirn (Gruppe brains: swap: false, persistent: true, exclusive: false). Alles andere lädt bei Bedarf und geht nach Ablauf von ttl (Sekunden) wieder raus.

Modell Alias Gruppe ttl Kontext Tempo (13k Kontext) Anmerkung
Qwen3.6-35B-A3B hermes, fast brains 0 2 × 65 536 100,8 t/s (Prüfstand 17.09.) Hirn (MoE, 3B aktiv), DFlash-Draft, KV q8_0, --reasoning-budget 2048
Qwen3.6-35B-A3B, Bild-Zwilling (Eintrag …-Bild) vision bild 900 65 536 67,9 t/s (Probe 24.09.) gleiche Gewichte plus Projektor, ohne Draft
Qwen3.8-27B coder, heavy 5400 131 072 30,4 t/s (Prüfstand 17.09.) Coder (dicht), DFlash2-Draft; ohne Draft ~12,6 t/s
Qwen3.8-27B, Bild-Zwilling (Eintrag …-Bild) coder-bild bild 900 131 072 12,5 t/s (Probe 24.09.) gleiche Gewichte plus Projektor, ohne Draft
Muse-Glimmer-30B debugger 600 65 536 Rolle entfällt (Entscheid 23.09.), Löschkandidat
Qwen3-Embedding-0.6B embed 300 8 192 schläft seit 24.09. (lädt bei Bedarf)
Qwen3-Reranker-0.6B reranker 300 8 192 schläft seit 24.09. (lädt bei Bedarf)
gpt-oss-120b 600 32 768 ohne Rolle seit 04.09., Löschkandidat (60 GB)
Qwen3-VL-30B-A3B 900 32 768 ohne Rolle seit 24.09., Löschkandidat
  • Hirn und Coder laufen seit 17.09. als Varianten der Basismodelle (Prüfstand: Hirn 100,8 statt 92,8 t/s, Coder 30,4 statt 26,2 t/s). Die Originale liegen als Rückweg auf der Platte (Qwen3.6-35B-A3B-MTP-GGUF, Qwen3.8-27B-GGUF).
  • Reserve-Hirn: Nemotron 3.5 Lightning 30B-A3B (Prüfstand 17.09.: 91,8 t/s, Werkzeuge 3/3), liegt unter /srv/models/Nemotron-3.5-Lightning-30B-A3B-GGUF/, ohne Eintrag.
  • Bilder: Das Gateway schickt eine Anfrage mit Bild im aktuellen Schritt an den Zwilling der Rolle; ältere Bilder beschreibt vision einmal als Text. Grund: llama.cpp kann Draft und Bild nicht zusammen (HTTP 500, b11057 und b11157 geprüft).
  • Speicherregel: Warm-Set plus größtes Bedarfsmodell ≤ ~115 GB. Schlimmster Fall heute laut Config: Warm-Set 27 + Coder 29 + ein Zwilling ~25 GB ≈ 81 GB.
  • Dichte Modelle sind bandbreitengebunden (~215 GB/s): 17 GB Gewichte ÷ 215 GB/s ≈ 12,6 t/s ohne Draft.
  • Clients sprechen Modelle nur über Rollen-Aliase an, nie über Eintragsnamen (die ändern sich beim Tausch).

Config: /etc/llama-swap/config.yaml ist die lebende Wahrheit (Oberfläche und Radar schreiben sie), deploy/llama-swap.config.yaml nur der Abzug im Repo. Regeln dazu: ARCHITEKTUR.md.

Hermes (Agent „Lucy")

  • v0.21.4 (Prüfbericht 24.09.), Git-Install in ~/.hermes/hermes-agent, Config ~/.hermes/config.yaml, Persona ~/.hermes/SOUL.md, Gedächtnis ~/.hermes/memories/ (Hermes führt es selbst; alleinige Gedächtnis-Wahrheit).
  • Hirn über mc2-gateway (:9010); Bilder seit 24.09. über model.supports_vision: true und die Bild-Weiche.
  • approvals.mode: 'off', approvals.cron_mode: auto — User-Entscheid, bestätigt 17.09.2026.
  • MCP-Server: aktiv hermes-web-fetch (mcp/mcp_web.py) und mission-control-voice (mcp/mcp_voice.py); aus seit 24.09. hermes-pc-control (mcp/mcp_pc.py, dazu die PC-Aufgabe HermesPCExecutor) und mission-control-stack (mcp/mcp_mc.py).
  • Plugin mc2-web-lesen (deploy/hermes-plugins/): liest Webseiten für web_extract lokal (web.extract_backend: mc2-lesen).
  • Skills aus dem Repo: betrieb-playbook, pc-pfad-cache (deploy.sh kopiert sie nach ~/.hermes/skills/); abgelöste Skills liegen in ~/.hermes/skills-archiv/.
  • Hermes-Crons (bash -lc 'hermes cron list'): „Daily News Report" (täglich 07:00), „KI und Stack Radar" (Sa 08:00). „Updates am Sonntag" ist seit 24.09. pausiert — das macht jetzt mc2-autoupdate.timer.

Automatik (was von allein läuft)

Wann Was Wie Details
jede Minute Wächter: Dienste, Timer, Hermes-Jobs, Kern, Platte, festgehaltene Updates, Partner-Instanz (sobald eingerichtet) mc2-steward BETRIEB.md
alle 90 s Re-Warm: lädt das Hirn nach, wenn nichts geladen ist mc2-steward ARCHITEKTUR.md
stündlich (+≤5 min) projekte-sync: ~/projekte mit Gitea abgleichen (nur fast-forward) Timer BETRIEB.md
00:30 Modell-Radar: Suche (≤1× am Tag), Test im Fenster 00:3002:30 mc2-radar.timer RADAR.md
~03:00 NerdQuiz-Nachtlauf (Arcane) fragt das Hirn direkt über :8080 extern RADAR.md
03:30 (+≤5 min) Sicherung, danach Kopie auf den Proxmox-Host mc2-backup.timer BETRIEB.md
So 04:30 (+≤10 min) Updates: llama-swap → Motor → Hermes, Neustart nur So 04:0006:59 mc2-autoupdate.timer UPDATES.md
07:00 Morgenmeldung: nachts Gesammeltes als eine Telegram-Nachricht mc2-morgenmeldung.timer BETRIEB.md
07:00 Daily News Report (Text und Sprachnachricht) Hermes-Cron deploy/jobs/README.md
Sa 08:00 KI und Stack Radar Hermes-Cron RADAR.md
laufend OS-Sicherheitsupdates unattended-upgrades UPDATES.md

Coding-Bahn (OpenChamber)

  • OpenChamber läuft am PC mit seiner eigenen OpenCode-CLI; die Dateien liegen lokal unter F:\Coding Stuff\….
  • Von der Box kommt nur das Modell: Provider aiboxhttp://192.168.178.151:9001/v1, Rollen-Aliase (build = coder, plan/review = heavy, explore und small_model = hermes). Vorlage der PC-Config: deploy/opencode-config/.
  • Push nach Gitea über SSH (:2222, Benutzer gitea). deploy/push-und-sync.ps1 stößt danach projekte-sync auf der Box sofort an.
  • projekte-sync zieht mission-control-v2 absichtlich nicht: Der Box-Checkout wird nur über deploy/deploy.sh aktualisiert.

Sicherheit (ein Satz)

Der Box-Wart hat keine Anmeldung (User-Entscheid 24.09.), schreibende /api-Aufrufe fremder Webseiten lehnt die Herkunftsprüfung ab (backend/services/herkunft.py), und Security-Config (approvals, Tokens, ufw, command_allowlist, sudoers) ändert niemand ohne ausdrückliches User-Ja.

Deploy und Sicherung (Kurzform)

  • Deploy: main auf Gitea, dann auf der Box bash ~/mission-control-v2/deploy/deploy.sh — zweistufig, mit Prüftor, Rückweg und Log /srv/models/mc2-deploy.log. Details: BETRIEB.md.
  • Sicherung: täglich, 14 Stück unter /srv/models/mc2-backups/, Kopie auf dem Proxmox-Host, Zurückspielen per Oberfläche oder deploy/restore.sh. Details: BETRIEB.md.