Notes/knowledge

Link vs Rex-Memory — Adoption Plan

Updated Sat Aug 08 2026 00:00:00 GMT+0000 (Coordinated Universal Time)
Summary

Perbandingan Link (gowtham0992) vs rex-memory vault kita, plus adoption plan fitur yang worth diport.

Link vs Rex-Memory — Adoption Plan

Hasil analisis https://github.com/gowtham0992/link setelah refactor rex-memory jadi sistem retrieval 3-lapis.

Perbandingan

Aspek Link Rex-Memory
Format Markdown + YAML frontmatter Markdown + YAML frontmatter
Lokalitas Plain files, git, no DB Plain files, git, no DB
Lapis raw/ (immutable) + wiki/ (agent-compiled) daily/ (cold) + projects/+knowledge/ (warm) + Hermes memory (hot)
Index index.md + _backlinks.json auto index.md auto (bin/reindex.py tiap 30m)
Write safety Review-gated, conflict detection, supersedes Direct-write via write_file/patch
Recall Lexical + semantic (measured 0.749 hit@1) Agent baca index.mdread_file
Cross-agent CLI + MCP + 7 integrasi (Codex/Claude/Cursor/Kiro/Copilot) Hermes-only
Complexity 6K LoC, optional semantic deps 230 LoC reindex.py, zero deps
Produk Memory untuk agent (propose→approve→retrieve) Memory dari agent (agent catat, user baca)

Fitur Link yang powerful

1. applies_when fencing (HIGH VALUE)

Memory bisa dibatasi scope:

applies_when: "project:arthanta"
applies_when: "path:~/workspace/cde-*"
applies_when: "task:frontend"

Use case rex-memory: Knowledge Laravel trustProxies cuma relevan ke proyek Laravel, bukan ke Flutter. Sekarang semua knowledge global — agent harus filter sendiri.

