Files
mission-control-v2/docs/wissen/STACK.md
T
HitonabiandClaude Opus 5 cd54fe4a0f
Ampel / ampel (push) Failing after 24s
modelle: Hirn und Coder auf Uncensored-Varianten (Pruefstand-gestuetzt), Pruefstand-Skript ins Repo
Pruefstand 17.09. (deploy/bench/pruefstand-hirn.py, Kandidat auf :5899, Hermes-Tool-Smoke per
--provider pruefstand durch den echten Agenten):
- Qwen3.6-35B-A3B-Uncensored (HauhauCS Aggressive, Q4_K_M) + giocom-DFlash: 100,8 t/s @13k
  (Original 92,8), Prefill 13,1 s, Tools 11/12 (1 Denk-Ausreisser), Hermes-Smoke gruen -> hermes/fast.
- Qwen3.8-27B-Uncensored (Heretic, Q4_K_M, eigene mmproj) + DFlash2: 30,4 t/s @13k (Original 26,2),
  Tools 6/6, Coding 3/3 ausgefuehrt (= Original), Hermes-Smoke gruen -> coder/heavy.
- Nemotron 3.5 Lightning 30B-A3B (Q4_0 + MTP): Hirn-Klasse (10,5 s Prefill @13k, 91,8 t/s, Tools 3/3,
  Hermes gruen) - liegt als Reserve-Kandidat auf der Box, nicht besetzt.
Keys/Aliase/Flags unveraendert, nur Pfade; Originale bleiben liegen (Rueckweg = Pfad zurueck).
Nebenbefund: Bild + DFlash2 beim Coder = HTTP 500 "failed to process speculative batch" - Vorbestand
seit 04.09., unabhaengig vom Modell (ohne Draft antworten beide "Rot"); Bilder gehen ueber die
Gateway-Bildweiche zu vision. Live seit 17.09. ~22:10, Stack- und Gehirn-Check gruen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 22:10:54 +02:00

11 KiB
Raw Blame History

Stack-Wahrheiten — Infrastruktur, Dienste, Modelle

Live gegen die Box verifiziert am 19.08.2026 (Dienste-Liste, llama-swap-Config, hermes --version, /api/health); Engine, Hermes und llama-swap-Config nachgemessen am 17.09.2026 (llama.cpp b11026, Hermes v0.21.3, --load-mode none). Bei Widerspruch zu älteren Docs 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 19.08.2026)

Dienst Port Zweck
llama-swap (System-Dienst) :8080 Modell-Router; Engine = llama.cpp Vulkan/RADV (/opt/llamacpp-vulkan, b11026 seit 17.09.)
mission-control-2 (User) :9001 MC2 Cockpit (FastAPI + React Frontend) & Steuerpult
mc2-gateway (User) :9010 /v1-Datenpfad (model:auto Routing + native Bildweiche)
mc2-steward (User) Hintergrundwächter (Re-Warm, Health-Sentry, Mem0-Dedupe)
hermes-gateway (User) :8642 Hermes Agent Core API (v0.21.3, Bot Mode)
hermes-builtin-ui (User) :9119 (loopback) Eingebaute Hermes-GUI; LAN-Zugang via MC2-Proxy /hermes-ui/
mem0-service (User) :8765 Semantischer Chroma-Gedächtnis-Sidecar
voice-service (User) :8650 STT (faster-whisper) + TTS (Piper/Chatterbox)
box-console (User) :7682 ttyd-Login-Shell hinter MC2-Proxy

Stillgelegt: hermes-terminal (:7681), hermes-webui (:8787) und alter governor (:8100). ⚠️ User-Units per SSH nur sichtbar mit export XDG_RUNTIME_DIR=/run/user/$(id -u) vor systemctl --user.

