MCP & Memory

Memory: dokumen vs fakta, dan apa yang terjadi kalau sesuatu berubah

Dua lapis ingatan. Dokumen untuk dibaca utuh, fakta untuk hal yang berubah — dengan penggantian yang eksplisit, bukan penumpukan.

Help Center / MCP & Memory

Dua lapis, dan kapan pakai yang mana

DokumenFakta
IsinyaMarkdown panjangSatu kalimat, satu subject
DibacaUtuh, oleh manusiaDicari, oleh agent
Berubah?Diperbarui sesekaliSering — itu intinya
Tooloprex_list_memories, oprex_get_memory, oprex_create_memoryoprex_recall_memory, oprex_remember

Dokumen untuk catatan kerja satu sesi, keputusan arsitektur, apa pun yang butuh paragraf. Fakta untuk hal yang punya masa berlaku: server ini punya RAM sebesar itu, kita memutuskan tidak auto-retry karena itu, insiden ini terjadi pada tanggal itu.

Kenapa fakta perlu tabel sendiri

Kebanyakan fitur "AI memory" cuma menambah. Enam bulan kemudian project Anda punya tiga kalimat yang saling bertentangan tentang satu server, dan tidak ada cara tahu mana yang masih benar. Itu lebih buruk daripada tidak punya catatan — karena sekarang agent-nya mengulang yang basi dengan yakin.

Di Oprex, fakta yang menggantikan fakta lain wajib menyebut id fakta yang digantikan. Yang lama tidak dihapus: ia ditandai *superseded*, ditautkan ke penggantinya, dan menyimpan alasannya. Jadi pertanyaan "kapan kita berhenti percaya ini, gara-gara apa" tetap terjawab berbulan-bulan kemudian.

Contoh nyata

Maret. Agent mencatat dua fakta tentang subject melati:

  1. Melati punya RAM 6 GB — *kind: constraint*
  2. Melati menghosting Coolify dan seluruh ekosistem Kinexa — *kind: reference*

Agustus. Melati mati kehabisan memori; workload dipindah. Sesi baru bertanya *"kenapa coolify sempat mati"*. Agent memanggil oprex_recall_memory, dapat kedua fakta itu, lalu:

  • Menambah fakta insiden baru, dengan supersedes berisi id fakta nomor 2 dan alasan *"Melati down 2026-08-06, workload dipindah"*
  • Mengonfirmasi fakta nomor 1 dengan operasi noop — RAM 6 GB masih benar, dan justru itu penyebabnya. Konfirmasi menaikkan penghitung, tidak menduplikasi.

Sesudahnya, subject melati punya dua fakta aktif, bukan tiga. Yang basi masih ada di riwayat, lengkap dengan penggantinya.

Yang membuat kontradiksi tidak menumpuk diam-diam

Setiap kali agent menambah fakta, jawabannya menyertakan coexisting: fakta aktif dengan subject yang sama yang tidak ikut digantikan. Bukan error — dua fakta sesubjek bisa dua-duanya benar. Tapi kalau baru saja tercipta kontradiksi ketiga, itu terlihat saat itu juga, bukan tiga sesi kemudian.

Riwayat & audit

oprex_memory_fact_history mengembalikan satu fakta plus setiap perubahannya. Tiap revisi menyimpan keadaan sebelum perubahan, siapa yang mengubah, dan alasannya. Menghapus fakta wajib menyertakan alasan — justru itu momen paling penting untuk tahu kenapa.

Privasi

Fakta punya dua scope:

  • personal — hanya Anda yang bisa membacanya, bahkan rekan satu tenant tidak
  • project — dibagi ke anggota project itu saja

Aturannya ditegakkan di server, bukan di UI. Agent yang bekerja di satu project klien tidak bisa membaca fakta klien lain, dan tidak ada yang pernah ikut ke data pelatihan model.

Cara memakainya

Pola yang bekerja: recall di awal, reconcile di akhir.

Awal sesi  : oprex_recall_memory { q: "<yang sedang dikerjakan>" }
Akhir sesi : oprex_remember { operations: [ … ] }

Kalau ada yang ternyata sudah tidak benar, jangan cuma menambah fakta kedua — sebutkan id yang lama di supersedes. Itu satu-satunya cara menyatakan pertentangan.

Last updated 2026-08-07

Related

Still stuck?

Open a ticket and it lands in the same tracker our own engineers work from — not a shared inbox nobody owns.

Open a support ticket Ask the community