Files
mission-control-v2/docs/AUDIT_KICKOFF.md
T

5.5 KiB
Raw Blame History

Kickoff: Voll-Audit MC2 (Front+Backend) + Box-SSH + Optimierungsplan

Für eine frische Claude-Code-Session mit echtem Terminal (direkter SSH-Zugang zur Box). Aufgabe vom Nutzer: front/backend komplett scannen (IST-Zustand), via SSH auf die Box gehen (ausdrücklich erlaubt), und am Ende einen sauberen, strukturierten Plan liefern, wie es weitergeht — inkl. Optimierungen für ALLE LLM-Rollen und einem neuen scout-Modell. Erst auditieren/planen — keine destruktiven Änderungen ohne Plan-Freigabe.

Zugänge

  • Repo (Dev-PC): F:\Coding Stuff\mission-control-2 (Windows). Auf der Box: ~/mission-control-v2.
  • Box: ssh hitonabi@192.168.178.151 (key-based, funktioniert non-interaktiv). Hostname tobisniceaiarbeitstier, AMD Ryzen AI MAX+ 395 (Strix Halo), 122 GB RAM, GTT ~124 GB, Vulkan/RADV.
  • Wichtige Box-Pfade: /etc/llama-swap/config.yaml (Engine, -watch-config), ~/.hermes/config.yaml (Hermes-Agent = Lucys Hirn), /srv/models/ (GGUFs), /opt/llamacpp-vulkan/llama-server (Engine v9843).
  • Dienste (systemd --user): hermes-gateway (:8642), hermes-webui (:8787), llama-swap (:8080), MC2-Gateway (:9001). Live-Logs: journalctl --user -u hermes-gateway -f.

Architektur (verifiziert 30.06.2026)

  • llama-swap (:8080) lädt GGUFs; Rollen = llama-swap aliases; Warm-Bleiben über groups: { brains: { swap:false } } + ttl.
  • MC2-Gateway (:9001/v1, FastAPI) mit virtuellen Lanes chat(→fast/heavy) & coding(→coder_lite/coder). Code: backend/services/router_logic.py, routing_policy.py, roles.py, llamaswap.py, budget.py, fit.py; Router backend/routers/{models,routing,voice}.py. Frontend: frontend/src/views/ModelsView.tsx, components/models/*, SystemDrawer.tsx.
  • Hermes-Agent (:8642) = Lucys Hirn (~/.hermes/config.yaml: model.default), Delegation heavy.
  • Lucy-Client (client/lucy-desktop, Electron) spawnt lokal pocket-tts (:8130); Persona+Umlaut-Logik im Client (renderer/src/config.ts, lib/voice/useVoiceAgent.ts).
  • Features sind eigene Rollen (hirn-unabhängig): Sehen=Qwen3-VL-8B, Hören=Whisper(stt), Sprechen=pocket-tts, Embedding=Qwen3-Embedding-0.6B(ttl 0, immer warm), Gedächtnis=Mem0/MCP.

Modelle / Rollen (Stand jetzt)

Rolle (alias) Modell aktiv ctt/ttl Notiz
fast Qwen3.6-35B-A3B 3B ttl 0, --parallel 2, mmproj chat-Lane Default
heavy Qwen3.5-122B-A10B 10B ttl 600 Delegation-Ziel
coder Qwen3-Coder-Next ttl 600, spec draft-simple (Qwen3-0.6B)
coder_lite Qwen3-Coder-30B-A3B 3B ttl 300 coding-Lane Default
vision Qwen3-VL-8B-Instruct ttl 300 Screen-Beschreibung
(embedding) Qwen3-Embedding-0.6B ttl 0 immer warm
brain (NEU, Lucy) gemma-4-26B-A4B-it 4B ttl 0, noch Alias scout Hermes default seit 30.06.

Bereits gemacht (30.06.)

  • Lucys Hirn fastgemma-4-26B-A4B-it (~/.hermes/config.yaml model.default, Backup ~/.hermes/config.yaml.gemma-swap.bak, hermes-gateway neu gestartet, verifiziert).
  • Umlaut-Fix: Client-Stammliste erweitert (useVoiceAgent.ts) und Server-Netz _fix_umlauts (client/lucy-tts/pocket_server.py). Hermes-System-Prompt fordert echte Umlaute (Client-Persona).
  • pocket-tts getunt: A1 safetensors-Voice-Cache, A2 Referenz-Cleaning, B3 FP-Gate skip kurze Audios, FAST_FIRST (kurzer 1. Chunk, TTFB ~1,3s), seriell (WORKERS=0) als Default. Details: docs/LUCY_TTS_PLAN.md.

Offene Probleme / Aufgaben

  1. Brain-Rolle fehlt als Konzept. gemma läuft als Alias scout, ist NICHT in brains: swap:false → unter Speicherdruck evakuierbar trotz ttl 0. Detail-Brief: docs/CLAUDE_CODE_BRIEF_lucy-brain-role.md (Backend+Frontend-Umbau: erstklassige brain-Rolle, auto-warm/ko-resident, Hermes-Sync).
  2. scout-Rolle jetzt vakant (gemma war scout, ist jetzt Hirn). Neues scout-Modell suchen: multimodaler Allrounder, klein/MoE (schnell, KO-Residenz-freundlich), Tools wünschenswert. Tagesaktuell recherchieren + Empfehlung.
  3. MTP-Speculative-Decoding für gemma (1,52× Durchsatz, 0 Qualitätsverlust): Engine kann draft-mtp ✓; MTP-Drafter gemma-4-26B-A4B-it-assistant (~0,4B) muss nach /srv/models/, gemma-cmd ergänzen (-md <assistant.gguf> --spec-type draft-mtp --spec-draft-n-max/-n-min; alte --draft-max/-min sind entfernt!). MC2-UI/Backend kennt MTP-Drafter nicht (zeigte „Vocab ?") → erweitern. (Im Brain-Brief.)
  4. Optimierung ALLER Rollen prüfen: je Modell ctx/quant/ttl/Warm-Gruppe/Parallelität/Spec-Decoding (MTP für Gemma; Draft-Eignung für Qwen-Modelle) gegen das GTT-/RAM-Budget (~124 GB) und reale t/s auf Strix Halo (bandbreitenlimitiert → MoE bevorzugt; dichte Modelle langsam). KO-Residenz-Set sinnvoll definieren (was muss gleichzeitig warm sein für Lucy + IDE-Coding?).

Deliverable

Ein strukturierter Plan (z.B. docs/OPTIMIZATION_PLAN.md): IST-Zustand → konkrete Maßnahmen je Rolle (mit Begründung/Zahlen) → Reihenfolge/Risiko/Revert → offene Entscheidungen. Erst Plan, dann Umsetzung nach Freigabe. Alles reversibel (Config-Backups vor jeder Änderung).

Leitplanken

  • Features (Sehen/Hören/Sprechen/Embedding/Gedächtnis) + IDE-Lanes dürfen NICHT brechen.
  • Vor jeder Box-Config-Änderung Backup; llama-swap reloadt per -watch-config.
  • Keine destruktiven Aktionen ohne Plan-Freigabe des Nutzers.