[RAG (retrieval-augmented generation)](https://en.wikipedia.org/wiki/Retrieval-augmented_generasi) menambah LLM dengan mengambil bagian yang relevan dari korpus eksternal, sering kali melalui penyematan dan penelusuran kesamaan, lalu memasukkannya sebagai konteks sehingga model dapat menjawab dari data terkini atau data khusus domain.

Ini berfungsi dengan baik untuk pencarian dokumen. Untuk memori agen, itu berantakan.

Makalah baru, "Beyond RAG for Agent Memory: Retrieval by Decoupling and Aggregation" (Hu et al., Feb 2026; [lihat makalah](https://arxiv.org/abs/2602.02007)), dari King's College London dan Alan Turing Institute, menjelaskan alasannya dan menunjukkan pendekatan yang lebih baik.

## Mengapa RAG kekurangan memori agen

RAG standar mengasumsikan korpus campuran yang besar: menyematkan teks, mengambil [top-k](https://en.wikipedia.org/wiki/Nearest_neighbor_search) berdasarkan kesamaan, digabungkan sesuai konteks.

Memori agen adalah kebalikannya: aliran yang terbatas dan koheren di mana fakta yang sama muncul dalam banyak frasa. Menerapkan RAG di sini menimbulkan tiga masalah:

1. **Top-k berlebihan.** Anda bertanya "Kapan terakhir kali saya ke dokter gigi?" Dalam korpus dokumen, top-k mungkin menampilkan beberapa paragraf relevan dari sumber berbeda. Dalam memori agen, banyak potongan mengatakan hal yang hampir sama ("Dokter gigi yang dijadwalkan 15 Maret", "Janji dokter gigi 15 Maret", "Pemesanan dokter gigi untuk 15 Maret"). Top-k diisi dengan pengulangan. Makalah ini menyebutnya sebagai "keruntuhan menjadi satu wilayah padat". Kesamaan gagal memisahkan apa yang *dibutuhkan* dari apa yang sekadar *serupa*.
2. **Pemangkasan memutus rantai bukti.** Anda bertanya "Apakah kita telah menyelesaikan sengketa faktur?" Jawabannya bergantung pada rangkaian: "Faktur #123 telah disengketakan", lalu "Kami menyetujui pengembalian dana sebagian", lalu "Membayar jumlah yang disepakati". Pemangkasan post-hoc mungkin mempertahankan "Faktur berbayar #123" dan menghilangkan putaran sebelumnya. Model kemudian menjawab “Ya, terselesaikan” tanpa mengetahui adanya perselisihan. Pemangkasan fragmen menghubungkan bukti secara sementara dan menghasilkan jawaban yang salah.
3. **Kesamaan mengabaikan struktur.** Anda bertanya "Apa status perjalanan ke Barcelona?" Anda memerlukan proyek, tugas (misalnya memesan penerbangan), dan hasilnya. Kesamaan mengembalikan potongan yang menyebutkan "Barcelona" atau "perjalanan": mungkin penyebutan acak, perjalanan sebelumnya, tugas dari proyek berbeda. Anda memerlukan jalur struktural (proyek ini, tugas-tugas ini, hasil-hasil ini). Kesamaan tidak menyandikan hal itu. Struktur tidak.

## Struktur melebihi kesamaan

Pendekatan yang lebih baik adalah dengan menggunakan struktur untuk mengarahkan apa yang dimuat, bukan kesamaan. Ketik entitas (tugas, kontak, transaksi, peristiwa) dan ambil berdasarkan skema, ID entitas, hubungan, dan garis waktu. Jaga observasi dan keluaran turunan sebagai satuan utuh; jangan memangkas di dalam blok bukti. Masukan yang sama dan skema yang sama menghasilkan keluaran yang sama. Tidak ada LLM di jalur kritis.

## Apa yang ditunjukkan makalah ini

Sistem makalah (xMemory) membangun hierarki empat tingkat (pesan, episode, semantik, hingga tema) dengan penyematan dan ringkasan LLM. Ini mengalahkan lima sistem lainnya (Naive RAG[^1], A-Mem[^2], MemoryOS[^3], LightMem[^4], Nemori[^5]) di LoCoMo dan PerLTQA, kumpulan data benchmark untuk memori percakapan panjang dan jawaban pertanyaan pribadi jangka panjang. Makalah ini tidak memerlukan penyematan atau LLM; itu membutuhkan struktur. Anda bisa mencapainya dengan hierarki yang dipelajari (xMemory) atau dengan desain yang mengutamakan skema dan deterministik. Makalah ini juga mendokumentasikan kerapuhan dalam struktur yang dihasilkan LLM (A-Mem, MemoryOS): penyimpangan format, pembaruan yang gagal. Struktur yang deterministik dan mengutamakan skema adalah dasar yang lebih andal.

## xMemori vs Neotoma

Neotoma adalah [lapisan memori terstruktur](/posts/truth-layer-agent-memory) yang saya buat: skema pertama, deterministik, dibuat untuk asal dan pemutaran ulang. Kedua sistem ini melampaui RAG; mereka berbeda dalam cara mereka membangun struktur.

**xMemory** membangun hierarki empat tingkat (pesan, episode, semantik, hingga tema) dengan penyematan dan ringkasan LLM. Episode adalah blok yang bersebelahan; semantik adalah fakta yang dapat digunakan kembali; semantik grup tema untuk akses tingkat tinggi. Tujuan ketersebaran-semantik menyeimbangkan ukuran tema. Terlalu besar menyebabkan pengambilan yang berlebihan; bukti fragmen yang terlalu kecil. Pengambilan dilakukan dari atas ke bawah: pilih serangkaian tema dan semantik yang ringkas, lalu perluas ke episode utuh (dan pesan opsional) hanya jika hal itu mengurangi ketidakpastian model pembaca. Tidak ada pemangkasan di dalam unit. Pada tolok ukur tersebut, ia mengalahkan lima standar kualitas dan penggunaan token. Makalah ini mencatat bahwa struktur yang dihasilkan LLM (misalnya di A-Mem, MemoryOS) rapuh: penyimpangan format, pembaruan yang gagal. Karena xMemory membangun hierarkinya dengan ringkasan LLM, ia mengadopsi kerapuhan yang sama.

**Neotoma** membangun struktur tanpa LLM di jalur kritis. Entitas diketik; hubungan dan jadwalnya jelas; pengambilan menggunakan skema, ID entitas, hubungan, dan rentang waktu. Input dan skema yang sama menghasilkan output yang sama. Skema masih berkembang. Bidang yang tidak diketahui mendarat di lapisan pelestarian. Pipeline deterministik dapat mendorong bidang berkeyakinan tinggi ke skema. LLM dapat menyarankan bidang atau jenis baru sebagai rekomendasi yang tertunda, hanya diterapkan melalui peralatan atau persetujuan manusia. Inferensi tetap bersifat nasihat: perubahan skema melalui peralatan atau persetujuan manusia; ekstraksi dan reduksi tetap bersifat deterministik; skema tetap menjadi sumber kebenaran. Kritik makalah ini berlaku ketika model *mendorong* struktur, bukan ketika model tersebut menyarankan dan digunakan oleh manusia atau peralatan. Penyerapan untuk diambil tetap bersifat deterministik.

### Perbandingan

| | xMemori | Neotoma |
|--|--------|--------|
| Sumber struktur | Penyematan + ringkasan LLM (episode, semantik, tema) | Ekstraksi dan reduksi deterministik yang mengutamakan skema |
| Hierarki | Empat tingkat (pesan, episode, semantik, tema), dipandu oleh tujuan ketersebaran-semantik | Entitas, hubungan, garis waktu yang diketik (tidak ada "level" tetap) |
| Pengambilan | Top-down: pemilihan representatif pada grafik, kemudian perluasan ketidakpastian ke episode/pesan utuh | Berdasarkan skema, ID entitas, hubungan, garis waktu |
| Kontrol redundansi | Pemilihan perwakilan + diperluas hanya ketika ketidakpastian turun | Kueri struktural mengembalikan apa yang Anda minta; tidak ada kesamaan yang runtuh |
| Satuan utuh | Ya (tidak ada pemangkasan di dalam episode/pesan) | Ya (pengamatan dan entitas tetap utuh) |
| determinisme | Tidak (struktur yang dihasilkan LLM bervariasi) | Ya (masukan yang sama, skema yang sama, keluaran yang sama) |
| Kerapuhan | Makalah mengutip penyimpangan format LLM, pembaruan yang gagal dalam sistem serupa | Skema dan kode bersifat eksplisit; tidak ada LLM di jalur kritis |

### Keuntungan relatif

**xMemory** unggul jika masukannya berupa aliran percakapan dan Anda menginginkan struktur tanpa menentukan skema. Contoh: obrolan jangka panjang dengan asisten saat Anda bertanya "apa yang kita putuskan tentang perjalanan ini?" atau "kapan terakhir kali saya menyebutkan anggarannya?" xMemory membangun episode, semantik, dan tema; pengambilan adalah token-efisien. Ini juga cocok dengan prototipe cepat (tiket dukungan, catatan rapat) di mana Anda belum ingin membuat skema. Anda menerima penyimpangan hierarki dan tidak memerlukan kemampuan audit atau kueri kelas satu berdasarkan entitas.

**Neotoma** unggul ketika Anda memerlukan kemampuan penelusuran atau data Anda sudah terstruktur. Contoh: keputusan yang dapat diaudit (pembayaran, perjanjian, hasil tugas) dengan masukan dan skema yang sama harus menghasilkan gambaran yang sama. Perubahan skema dibuat versinya dan diterapkan secara deterministik; tidak ada LLM di jalurnya. Ini juga cocok untuk entitas yang diketik (tugas, kontak, transaksi, peristiwa) dengan hubungan dan garis waktu. Kueri berdasarkan jenis entitas, ID, hubungan, atau rentang waktu. Neotoma memperlakukan mereka sebagai penduduk asli; xMemory akan memerlukan serialisasi ke teks dan kehilangan akses kelas satu.

## Penataan berulang dalam percakapan

Struktur sering muncul dalam dialog: "tambahkan tugas untuk itu", "catat bahwa kita sepakat untuk membayar 500", dan agen bertindak. Kedua sistem menanganinya secara berbeda.

**xMemory:** Percakapan adalah objek utama. Apa yang dilakukan agen (misalnya, "Saya telah membuat tugas untuk dokter gigi") tetap berada dalam aliran pesan dan mengalir ke dalam episode, semantik, dan tema. Anda mendapatkan hierarki yang dipelajari dengan lebih baik tetapi tidak ada grafik entitas terpisah yang dapat dikueri. Struktur hidup di dalam hierarki.

**Neotoma:** Percakapan merupakan salah satu sumber observasi. Saat agen membuat atau memperbarui tugas, kontak, atau transaksi, operasi tersebut menghasilkan observasi dan snapshot entitas. Bidang baru dari dialog dapat dimasukkan ke dalam lapisan pelestarian dan dipromosikan ke skema ketika tingkat kepercayaan tinggi. Dialog dan grafik terstruktur tetap sinkron karena keduanya menulis ke penyimpanan yang sama.

**Pengambilan berbeda.** xMemory mendukung pengambilan semantik melalui hierarki. Pertanyaan bahasa alami ("apa yang kita putuskan tentang dokter gigi?") mengembalikan tema, semantik, atau episode utuh. Itu tidak mendukung pengambilan struktural (tidak ada tipe entitas dengan ID dan hubungan). Hal ini menyebabkan kegagalan yang diharapkan dalam tiga jenis kasus:

- **Bukti tersebar di seluruh belokan.** "Apakah kita sudah menyelesaikan sengketa faktur?" Perselisihan, negosiasi, dan pembayaran dapat berlangsung dalam episode atau tema yang berbeda; pengambilan dapat memunculkan satu atau dua dan melewatkan sisanya, sehingga model menjawab salah atau tidak lengkap.
- **Atur pertanyaan.** "Tugas apa yang harus diselesaikan sebelum hari Jumat?" atau "Tampilkan semua pembayaran untuk menghubungi X." Tidak ada entitas tugas atau transaksi yang perlu difilter; Anda mendapatkan kecocokan semantik (pesan yang menyebutkan "tugas" dan "Jumat" atau "kontak X"), bukan daftar pasti, sehingga hasilnya parsial atau berisik.
- **Relationship traversal.** "Tugas mana di proyek Y yang masih tertunda?" Tanpa grafik tugas proyek, pengambilan akan mengembalikan cuplikan percakapan yang mungkin menghilangkan beberapa tugas atau proyek; Anda tidak dapat menghitung dengan andal berdasarkan hubungan.

Neotoma mendukung keduanya. Anda dapat mengajukan pertanyaan bergaya semantik saat data ada di penyimpanan. Anda juga mendapatkan pengambilan struktural berdasarkan jenis entitas, ID, relasi, dan jangka waktu, sehingga mengatur kueri dan traversal relasi akan mengembalikan hasil kelas satu yang lengkap. Imbalannya adalah Anda memerlukan skema dan penyimpanan yang menerima pengamatan tersebut.

## Struktur melebihi kesamaan, mengutamakan skema daripada kerapuhan

Untuk memori agen, kesamaan teks mentah gagal. Pengambilan harus didorong oleh struktur: bagaimana Anda menguraikan dan mengatur aliran, bukan berapa banyak potongan yang cocok dengan kueri. Makalah ini menunjukkan bahwa hierarki yang dipelajari (xMemory) mengalahkan RAG yang naif dan struktur yang dihasilkan LLM rapuh.

Namun, jalur yang deterministik dan mengutamakan skema memberi Anda keuntungan struktural yang sama tanpa kerapuhan tersebut. Saya sedang membangun [Neotoma](https://github.com/markmhendrickson/neotoma) pada yang terakhir sehingga penyerapan dan pengambilan tetap dapat direproduksi dan skema tetap menjadi sumber kebenaran.

[^1]: **RAG Naif:** menyematkan kenangan, mengambil top-k tetap berdasarkan kesamaan, tanpa hierarki. Tidak ada proyek terpisah; garis dasar yang ditentukan dalam [makalah](https://arxiv.org/abs/2602.02007).
[^2]: **A-Mem:** memori agen untuk agen LLM; Tautan gaya Zettelkasten dan pembaruan berbasis agen ke jaringan memori. [Proyek](https://github.com/agiresearch/A-mem).
[^3]: **MemoryOS:** penyimpanan hierarkis jangka pendek/menengah/panjang dengan modul pembaruan, pengambilan, dan pembuatan untuk agen yang dipersonalisasi. [Proyek](https://github.com/BAI-LAB/MemoryOS).
[^4]: **LightMem:** memori ringan yang terinspirasi oleh tahapan Atkinson-Shiffrin; konsolidasi sadar topik dan pembaruan offline jangka panjang. [Proyek](https://github.com/zjunlp/LightMem).
[^5]: **Nemori:** memori episodik yang mengatur dirinya sendiri dengan segmentasi peristiwa dan kalibrasi prediksi untuk pengetahuan adaptif. [Proyek](https://github.com/nemori-ai/nemori).