Files
mission-control-v2/docs/aufgaben/referenzaufgabe-mem0-ausbau.md
T
HitonabiandClaude Opus 5 d880a76b6a
Ampel / ampel (push) Successful in 22s
fix(referenz): Pruefbefehl aus dem Suchpfad genommen, Lauf D ergaenzt
Zwei Fehler aus dem ersten Anlauf behoben:

1. referenz-check.sh lag unter deploy/ und enthielt selbst 7x das Wort
   "mem0" (es sucht ja danach) - damit zaehlte es sich in Kriterium 3 mit
   und das Kriterium war unerfuellbar. Jetzt unter docs/aufgaben/, wo
   Kriterium 3 nicht sucht. Strukturell geloest statt per grep-Ausnahme.

2. Der Lauf muss in einer FRISCHEN Sitzung starten - der Desktop hatte
   eine Sitzung vom Vortag fortgesetzt und deren Kontext mitgeschleppt.

Neu: Lauf D (reasoning_effort low). Der Fehlversuch zeigte, dass >95%
der Modell-Ausgabe unsichtbares Nachdenken war - 19.899 Tokens fuer
2.600 Zeichen sichtbaren Text. Das ist der billigste Hebel und wird
darum vor Modellwechseln geprueft.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 21:57:07 +02:00

5.5 KiB
Raw Blame History

Referenzaufgabe: Mem0-Sidecar restlos ausbauen

Zweck dieser Datei: Messlatte für den Stack-Umbau (Stufe 2, 20.08.2026). Dieselbe Aufgabe wird mehrfach mit verschiedenen Modellen gefahren. Gemessen wird nicht Tokens pro Sekunde, sondern: Wurde sie fertig? Wie lange? Wie viele Züge? Alle Pfade und Befehle unten sind am 20.08.2026 auf der Box nachgemessen, nicht geraten.

Hintergrund

Mem0 wurde im August abgelöst (bf145a3, eb4bcfc, 2286879). Der Rückbau blieb unvollständig: Der Sidecar-Ordner liegt noch im Baum, MC2 fragt weiterhin einen toten Port ab.

Gemessen: curl http://127.0.0.1:8765/healthkeine Antwort. Kein systemd-Dienst dafür, /srv/models/mem0 bereits entfernt. Es ist also wirklich tot, nicht nur gerade aus.

Arbeitsplatz

Isolierter Worktree — NICHT das Live-Deployment:

~/projekte/mc2-referenz        Zweig: referenz/mem0-ausbau

~/mission-control-v2 bleibt auf main und bedient weiter den laufenden Dienst auf :9001. Dort nichts ändern.

Auftrag

Entferne die Mem0-Reste vollständig, ohne etwas anderes kaputtzumachen.

17 Dateien haben Treffer (gemessen 20.08., selbst nachprüfen statt blind vertrauen):

backend/steward.py                        deploy/stack-postcheck.sh
backend/config.py                         deploy/venv-audit.sh
backend/routers/voice.py                  deploy/agent-hooks/box-steckbrief-inject.sh
backend/routers/system.py                 deploy/warmup.sh
backend/routers/zeitmaschine.py           deploy/autoupdate.sh
backend/services/sentry.py                deploy/hermes-postcheck.sh
backend/services/voice_metrics.py         deploy/restore.sh
backend/services/backup.py                deploy/backup.sh
mcp/mcp_mc.py

Dazu der Ordner mem0_service/ (app.py, migrate.py, requirements.txt, smoke_test.py).

‼️ Der eigentliche Prüfstein: Wenn eine API-Antwort ein Feld wie mem0_reachable liefert, das das Frontend liest, darf es nicht einfach verschwinden — sonst bricht die Oberfläche. Entweder das Frontend mit anpassen oder das Feld sauber entfernen. Wer nur grep mem0 laufen lässt und alles wegwirft, produziert eine Fassade.

Fertig-Kriterien

