opencode: überprüfen ob OpenMemory-Schreiben wirklich funktioniert #82

Open
opened 2026-04-20 11:25:43 +00:00 by orbitalo · 1 comment
Owner

Problem

opencode meldet beim Abschluss einer Aufgabe Erfolgreich dokumentiert inkl. Punkteliste, aber in OpenMemory landet nichts. Beobachtet am 2026-04-20 in Session ses_287aaf10affeZgDf9FLoRMQZfV (Dokumentation Lügen) mit Modell openrouter/qwen/qwen3.5-plus-02-15.

Befund

  • App-Counter cline auf CT 122 (OpenMemory-Backend) steht seit Wochen auf total_memories_created: 2, trotz zig Schreibversuchen.
  • Im Session-Transcript sichtbar: opencode hat openmemory_add_memories aufgerufen (z. B. um 09:55:44 UTC, Input-JSON mit Topic-34-Beschreibung).
  • Rückgabe vom MCP: {"results": []} — leeres Array, kein Fehler.
  • mem0/OpenMemory macht eine LLM-basierte semantische Deduplizierung: zu ähnliche Einträge werden still verworfen.
  • opencode interpretiert [] als Erfolg und baut trotzdem den Template-Text Erfolgreich dokumentiert für den User.

Konsequenz

User-Vertrauen untergraben — Erfolgsmeldung ohne realen Effekt. Gleiche Täuschung ist auch beim Cursor-Agenten passiert (meine eigenen Tests), Dedup ist Backend-seitig, nicht opencode-spezifisch.

Lösungs-Idee

AGENTS.md in homelab-brain um eine Klausel ergänzen:

Wenn openmemory.add_memories mit results: [] antwortet, den Eintrag als Duplikat werten. Dann den Text spezifischer umformulieren (konkrete IDs, URLs, Zahlen, Timestamps einbauen) und einmal neu versuchen. Wenn der zweite Versuch auch [] liefert, dem User das ausdrücklich mitteilen statt Erfolg zu melden.

Akzeptanzkriterien

  • AGENTS.md entsprechend ergänzt + committet + gepusht
  • Test: in neuer opencode-Session einen eindeutig neuen Fakt abspeichern lassen, cline.total_memories_created muss um ≥1 steigen
  • Test: einen absichtlichen Duplikat-Text speichern lassen, opencode muss den Retry durchführen und ggf. den Misserfolg ehrlich melden

Hintergrund

  • Dokumentation: container/ct-116-hausmeister-bot.md · Eintrag 16.04.2026 (Cursor-Agent RAG-Fehlversuche) als ähnliches Muster.
  • Backup des Session-Transcripts im Repo: sessions/opencode-20260420-qwen36-workflow.md (commit dd957143).
  • OpenMemory-MCP-Endpoint opencode: http://100.92.71.93:8765/mcp/cline/sse/orbitalo
  • OpenMemory-API (direkt): http://<ct122>:8765/api/v1/apps/ zeigt pro App Created/Accessed-Counter — gute Diagnose-Quelle.
