MEMORI & MCP

Memori agen Anda, disimpan di tempat pekerjaannya hidup

Claude, Cursor, dan apa pun yang bicara MCP bisa membaca pengetahuan project Anda yang terakumulasi sebelum menulis kode — dan menulis balik apa yang dipelajarinya setelah selesai.

☰ Di halaman ini

Masalahnya bukan agen lupa. Masalahnya tidak ada yang menuliskannya.

Sesi coding AI berakhir dan konteksnya menguap. Alasan Anda memilih Postgres daripada Mongo, migrasi yang harus jalan sebelum deploy, endpoint yang terlihat mati tapi menopang beban — semuanya hidup di percakapan yang kini hilang. Sesi berikutnya, manusia atau agen, mulai dari nol dan mempelajarinya lagi dengan cara yang mahal.

Jawaban yang biasa adalah tumpukan markdown di repo. Itu bekerja sampai dua orang mengeditnya, sampai basi, sampai harus privat untuk satu project, atau sampai Anda ingin tahu kapan sebuah keputusan dibuat dan menempel pada apa. Oprex menyimpan pengetahuan yang sama di dalam lifecycle — di samping requirement, issue, test, dan rilis yang memang dibicarakannya — dan menyerahkannya ke agen Anda lewat MCP.

Apa arti "memori" di sini

📓 Dokumen

Markdown panjang. Arsitektur, log kerja sesi vibe-coding yang berjalan, apa pun yang dibutuhkan pembaca masa depan dalam paragraf. Ditulis sekali, dibaca utuh.

🧠 Fakta

Atom yang berubah. Satu kalimat, satu subjek, tanggal mulai benar. Saat tidak lagi benar, ia digantikan penggantinya — disimpan, ditautkan, bisa diaudit, bukan ditimpa.

📌 Catatan

Catatan tempel pendek yang menempel pada artefak. Peringatan, “lain kali, jangan” — terlalu kecil untuk dokumen, terlalu penting untuk hilang.

Terbatas cakupannya, tidak terbagi tanpa sengaja. Memori milik tenant dan bisa dibatasi ke project. Agen yang bekerja di project satu klien tidak bisa membaca milik klien lain, dan tidak ada yang pernah dicampur ke pelatihan model. Lihat Trust Center.

Cara agen memakainya, dalam empat gerakan

01 — ORIENTASI

Tentukan project

Agen mengubah path yang Anda sebut menjadi id project dan menarik indeks memorinya.

02 — BACA

Muat yang penting

Ia membaca dokumen yang judulnya tampak relevan, plus issue yang terbuka — sebelum menulis sebaris kode.

03 — KERJA

Lakukan perubahan

Kini ia mengedit kode dengan keputusan arsitektur dan jebakan yang sudah dikenal ada di konteks.

04 — CATAT

Tulis balik

Yang dipelajarinya menjadi pembaruan memori, catatan, issue, atau requirement — bukan pesan yang hilang.

Sesi nyata, dipersingkat

AndaCheckout melempar 500 di langkah pembayaran storefront. Perbaiki.
AgenSaya muat project-nya dulu. → oprex_resolve_project { path: "wafraa/storefront" } → oprex_list_memories { projectId } → oprex_get_memory { slug: "payment-gateway-quirks" } Memori bilang gateway mengembalikan HTTP 200 dengan badan error, dan retry tidak boleh otomatis karena tagihan mungkin sudah masuk. Itu mengubah perbaikannya.
AgenKetemu — respons diurai sebelum field status diperiksa. Patch ditulis, plus regression test. → oprex_create_issue { title: "Checkout 500: badan error gateway diurai sebagai sukses", … } → oprex_update_memory { slug: "payment-gateway-quirks", … } Saya catat bug-nya dan tambahkan detail baru ke dokumen gateway supaya sesi berikutnya mulai dari sana.
Anda (minggu depan, sesi baru)Kenapa kita tidak auto-retry tagihan yang gagal?
AgenKarena memori project ini bilang gateway mungkin sudah menagih pelanggan. Ini catatannya dan issue asalnya.

Sesi kedua tidak perlu diberi tahu. Itulah intinya: Oprex adalah bagian dari alur kerja AI Anda yang bertahan.

Yang terjadi saat fakta yang diingat tidak lagi benar

Inilah bagian yang salah di kebanyakan fitur “memori AI”. Mereka menambahkan. Enam bulan kemudian project punya tiga kalimat yang saling bertentangan tentang server yang sama tanpa cara tahu mana yang berlaku — lebih buruk daripada tidak punya, karena kini agen dengan percaya diri mengulang yang basi.

MaretServer Melati menampung Coolify dan seluruh ekosistem. RAM-nya cuma 6 GB.
Agen→ oprex_remember { op: "add", subject: "melati", kind: "constraint", statement: "Melati (VPS) RAM 6 GB, menampung Coolify plus ekosistem Kinexa." }
Agustus — Melati mati semalamKehabisan memori. Beban kerja kita pindahkan.
Agen→ oprex_recall_memory { q: "kenapa coolify sempat mati" } Dua fakta tentang melati masih aktif. Yang bilang ia menampung ekosistem kini salah; yang soal 6 GB masih benar dan justru alasan ia mati. → oprex_remember { op: "add", kind: "incident", supersedes: ["mf_…"], reason: "Melati down 2026-08-06, beban dipindah" } Insiden dicatat, fakta hosting digantikan, dan fakta RAM dikonfirmasi alih-alih ditulis ulang.
Belakangan, orang lainBisa taruh layanan baru di Melati?
AgenTidak — ia tumbang karena tekanan memori pada Agustus dan beban kerjanya dipindahkan. Ini insidennya, fakta lama yang digantikan, dan alasan yang dicatat saat itu.