Modell-Stack (llama-swap, live 19.08.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 Uncensored (HauhauCS Aggressive, Q4_K_M, giocom-DFlash) — seit 17.09.2026 0 Agent-Hirn. -c 131072 --parallel 265536/Slot, KV q8_0, ~94101 t/s (Prüfstand 17.09.). Original (MTP-GGUF UD-Q4_K_M) liegt daneben, Rückweg = Pfad
coder Qwen3.8-27B Uncensored (JonathanColetti/Heretic, Q4_K_M, eigene mmproj F16) — seit 17.09.2026 5400 131072 ctx--parallel 1, der Coder bekommt den ganzen Slot (34a9862). Multimodal, ~32 t/s mit DFlash2-Draft (17.09.), ohne Draft 12,7 (dicht = bandbreitengebunden)
debugger Muse-Glimmer-30B (Q4_K_XL, DFlash) 600 65536 ctx; Runtime-Diagnostik & Fehler-Debugger (multimodal)
vision Qwen3-VL-30B-A3B-Instruct (Q4_K_M) 900 32768 ctx; Multimodal-Augen (On-Demand)
heavy = Qwen3.8-27B (zweiter Alias des Coders, seit 04.09.) 5400 Planen/Review (OpenChamber) + chat-Lane des Gateways. gpt-oss-120b (60 GB, AA-Index 24 vs 52) liegt ohne Rolle als Rollback bereit, direkt als gpt-oss-120b ansprechbar
reranker Qwen3-Reranker-0.6B (q8_0, Mungert) 0 Sortiert Suchtreffer nach echter Relevanz (/v1/rerank)
embed Qwen3-Embedding-0.6B (f16) 0 Vektorisierung für Suche/Sortierung

Diese sieben sind ALLES — abgeglichen mit /etc/llama-swap/config.yaml am 27.08.2026 (Pfade 17.09.2026).

Prüfstand 17.09.2026 (deploy/bench/pruefstand-hirn.py; Kandidat auf :5899, Hermes spricht per --provider pruefstand aus providers: der Hermes-Config dagegen — Live-Stack bleibt unberührt): Uncensored-3.6 = 100,8 t/s @13k (Original 92,8), Tools 11/12, Hermes-Smoke grün · Uncensored-27B = 30,4 t/s @13k (Original 26,2), Tools 6/6, Coding 3/3 · Nemotron 3.5 Lightning 30B-A3B (Q4_0 + MTP-Draft, /srv/models/Nemotron-3.5-Lightning-30B-A3B-GGUF/) = Hirn-Klasse: 10,5 s Prefill @13k, 91,8 t/s, Tools 3/3, Hermes grün — liegt als Reserve-Kandidat bereit, nicht besetzt. ‼ Bild + DFlash2 = HTTP 500 („failed to process speculative batch") beim Coder — Vorbestand seit 04.09., unabhängig vom Modell; Bilder laufen über die Gateway-Bildweiche zu vision. Frühere Tabellen führten zusätzlich kritiker (Devstral-Small-2-24B), scout (GLM-4.6V-Flash), dense-planer und doctor. Die gibt es nicht mehr: die Modell-Konsolidierung (9a35be9, 19.08.) warf sie aus llama-swap, und fremdblick.sh — der einzige Aufrufer des Kritikers — fiel mit dem MC2-Kahlschlag (1e68f62). Gewollt so: ein Coder, ein Agent-Hirn. kritiker und scout stehen weiterhin in ROLE_IDS (backend/services/llamaswap.py) — das ist die Liste besetzbarer Rollen, keine Zusage, dass sie besetzt sind.

Config: /etc/llama-swap/config.yaml (sudo zum Schreiben).

Hermes (Agent)

  • v0.21.3 (2026.9.14; git-Install ~/.hermes/hermes-agent, main @ dd13b475 vom 17.09.2026), Config ~/.hermes/config.yaml, Persona ~/.hermes/SOUL.md = Lucy.
  • Bot-Roster: leer (live geprüft 27.08.2026). Hermes kann mehrere Bots, genutzt wird es nicht — die Profile fahren hermes, fast und vision. Frühere Fassungen behaupteten hier einen Roster mit Coder/Qwen3-Coder-Next und Debugger; beides trifft nicht zu.
  • approvals.mode: 'off', approvals.cron_mode: autoUser-Entscheid (so seit spätestens dem KISS-Umbau 21.08.2026, bestätigt 17.09.2026: „approvals bleibt off"). Lucy fragt nicht nach Freigaben; die Grenze ziehen ufw, PC-Executor-Token und command_allowlist (siehe Security). Frühere Fassungen nannten smart/deny (Stand 03.07.).
  • Config-Schema v45 (migriert 17.09.2026): connections-Toolset (Nous-Konnektoren, manage_connections) bewusst in agent.disabled_toolsets; Curator archiviert ungenutzte Skills nach 30 Tagen (skills/.archive/, hermes curator restore).
  • MCP-Server (aus ~/mission-control-v2/mcp/): mission-control-stack, hermes-pc-control, hermes-web-fetch, mcp_voice. (mission-control-memory ist am 27.08.2026 entfallen — Hermes führt sein Gedächtnis selbst.)

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 (Configs+Secrets+~/.hermes/cron+state → /srv/models/mc2-backups, 14 Tage; rsync-Spiegel → Proxmox)
03:50 PBS-Host-Backup der Box (host/aibox: 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 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)

Sonntags-Update = Hermes-Cron 0ec52231783b (~/.hermes/scripts/sonntags-update.shdeploy/autoupdate.sh, seit dem KISS-Umbau 21.08.); mc2-autoupdate.timer ist disabled — gewollt. Fremd-Software-Updates (Router/Engine/Hermes) dürfen automatisch laufen (User-Entscheid 10.07.); der User klickt sie zusätzlich oft manuell im Wartungs-Drawer. Rot ⇒ Rollback + Pin in /srv/models/mc2-pins.json; gepinnte Ebenen werden still übersprungen, bis der Pin von Hand gelöst wird (06.17.09.2026 stand die Box so zwei Wochen still). 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 ist NOPASSWD: ALL (live sudo -n -l, 04.09. und 17.09.2026); die alte Whitelist in /etc/sudoers.d/mc2-autonomie (update-engine/swap, Dienst-Restarts, journalctl) steht daneben weiter. Security-Config (approvals/Tokens/ufw) NIE ohne explizites User-Ja ändern.

Deploy & Pipeline

  • Standard-Weg für Box-Arbeit (seit 04.09.2026 der EINZIGE): Vorschlags-Branch auf Gitea (wartung/*, doku/*, feature/*) → Ampel-CI grün → der User merged auf maindeploy.sh auf der Box. Das Auftragsbuch (Karten-Klick, detached Annahme-Runner, Bagatell- Annahme, Lucy-Annahme über den PC-Executor) ist ausgebaut — es war seit 02.08. ungenutzt.
  • Deploy: 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.