Menyusun memori berdasarkan tipe memangkas token yang diambil sekitar 40%.
Mengapa penyimpanan memori datar (flat) tidak efektif
Sebagian besar tutorial pemula mengajarkan agen LLM untuk “mengingat” dengan menambahkan setiap informasi baru ke dalam satu daftar tunggal dan memberikan daftar tersebut kembali ke model di setiap giliran. Kodenya hanya terdiri dari tiga baris, dan ini menghasilkan demo yang berfungsi. Dalam praktiknya, daftar tersebut tumbuh tanpa kendali. Dua gejala muncul:
- Agen menganggap data usang sebagai data yang masih benar, misalnya memberikan ETA yang sudah kedaluwarsa beberapa jam yang lalu.
- Jendela konteks (context window) penuh dengan trivia yang tidak pernah memengaruhi jawaban, sehingga membengkakkan biaya API dan memperlambat waktu respons.
Vector store biasa atau cache key-value sederhana tidak dapat membedakan jabatan pengguna dari status proyek sementara. Saat agen menjalankan pencarian semantik, algoritma kemiripan mungkin memunculkan ETA lama hanya karena kueri mengandung kata-kata yang sama, meskipun data tersebut tidak lagi relevan.
Memori terstruktur: empat kategori, satu tujuan
Solusinya adalah berhenti memperlakukan memori sebagai satu kesatuan (monolith) dan mulai mengklasifikasikan setiap entri ke dalam salah satu dari empat kategori:
- Fakta pengguna – atribut stabil seperti peran pengguna, bahasa yang disukai, atau izin keamanan. Hal ini jarang berubah dan dapat disimpan dalam cache selama seluruh sesi.
- Umpan balik (Feedback) – aturan eksplisit yang harus dipatuhi agen, misalnya, “jangan pernah membocorkan kata sandi database” atau “hindari humor dalam kueri kepatuhan.” Karena aturan ini mengatur perilaku, mereka seharusnya berada di dalam system prompt daripada di dalam kumpulan data yang dapat dicari.
- Status proyek – data yang bergerak cepat seperti ETA saat ini, progres tugas, atau token sementara. Kategori ini memerlukan pemeriksaan kedaluwarsa; setelah timestamp berada di luar jendela yang ditentukan, entri tersebut harus dihapus.
- Referensi – penunjuk ke layanan eksternal, ID dokumen, atau endpoint API. Ini bukan konten untuk ditampilkan, melainkan rute untuk mengambil data terbaru saat dibutuhkan.
Mem0 memungkinkan pengembang untuk menyematkan metadata apa pun ke setiap catatan memori. Dengan melakukan pengindeksan pada kolom “kind”, sebuah kueri dapat menyaring kategori yang relevan terlebih dahulu sebelum LLM memutuskan cara menggunakan hasilnya.
Pengambilan dua langkah dengan Mem0
- Ambil memori berdasarkan jenis (kind) – Sebuah kueri filter singkat meminta Mem0 untuk “semua umpan balik” atau “entri status proyek yang lebih baru dari interval singkat.” Set hasil sudah terpotong ke kategori yang sesuai.
- Biarkan LLM memutuskan – Cuplikan yang telah difilter dimasukkan ke dalam prompt bersama dengan pertanyaan pengguna saat ini. Model sekarang dapat menalar hal tersebut tanpa harus menyaring fakta-fakta yang tidak relevan.
Ilustrasi konkret: alih-alih menunggu kecocokan semantik untuk memunculkan aturan “jangan mengejek database,” pengembang menyuntikkan aturan tersebut secara langsung ke dalam system prompt saat sesi dimulai dan menyimpannya dalam cache untuk seluruh interaksi. Bahkan jika kueri pengguna tidak mengandung referensi eksplisit ke database, model sudah mengetahui batasan tersebut.
Trik praktis untuk menekan biaya
- Simpan aturan umpan balik dalam cache – Simpan kumpulan aturan sekali per sesi dan gunakan kembali daripada melakukan pencarian ulang di setiap giliran. Ini mengurangi penggunaan token di setiap putaran.
- Lewati pencarian status proyek jika tidak relevan – Jika pengguna mengajukan pertanyaan yang murni konseptual (“Apa perbedaan antara supervised dan reinforcement learning?”), tidak perlu mengambil data ETA atau progres tugas apa pun.
Dengan menerapkan dua kebiasaan ini, penggunaan token dapat dikurangi sekitar 40% dibandingkan dengan pendekatan memori datar yang naif. Penghematan ini langsung berdampak pada tagihan API yang lebih rendah dan waktu penyelesaian yang lebih cepat, terutama untuk agen yang tetap aktif selama banyak pertukaran pesan.
Siapa yang diuntungkan, siapa yang khawatir
Pemenang – Tim yang membangun bot dukungan pelanggan, asisten alur kerja internal, atau antarmuka LLM multi-turn apa pun. Mereka mendapatkan jawaban yang lebih andal, menghindari kesalahan memalukan yang disebabkan oleh data usang, dan dapat mengoptimalkan anggaran mereka lebih jauh.
Kesimpulan
Jika Anda menginginkan agen LLM yang tetap tajam selama sesi yang panjang, berhentilah memasukkan setiap fakta ke dalam satu jendela konteks tunggal. Tandai setiap memori sebagai fakta pengguna, umpan balik, status proyek, atau referensi, terapkan masa kedaluwarsa jika diperlukan, dan biarkan alat seperti Mem0 melakukan pekerjaan beratnya. Hasilnya adalah jawaban yang lebih segar, lebih sedikit token yang terbuang, dan pemotongan biaya operasional yang nyata.