Recherche zur offenen Frage "fehlt der kritiker?": Er fehlt nicht, er wurde abgeschafft. Die Modell-Konsolidierung (9a35be9, 19.08.) warf Devstral aus llama-swap, und fremdblick.sh - der EINZIGE Aufrufer der Rolle - fiel mit dem MC2-Kahlschlag (1e68f62). Live gegengeprueft: kein Skill, keine Hermes-Config und kein Profil nennt 'kritiker'. Gewollt so: ein Coder, ein Agent-Hirn. Beim Abgleich zeigte sich, dass die Tabellen weit mehr erfanden als den Kritiker. Gegen /etc/llama-swap/config.yaml geprueft sind es SIEBEN Rollen: hermes/fast, coder, debugger, vision, heavy, reranker, embed. Korrigiert: - `coder` stand als Qwen3-Coder-Next (80B MoE, 51,5 t/s) drin - real ist es Qwen3.8-27B mit 131k ctx und ~12,7 t/s. Der Eintrag `dense-planer` war dasselbe Modell ein zweites Mal: es ist kein Planer NEBEN dem Coder, es IST der Coder. - `kritiker`, `scout` und `doctor` existieren nicht mehr - Zeilen raus, mit Notiz warum, damit niemand wieder danach sucht. - Hermes v0.20.4 -> v0.20.6; die Behauptung eines Bot-Rosters ("Coder mit Qwen3-Coder-Next, Debugger mit Muse-Glimmer") ist frei erfunden: die bots-Sektion in ~/.hermes/config.yaml ist LEER, die Profile fahren hermes, fast und vision. - README verlangte fuer die Gruppe `brains` ausdruecklich `persistent: false` - live steht `true`. Auf die gemessene Regel korrigiert: entscheidend ist nicht der Schalter, sondern dass alles gleichzeitig Warme in DIESELBE Gruppe gehoert (zwei Gruppen verdraengen sich, persistent schuetzt nicht davor). Weiter geprueft und richtiggestellt: - config.py behauptete, die Hermes-UI binde NUR auf Loopback. Tut sie nicht: ein systemd-Drop-in setzt --host 0.0.0.0 und dafuer ein Session-Token. Dass sie nicht im LAN haengt, liegt allein an ufw - von einem zweiten Rechner aus gegengeprueft (9119/8642/9010/7682 dicht, 9001/8080 offen wie gewollt). Der Kommentar sagt das jetzt, damit sich niemand auf die Loopback-Annahme verlaesst. - AGENTS.md: die feingranularen sudoers.d-Regeln schraenken nichts ein, weil /etc/sudoers pauschal NOPASSWD: ALL gewaehrt. Steht jetzt dort, statt Sicherheit vorzutaeuschen. (Die doppelte Zeile wurde auf der Box entfernt, visudo -c ok, Sicherung /root/sudoers.bak-20260827-170315.) Auf der Box ausserdem: Qwen3-Coder-Next-GGUF geloescht (46 GB frei, 240G -> 194G). Der Ordner war in der Live-Config mit 0 Treffern nicht mehr eingebunden; die drei verbliebenen Code-Referenzen sind ein Katalog-Eintrag zum Wiederinstallieren und zwei Kommentare zur Groessen-Heuristik. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
9.1 KiB
Stack-Wahrheiten — Infrastruktur, Dienste, Modelle
Live gegen die Box verifiziert am 19.08.2026 (Dienste-Liste, llama-swap-Config, hermes --version v0.20.4, llama.cpp b10502, /api/health). 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↔ GiteaHitonabi/mission-control-v2↔ Box~/mission-control-v2(nur Branchmain). Enthält backend, frontend (dist committet!), Sidecars, deploy, hermes-Plugin,client/hermes-pc. - Lucy:
F:\Coding Stuff\lucy↔Hitonabi/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, b10502) |
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.20.4, 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 (UD-Q4_K_M, DFlash) | 0 | Agent-Hirn. -c 131072 --parallel 2 → 65536/Slot, KV q8_0, ~70–90 t/s |
coder |
Qwen3.8-27B (Q4_K_M, mmproj BF16) | 5400 | 131072 ctx — --parallel 1, der Coder bekommt den ganzen Slot (34a9862). Multimodal, ~12,7 t/s (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 |
gpt-oss-120b (mxfp4) | 600 | 32768 ctx; Chef-Gutachter (nur nachts / gezielter On-Demand-Call) |
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.yamlam 27.08.2026. Frühere Tabellen führten zusätzlichkritiker(Devstral-Small-2-24B),scout(GLM-4.6V-Flash),dense-planerunddoctor. Die gibt es nicht mehr: die Modell-Konsolidierung (9a35be9, 19.08.) warf sie aus llama-swap, undfremdblick.sh— der einzige Aufrufer des Kritikers — fiel mit dem MC2-Kahlschlag (1e68f62). Gewollt so: ein Coder, ein Agent-Hirn.kritikerundscoutstehen weiterhin inROLE_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.20.6 (2026.8.27, git-Install
~/.hermes/hermes-agent), 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,fastundvision. Frühere Fassungen behaupteten hier einen Roster mitCoder/Qwen3-Coder-NextundDebugger; beides trifft nicht zu. approvals.mode: smart,approvals.cron_mode: deny.- MCP-Server (aus
~/mission-control-v2/mcp/): mission-control-stack, hermes-pc-control, hermes-web-fetch, mcp_voice. (mission-control-memoryist 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) |
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'ODERPOST :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)
- 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). - PBS (LXCs 02:30, Box-Host 03:50), Prune 7d/4w/3m, Verify So 06:00.
- QNAP-Snapshots täglich 07:00 als Ransomware-Netz.
Bare-Metal:
docs/DISASTER_RECOVERY.md. Mensch-Anleitung:docs/RUNBOOK.md.