Ausgangswert am 20.08.: 1, 2, 4, 5 sind bereits grün — sie sind Schutzgeländer, nicht die Arbeit. Nur Kriterium 3 ist offen. Wer 3 erfüllt und dabei 1/2/4/5 kaputtmacht, hat versagt.

# Prüfung Befehl Ausgangswert
1 Lint sauber cd ~/projekte/mc2-referenz && ~/.venv-lint/bin/ruff check . All checks passed
2 Backend lädt cd ~/projekte/mc2-referenz/backend && ~/mission-control-v2/backend/.venv/bin/python -c "import app" ok
3 keine mem0-Reste cd ~/projekte/mc2-referenz && grep -ril mem0 backend/ mcp/ deploy/ --include='*.py' --include='*.sh' | wc -l 17 → muss 0 werden
4 Selbsttest grün bash ~/mission-control-v2/deploy/self-smoke.sh grün
5 MC2 gesund curl -s localhost:9001/api/health "status":"ok"

Treffer in docs/ sind erlaubt — das ist Historie und darf stehenbleiben.

Selbstprüfung mit einem Befehl:

bash ~/projekte/mc2-referenz/docs/aufgaben/referenz-check.sh

Der Prüfbefehl liegt bewusst unter docs/aufgaben/ und nicht unter deploy/. Im ersten Anlauf lag er in deploy/, enthielt selbst siebenmal das Wort „mem0" (er sucht ja danach) und zählte sich damit in Kriterium 3 mit — das Kriterium war unerfüllbar. In docs/ wird er nicht durchsucht.

Randbedingungen

  • ‼️ In einer FRISCHEN Sitzung starten, nicht in einer fortgesetzten. Beim ersten Anlauf hat der Desktop eine Sitzung vom Vortag weitergeführt und deren Kontext mitgeschleppt — die Messung war dadurch wertlos. Im Desktop also einen neuen Chat anlegen, nicht den alten öffnen.
  • Nicht pushen. Der Zweig bleibt lokal, damit der Lauf wiederholbar ist.
  • Nichts außerhalb des Worktrees anfassen — kein /etc, keine systemd-Dienste, kein Neustart.
  • Wenn ein Kriterium nicht erfüllbar ist: ehrlich sagen und aufhören. Ein klares „Kriterium 3 scheitert an X" ist wertvoller als ein beschönigter Abschluss.

Zurücksetzen zwischen den Läufen

cd ~/mission-control-v2
git worktree remove --force ~/projekte/mc2-referenz
git branch -D referenz/mem0-ausbau
git worktree add -b referenz/mem0-ausbau ~/projekte/mc2-referenz main

Messprotokoll

Lauf Aufbau Fertig? Wanduhr Züge Bemerkung
Fehlversuch 20.08. 21:10 76 min, abgebrochen 8 Kriterium 3 unerfüllbar + fortgesetzte Alt-Sitzung. Verwertbar trotzdem: 19.899 Ausgabe-Tokens, davon nur ~2.600 Zeichen sichtbar → >95 % unsichtbares Nachdenken. Kompression feuerte bereits.
A Qwen3.8-27B, reasoning_effort: medium — Ausgangswert
D Qwen3.8-27B, reasoning_effort: low Billigster Hebel: eine Konfigzeile, kein Modellwechsel
B Qwen3.8-27B + DFlash-2 Entwurfsmodell liegt bereit
C Qwen3.6-35B-A3B (fast, 95,7 t/s) SWE-bench 73,4

Was der Fehlversuch schon gezeigt hat

Pro Zug erzeugte das Modell ~2.487 Tokens, sichtbar wurden davon 181451 Zeichen. Bei 12,6 t/s sind das ~26 Minuten reine Erzeugung für ~2.600 Zeichen Text. Der Engpass ist Denk-Aufwand × Bandbreite, nicht das Harness. Darum Lauf D vor B und C: er prüft den billigsten Hebel zuerst.

Inhaltlich war das Modell gut — es fand von selbst den Prüfstein (mem0_msmemory_ms im Frontend), statt blind zu löschen.