Tiga hal terjadi yang tidak bisa dilakukan sekadar menambahkan: fakta usang digantikan, bukan digandakan; fakta yang masih benar dikonfirmasi, bukan ditulis ulang; dan responsnya memberi tahu agen fakta lain mana tentang subjek itu yang masih hidup — jadi kontradiksi ketiga langsung terlihat, bukan tiga sesi kemudian.

Oprex sebagai juru tulis vibe-coding

Vibe-coding itu cepat dan tidak meninggalkan jejak. Anda menjelaskan, agen membangun, jalan, Anda lanjut — dan tiga minggu kemudian tidak ada yang bisa bilang apa yang diputuskan atau mengapa. Oprex menutup celah itu tanpa memperlambat Anda, karena agenlah yang menulis, bukan Anda.

  • Log kerja menulis dirinya sendiri. Minta agen menjaga satu dokumen memori untuk sesi itu dan ia menambahkan sambil jalan — apa yang dicoba, apa yang gagal, apa yang dipilih.
  • Bug yang ditemukan sambil lalu ikut dilaporkan. Hal yang disadari agen tapi tidak diperbaiki menjadi issue dengan reproduksi, bukan kalimat yang tergulir lewat.
  • Maksud bertahan melampaui diff. Requirement mencatat untuk apa perubahan itu; test case dan rilis tertaut balik, jadi matriks cakupan tetap jujur.
  • Rekan tim membacanya di panel. Semua yang ditulis agen adalah data Oprex biasa di member.oprex.id — bisa diedit, dicari, dan dilihat orang yang tidak pernah membuka terminal.

Katakan secara eksplisit. Agen tidak mencatat secara bawaan, dan memang tidak seharusnya — menangkap diam-diam semua yang Anda ketik adalah masalah privasi, bukan fitur. Sebutkan apa yang ingin disimpan: "catat sesi ini ke memori", "laporkan itu sebagai issue". Satu baris tetap di CLAUDE.md menjadikannya kebiasaan.

Tool yang didapat agen Anda

ToolFungsinya
oprex_resolve_projectMengubah path manusiawi seperti indohrm/enterprise menjadi id project yang dibutuhkan semua panggilan lain. Selalu panggilan pertama.
oprex_recall_memoryMencari fakta yang diingat — diperingkat berdasarkan pernyataannya sendiri, jadi fakta yang terkubur di tengah paragraf tetap ditemukan. Panggilan pertama sebuah sesi, dan yang mengembalikan id yang Anda butuhkan untuk menggantikan sesuatu.
oprex_rememberMenulis balik apa yang dipelajari sesi, sebagai fakta, dalam satu transaksi. Fakta yang menggantikan fakta lama harus menyebutnya — yang lama digantikan dan ditautkan, bukan diam-diam digandakan.
oprex_memory_fact_historySatu fakta beserta setiap perubahan yang dilaluinya, tiap revisi menyimpan keadaan sebelum perubahan itu. Menjawab “kapan kita berhenti memercayai ini, dan mengapa”.
oprex_searchSatu pencarian ter-ranking menembus issue, tiket, requirement, spec, test case, milestone, dan catatan. Pakai sebelum membuka apa pun yang baru, supaya agen berhenti menemukan ulang yang sudah tercatat.
oprex_list_memoriesDaftar dokumen panjang untuk sebuah project — judul dan slug, murah dipindai sebelum menarik satu.
oprex_get_memoryMembaca satu dokumen utuh. Di sinilah agen mendapat keputusan arsitektur, jebakan, dan log kerja yang berjalan.
oprex_create_memoryMenulis dokumen baru. Yang dipelajari agen di satu sesi bertahan ke setiap sesi berikutnya.
oprex_update_memoryMengubah dokumen yang ada alih-alih menumpuk duplikat.
oprex_create_noteCatatan tempel pendek — keputusan, peringatan, “lain kali, jangan”. Catatan untuk fakta yang terlalu kecil untuk sebuah dokumen.
oprex_create_issueMelaporkan bug yang baru ditemukan agen, dengan reproduksi yang sudah ada di konteksnya.
oprex_create_requirementMencatat apa yang seharusnya dicapai perubahan, supaya test dan rilis bisa ditelusuri balik ke sana.
oprex_list_issuesMembaca backlog terbuka sebelum mengusulkan pekerjaan, supaya agen berhenti menemukan ulang masalah yang sudah dikenal.

Set lengkapnya mencakup issue, requirement, spesifikasi, test case, milestone, rilis, tiket, pipeline, OTP, dan Autopilot — lihat Integrasi MCP untuk daftar lengkap.

Sambungkan dalam satu perintah

Buat kunci di workspace Anda lewat Pengaturan → API keys, lalu:

claude mcp add --transport http oprex https://api.oprex.id/mcp \
  --header "Authorization: Bearer <kunci-anda>"

Cursor, Cline, Windsurf, dan apa pun yang bicara MCP lewat HTTP memakai URL dan header yang sama. Kunci membawa izin Anda — agen tidak pernah bisa melihat project yang tidak bisa Anda lihat.

Beri agen Anda memori

Paket gratis sudah termasuk akses MCP. Sambungkan, kerjakan satu sesi, lalu baca balik apa yang ditulisnya.

Buka workspace Anda Lihat angkanya Baca panduannya