## Problem opencode meldet beim Abschluss einer Aufgabe `Erfolgreich dokumentiert` inkl. Punkteliste, aber in OpenMemory landet nichts. Beobachtet am 2026-04-20 in Session `ses_287aaf10affeZgDf9FLoRMQZfV` (Dokumentation Lügen) mit Modell `openrouter/qwen/qwen3.5-plus-02-15`. ## Befund - App-Counter `cline` auf CT 122 (OpenMemory-Backend) steht seit Wochen auf `total_memories_created: 2`, trotz zig Schreibversuchen. - Im Session-Transcript sichtbar: opencode **hat** `openmemory_add_memories` aufgerufen (z. B. um 09:55:44 UTC, Input-JSON mit Topic-34-Beschreibung). - Rückgabe vom MCP: `{"results": []}` — leeres Array, **kein Fehler**. - mem0/OpenMemory macht eine LLM-basierte semantische Deduplizierung: zu ähnliche Einträge werden still verworfen. - opencode interpretiert `[]` als Erfolg und baut trotzdem den Template-Text `Erfolgreich dokumentiert` für den User. ## Konsequenz User-Vertrauen untergraben — Erfolgsmeldung ohne realen Effekt. Gleiche Täuschung ist auch beim Cursor-Agenten passiert (meine eigenen Tests), Dedup ist Backend-seitig, nicht opencode-spezifisch. ## Lösungs-Idee `AGENTS.md` in `homelab-brain` um eine Klausel ergänzen: > Wenn `openmemory.add_memories` mit `results: []` antwortet, den Eintrag als **Duplikat** werten. Dann den Text spezifischer umformulieren (konkrete IDs, URLs, Zahlen, Timestamps einbauen) und einmal neu versuchen. Wenn der zweite Versuch auch `[]` liefert, dem User das ausdrücklich mitteilen statt Erfolg zu melden. ## Akzeptanzkriterien - [ ] AGENTS.md entsprechend ergänzt + committet + gepusht - [ ] Test: in neuer opencode-Session einen eindeutig neuen Fakt abspeichern lassen, `cline.total_memories_created` muss um ≥1 steigen - [ ] Test: einen absichtlichen Duplikat-Text speichern lassen, opencode muss den Retry durchführen und ggf. den Misserfolg ehrlich melden ## Hintergrund - Dokumentation: [container/ct-116-hausmeister-bot.md](/orbitalo/homelab-brain/src/branch/main/..) · Eintrag 16.04.2026 (Cursor-Agent RAG-Fehlversuche) als ähnliches Muster. - Backup des Session-Transcripts im Repo: `sessions/opencode-20260420-qwen36-workflow.md` (commit `dd957143`). - OpenMemory-MCP-Endpoint opencode: `http://100.92.71.93:8765/mcp/cline/sse/orbitalo` - OpenMemory-API (direkt): `http://<ct122>:8765/api/v1/apps/` zeigt pro App Created/Accessed-Counter — gute Diagnose-Quelle.
Author
Owner

Fix committet: 73171d0c (Cursor-Session 2026-04-20).

AGENTS.md um Regel 4 ergänzt:

results: [] = Duplikat, kein Erfolg. mem0 dedupliziert semantisch und verwirft zu ähnliche Einträge still. Dann genau einmal mit spezifischerem Text (IDs, URLs, Zahlen, Timestamps, CT-Nummern) retryen. Bleibt der Retry auch []: dem User ehrlich „nicht gespeichert (vermutlich Duplikat)" melden. NIEMALS „Erfolgreich dokumentiert" schreiben, wenn results leer war.

Tests stehen noch aus (neue OC-Session):

  • Eindeutig neuen Fakt speichern → cline.total_memories_created muss um ≥1 steigen
  • Absichtliches Duplikat speichern → OC muss Retry zeigen und Misserfolg ehrlich melden

Auto-Sync auf pve-hetzner bleibt weiterhin deaktiviert (# DISABLED for patch in /etc/crontab — war schon vorher so, nicht durch diesen Fix).

Fix committet: `73171d0c` (Cursor-Session 2026-04-20). `AGENTS.md` um Regel 4 ergänzt: > **`results: []` = Duplikat, kein Erfolg.** mem0 dedupliziert semantisch und verwirft zu ähnliche Einträge still. Dann genau einmal mit spezifischerem Text (IDs, URLs, Zahlen, Timestamps, CT-Nummern) retryen. Bleibt der Retry auch `[]`: dem User ehrlich „nicht gespeichert (vermutlich Duplikat)" melden. NIEMALS „Erfolgreich dokumentiert" schreiben, wenn `results` leer war. Tests stehen noch aus (neue OC-Session): - [ ] Eindeutig neuen Fakt speichern → `cline.total_memories_created` muss um ≥1 steigen - [ ] Absichtliches Duplikat speichern → OC muss Retry zeigen und Misserfolg ehrlich melden Auto-Sync auf pve-hetzner bleibt weiterhin deaktiviert (`# DISABLED for patch` in `/etc/crontab` — war schon vorher so, nicht durch diesen Fix).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: orbitalo/homelab-brain#82
No description provided.