Adoption: Tambah field applies_when di frontmatter knowledge/*.md. Reindex bisa group index by scope. Agent skill bisa filter hasil search_files by applies_when match.

2. supersedes lineage (MEDIUM VALUE)

Memory lama diarsip dengan link ke memory baru:

supersedes: vps-specs-2026-07.md
superseded_by: vps-specs-2026-08.md

Use case rex-memory: VPS specs berubah (2-core → 4-core). Sekarang tinggal replace teks, riwayat cuma di git log (susah dibaca).

Adoption: Tambah supersedes/superseded_by di frontmatter. Reindex render lineage chain di index. Kalau ada superseded_by, kasih warning "outdated, lihat X".

3. context field — retrieval text bukan claim (LOW VALUE untuk kita)

Teks yang bantu recall tapi bukan bagian memory itu sendiri. Echo/duplicate check cuma baca memory_claim_text (title+TLDR+body), skip context.

Use case Link: Session transcript punya deixis ("itu bagus") — context nampung turn sebelumnya biar retrievable, tapi nggak dianggap duplikat kalau memory lain juga bilang "itu bagus".

Use case rex-memory: Kita nggak punya automatic capture, jadi semua write manual. Agent sudah tahu mana claim mana bukan. Skip dulu.

4. Session-end hooks + proposal mining (MEDIUM VALUE, tapi kerja berat)

Transkrip agent otomatis dimining jadi proposal, user tinggal approve. Echo guard 2-layer (Link's output dropped, lalu restating existing memory dropped).

Use case rex-memory: Daily log sekarang manual. Kalau ada hook, agent bisa auto-capture "preferensi Rey: model pinned cc/claude-sonnet-5" dari transkrip, user cuma approve.

Adoption: Butuh integrasi Hermes session lifecycle. Nggak sepele — Link punya agent_hooks.py 500+ baris. Defer sampai vault manual stabil dulu.

5. Benchmark as CI gate (LOW VALUE untuk solo use)

Link punya 62-memory corpus, 1,176 test cases. CI fails kalau recall hit@1 turun.

Use case Link: Multi-contributor repo, cegah regression saat refactor recall logic.

Use case rex-memory: Solo vault. Regression detection = "kok agent nggak nemu X lagi?" Benchmark overhead tinggi untuk gain rendah. Skip.

6. Semantic search (HIGH VALUE, tapi deps trade-off)

Lexical (token match) hit@1 = 0.589. Quality tier (all-MiniLM-L6 ONNX) hit@1 = 0.749. Zero-overlap paraphrase: lexical 0.048 → quality 0.120 (2.5×).

Use case rex-memory: "cara deploy Laravel di nginx" vs "aturan trustProxies di balik reverse proxy" — pure paraphrase, lexical miss. Sekarang agent harus nebak keyword atau baca index 1-by-1.

Adoption trade-off:

  • Pro: Hit rate naik 27% (0.589 → 0.749), zero-overlap 2.5×.
  • Cons: Dependency (sentence-transformers / model2vec), model 30-90MB, build embedding index (sekali setup + incremental), latency +8ms.

Keputusan: DEFER sampai vault hits 200+ notes. Di 71 notes sekarang, lexical + summary bagus cukup. Complexity cost belum worth it.

Adoption plan (prioritas)

Phase 1 — Low-hanging fruit (1-2 jam kerja)

A. applies_when fencing

  1. Tambah applies_when: "project:X" / applies_when: "stack:laravel" di frontmatter schema (CONVENTIONS.md).
  2. reindex.py: parse applies_when, render badge di index ([Laravel], [Flutter]).
  3. Kurasi 10-15 knowledge paling sering false-positive (misal Laravel-specific ke Flutter project) — tambah applies_when.
  4. Tulis skill scoped-knowledge-retrieval: wrapper search_files + frontmatter filter by scope match.

B. supersedes lineage

  1. Tambah supersedes/superseded_by di frontmatter schema.
  2. reindex.py: detect supersession chain, render lineage di index (A ← B ← C [latest]).
  3. Kalau note punya superseded_by, index kasih 🔗 "Outdated → lihat X".

Phase 2 — Medium effort (4-6 jam)

C. Backlink tracking Link punya _backlinks.json — reverse index [[wikilink]]. Berguna untuk "knowledge X dirujuk dari mana aja?"

  1. reindex.py: scan body [[link]] atau [text](path.md), build reverse index JSON.
  2. Index render "Referenced by: …" di bawah tiap note.

D. Conflict detection Link refuse write kalau ada memory yang bentrok (negation, contradictory option). User dipaksa resolve via --supersedes.

  1. reindex.py (atau script terpisah): detect contradiction pattern antar memory — "prefer X" vs "avoid X", "use Riverpod" vs "use Provider".
  2. Report di stderr saat reindex: "⚠️ Potential conflict: A vs B".

Phase 3 — Future (defer)

E. Semantic search — defer sampai 200+ notes.

F. Session-end hooks — defer sampai daily-log manual lancar 3+ bulan.

G. MCP server — defer sampai ada use case cross-agent nyata (sekarang cuma Hermes).

Non-adoption (over-engineering untuk kita)

  • memory_type taxonomy (preference/decision/project/fact/note/procedure) — type + status cukup.
  • review_status / reviewed_at — semua write manual, implisit reviewed.
  • expires_at / review_after — update manual, nggak butuh TTL.
  • CI benchmark gate — solo vault, nggak butuh regression gate.
  • LinkBar GUI — Obsidian + terminal cukup.

Kesimpulan

Link adalah mature memory infrastructure untuk multi-agent, production-grade, measured. Rex-memory adalah vault manual yang direfactor jadi retrieval system — optimized untuk solo dev + Hermes-native.

Worth stealing:

  1. applies_when scoping (high ROI, low complexity).
  2. supersedes lineage (medium ROI, low complexity).
  3. Backlink tracking (nice-to-have).

Defer:

  • Semantic search (deps + 90MB model, ROI rendah di <100 notes).
  • Session hooks (integration overhead tinggi, manual masih lancar).
  • MCP server (nggak butuh cross-agent support sekarang).

Phase 1 implementable hari ini. Phase 2 kalau vault hits pain point retrieval (false positive, contradiction). Phase 3 kalau vault scale 200+ notes atau ada agent kedua.

Backlinks

No backlinks

Tags

linkmemorycomparisonarchitecture