- STACK.md: Stand 24.09. - Dienste mit Zustand (Konsole und Spracherkennung schlafen), Units im Repo und nur auf der Box, Modelltabelle aus der Config vom 24.09. (Hirn, Coder, zwei Bild-Zwillinge, brains mit exclusive: false), Hermes v0.21.4 mit MCP-Stand nach der Diaet, vollstaendiger Automatik-Fahrplan (Timer, Hermes-Crons, NerdQuiz 03:00), Coding-Bahn OpenChamber, Sicherheit in einem Satz. - VERDIKTE.md: Box-Wart-Verdikte vom 23./24.09. ergaenzt (Umbau statt Neubau, zwei Instanzen, Homelab-Rechte und -Updates, keine Anmeldung, Nachtruhe, Timer, Box-Diaet, Radar-Leitplanken, Bild-Zwillinge, exclusive: false); Ueberholtes in eine Tabelle "Ueberholt (mit Datum)"; Formatfehler (Zeilen mit "|-") beseitigt. - FALLEN.md: neue Fallen (Persistent=true, Abzug ueberschreibt lebende Config, Jobs sterben bei MC2-Neustart, exclusive, Draft+Bild=500, Hermes-Cron als Updater, write_file, web_extract, Gitea-SSH-Benutzer); Werkstatt-, Kritiker-, Delegations- und Desktop-Fallen gestrichen. - ARBEITSWEISE.md mit GRENZEN.md zusammengelegt; Flaechen-Tabelle fuer Box-Wart, Homelab-Teil, Lucy, Hermes, Telegram, OpenChamber, Android-App. - OFFENE-FAEDEN.md neu: Phasen 0-5 laut Plan (Phase 1 laeuft, Oberflaeche und Doku offen) und 13 offene Einzelpunkte, alle am Code in main belegt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
10 KiB
Stack-Wahrheiten — Maschinen, Dienste, Modelle, Automatik
Stand 24.09.2026. Quellen: Code in main (4cd856b: 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.
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↔ GiteaHitonabi/mission-control-v2↔ Box~/mission-control-v2. Auf Gitea nurmainplus zwei Archiv-Tags (git tag -l 'archiv/*').frontend/distist committet (die Box baut kein Frontend). - Lucy (Desktop-App):
F:\Coding Stuff\lucy↔Hitonabi/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, 60 /api-Routen, /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
visioneinmal 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. übermodel.supports_vision: trueund 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) undmission-control-voice(mcp/mcp_voice.py); aus seit 24.09.hermes-pc-control(mcp/mcp_pc.py, dazu die PC-AufgabeHermesPCExecutor) undmission-control-stack(mcp/mcp_mc.py). - Plugin
mc2-web-lesen(deploy/hermes-plugins/): liest Webseiten fürweb_extractlokal (web.extract_backend: mc2-lesen). - Skills aus dem Repo:
betrieb-playbook,pc-pfad-cache(deploy.shkopiert 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 jetztmc2-autoupdate.timer.
Automatik (was von allein läuft)
| Wann | Was | Wie | Details |
|---|---|---|---|
| jede Minute | Wächter: Dienste, Timer, Hermes-Jobs, Kern, Platte, festgehaltene Updates | 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:30–02: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:00–06: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
aibox→http://192.168.178.151:9001/v1, Rollen-Aliase (build=coder,plan/review=heavy,exploreundsmall_model=hermes). Vorlage der PC-Config:deploy/opencode-config/. - Push nach Gitea über SSH (
:2222, Benutzergitea).deploy/push-und-sync.ps1stößt danachprojekte-syncauf der Box sofort an. projekte-syncziehtmission-control-v2absichtlich nicht: Der Box-Checkout wird nur überdeploy/deploy.shaktualisiert.
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:
mainauf Gitea, dann auf der Boxbash ~/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 oderdeploy/restore.sh. Details: BETRIEB.md.