Menyusun memori mengikut jenis mengurangkan token yang diambil sebanyak kira-kira 40%.

Mengapa stor memori rata gagal berfungsi

Kebanyakan tutorial pemula mengajar ejen LLM untuk “mengingat” dengan menambah setiap maklumat baharu ke dalam satu senarai tunggal dan menghantar semula senarai tersebut kepada model pada setiap pusingan. Kodnya secara harfiah hanya sepanjang tiga baris, dan ia menghasilkan demo yang berfungsi. Dalam praktiknya, senarai tersebut berkembang tanpa kawalan. Dua simptom muncul:

  • Ejen menganggap data lapuk sebagai masih benar, contohnya memberikan ETA yang telah tamat tempoh beberapa jam yang lalu.
  • Tetingkap konteks (context window) dipenuhi dengan trivia yang tidak pernah mempengaruhi jawapan, sekali gus meningkatkan kos API dan melambatkan masa tindak balas.

Stor vektor biasa atau cache kunci-nilai (key-value cache) yang ringkas tidak dapat membezakan jawatan pengguna daripada status projek sementara. Apabila ejen menjalankan carian semantik, algoritma keserupaan mungkin memaparkan ETA lama hanya kerana pertanyaan mengandungi perkataan yang sama, walaupun data tersebut tidak lagi relevan.

Memori berstruktur: empat kategori, satu tujuan

Penyelesaiannya adalah dengan berhenti menganggap memori sebagai satu monolit dan mula mengelaskan setiap entri ke dalam salah satu daripada empat kategori:

  • Fakta pengguna – atribut stabil seperti peranan pengguna, bahasa pilihan, atau pelepasan keselamatan. Ini jarang berubah dan boleh disimpan dalam cache untuk keseluruhan sesi.
  • Maklum balas – peraturan eksplisit yang mesti dipatuhi oleh ejen, contohnya, “jangan sesekali dedahkan kata laluan pangkalan data” atau “elakkan jenaka dalam pertanyaan pematuhan.” Oleh kerana ia mengawal tingkah laku, ia sepatutnya berada dalam system prompt dan bukannya dalam kumpulan yang boleh dicari.
  • Keadaan projek – data yang bergerak pantas seperti ETA semasa, kemajuan tugasan, atau token sementara. Kategori ini memerlukan semakan tamat tempoh; sebaik sahaja cap masa jatuh di luar tetingkap yang ditetapkan, entri tersebut harus dihapuskan.
  • Rujukan – penunjuk ke perkhidmatan luaran, ID dokumen, atau titik akhir (endpoint) API. Ia bukan kandungan untuk dipaparkan tetapi laluan untuk mengambil data segar apabila diperlukan.

Mem0 membolehkan pembangun menyertakan metadata rawak pada setiap rekod memori. Dengan mengindeks pada medan “kind”, satu pertanyaan boleh menapis kategori yang relevan terlebih dahulu sebelum LLM memutuskan cara menggunakan hasil tersebut.

Pengambilan dua langkah dengan Mem0

  1. Ambil memori mengikut jenis – Satu pertanyaan penapis ringkas meminta Mem0 untuk “semua maklum balas” atau “entri keadaan-projek yang lebih baharu daripada selang masa yang singkat.” Set hasil tersebut sudah pun diringkaskan kepada kategori yang sesuai.
  2. Biarkan LLM memutuskan – Petikan yang telah ditapis dimasukkan ke dalam prompt bersama dengan soalan semasa pengguna. Model kini boleh membuat penaakulan mengenainya tanpa perlu menyaring fakta yang tidak relevan.

Ilustrasi konkrit: daripada menunggu padanan semantik untuk memaparkan peraturan “jangan mengejek pangkalan data,” pembangun menyuntik peraturan tersebut secara terus ke dalam system prompt pada permulaan sesi dan menyimpannya dalam cache untuk keseluruhan interaksi. Walaupun pertanyaan pengguna tidak mengandungi rujukan eksplisit kepada pangkalan data, model sudah pun mengetahui kekangan tersebut.

Trik praktikal untuk mengekalkan kos yang rendah

  • Simpan peraturan maklum balas dalam cache – Simpan set peraturan sekali bagi setiap sesi dan gunakannya semula daripada melakukan carian semula pada setiap pusingan. Ini mengurangkan penggunaan token bagi setiap pusingan.
  • Langkau carian keadaan-projek apabila tidak relevan – Jika pengguna bertanya soalan konseptual semata-mata (“Apakah perbezaan antara pembelajaran terbimbing dan pembelajaran pengukuhan?”), tidak perlu mengambil sebarang data ETA atau kemajuan tugasan.

Dengan mengamalkan dua tabiat ini, penggunaan token boleh dikurangkan sebanyak kira-kira 40% berbanding pendekatan memori rata yang naif. Penjimatan ini diterjemahkan secara langsung kepada bil API yang lebih rendah dan pusingan kerja yang lebih pantas, terutamanya untuk ejen yang kekal aktif untuk banyak pertukaran maklumat.

Siapa yang mendapat manfaat, siapa yang bimbang

Pemenang – Pasukan yang membina bot sokongan pelanggan, pembantu aliran kerja dalaman, atau mana-mana antara muka LLM pelbagai pusingan. Mereka mendapat jawapan yang lebih dipercayai, mengelakkan kesilapan memalukan yang disebabkan oleh data lapuk, dan memanjangkan bajet mereka.

Kesimpulan

Jika anda mahukan ejen LLM yang kekal tajam sepanjang sesi yang panjang, berhenti memasukkan setiap fakta ke dalam satu tetingkap konteks tunggal. Tandakan setiap memori sebagai fakta pengguna, maklum balas, keadaan projek, atau rujukan, laksanakan tamat tempoh jika perlu, dan biarkan alat seperti Mem0 melakukan kerja berat tersebut. Hasilnya ialah jawapan yang lebih segar, kurang token yang tersasar, dan pengurangan ketara dalam kos operasi.