Memori Pengguna
Penyimpanan key/value untuk memori pengguna yang berjalan pada setiap permintaan chat di LibreChat
Ikhtisar
User Memory di LibreChat adalah key/value store yang menyimpan informasi spesifik pengguna secara persisten di seluruh percakapan. Agen memori khusus berjalan di awal setiap permintaan obrolan, membaca dari dan menulis ke penyimpanan ini untuk memberikan konteks yang dipersonalisasi ke respons AI utama.
Penyimpanan Key/Value, Bukan Memori Percakapan
Ini bukan memori semantik atas seluruh riwayat percakapan Anda. Fitur ini tidak mengindeks, menyematkan (embed), atau mencari percakapan sebelumnya. Sebaliknya, fitur ini memelihara sekumpulan pasangan kunci/nilai terstruktur (contohnya, user_preferences, learned_facts) yang disuntikkan ke dalam setiap permintaan sebagai konteks. Anggaplah ini sebagai buku catatan persisten yang dibaca AI sebelum memberikan setiap respons.
Untuk konteks mengenai pesan sebelumnya dalam satu percakapan, LibreChat sudah menggunakan jendela riwayat pesan standar — yang terpisah dari fitur ini.
⚠️ Konfigurasi Diperlukan
Fungsionalitas Memory harus dikonfigurasi secara eksplisit di dalam file librechat.yaml Anda agar dapat berfungsi. Fitur ini tidak diaktifkan secara default.
Fitur Utama
- Menjalankan Setiap Permintaan: Agen memori dijalankan pada awal setiap permintaan obrolan, memastikan konteks yang tersimpan selalu tersedia
- Penyimpanan Key/Value: Informasi disimpan sebagai pasangan key/value terstruktur, bukan sebagai log percakapan mentah
- Entri Manual: Pengguna dapat menambah, mengedit, atau menghapus entri memori secara manual secara langsung, memberikan kendali penuh atas apa yang diingat oleh AI.
- Kontrol Pengguna: Saat diaktifkan, pengguna dapat menyalakan/mematikan memori untuk obrolan individu mereka
- Customizable Keys: Batasi kategori informasi apa saja yang dapat disimpan menggunakan
validKeys - Manajemen Token: Tetapkan batas penggunaan memori untuk mengontrol biaya
- Integrasi Agen: Gunakan agen AI untuk mengelola apa yang diingat secara cerdas
Konfigurasi
Untuk mengaktifkan fitur memori, Anda perlu menambahkan konfigurasi memory ke dalam file librechat.yaml Anda:
version: 1.3.5
cache: true
memory:
disabled: false # Set to true to completely disable memory
personalize: true # Gives users the ability to toggle memory on/off, true by default
tokenLimit: 2000 # Maximum tokens for memory storage
maxInputTokens: 12000 # Maximum recent-chat tokens sent to the memory agent
messageWindowSize: 5 # Number of recent messages to consider
agent:
provider: 'openAI'
model: 'gpt-4'Kolom provider harus sesuai dengan nilai yang diterima sebagaimana didefinisikan dalam Panduan Model Spec.
Catatan: Jika Anda menggunakan custom endpoint, nilai endpoint harus sama persis dengan nama custom endpoint yang telah ditentukan.
Lihat Panduan Konfigurasi Memory untuk opsi konfigurasi yang mendetail.
Cara Kerja
Eksekusi Agen Memori
Agen memori berjalan pada setiap permintaan obrolan saat memori diaktifkan. Agen ini dieksekusi secara bersamaan dengan respons obrolan utama — prosesnya dimulai sebelum respons utama dimulai dan dibatasi hingga durasi permintaan utama ditambah hingga 3 detik setelah proses tersebut selesai.
Ini berarti setiap pesan yang Anda kirim memicu agen memori untuk:
Baca penyimpanan kunci/nilai saat ini dan masukkan entri yang relevan sebagai konteks
Analisis jendela pesan terbaru untuk informasi yang layak disimpan atau diperbarui
Tulis entri baru atau yang telah dimodifikasi kembali ke penyimpanan
1. Penyimpanan Key/Value
Entri memori disimpan sebagai pasangan kunci/nilai. Saat memori diaktifkan, sistem dapat menyimpan entri seperti:
- Preferensi pengguna (gaya komunikasi, topik yang diminati)
- Fakta penting yang dibagikan secara eksplisit oleh pengguna
- Proyek atau tugas yang sedang berlangsung yang disebutkan
- Kategori apa pun yang Anda tentukan melalui
validKeys
Pengguna juga dapat membuat, mengedit, dan menghapus entri memori secara manual melalui antarmuka, memberikan kontrol langsung atas apa yang diketahui AI tentang mereka.
2. Context Window
Parameter messageWindowSize menentukan berapa banyak pesan terbaru yang dianalisis untuk pembaruan memori. Hal ini membantu agen memori memutuskan informasi apa yang layak disimpan atau diperbarui di dalam penyimpanan kunci/nilai (key/value store).
Parameter maxInputTokens membatasi teks obrolan terkini yang dikirim ke agen memori otomatis sebelum ekstraksi. Jika jendela pesan yang dipilih masih terlalu besar, LibreChat akan mempertahankan konteks terbaru dan menghilangkan konten obrolan sebelumnya sebelum memanggil agen memori.
3. Kontrol Pengguna
Ketika personalize diatur ke true:
- Pengguna melihat tombol memori di antarmuka obrolan mereka
- Mereka dapat mengaktifkan/menonaktifkan memori untuk percakapan individu
- Pengaturan Memory tetap ada di seluruh sesi
4. Valid Keys
Anda dapat membatasi kategori informasi apa yang disimpan dengan menentukan validKeys:
memory:
validKeys:
- 'user_preferences'
- 'conversation_context'
- 'learned_facts'
- 'personal_information'Praktik Terbaik
1. Batas Token
Tetapkan batas token yang sesuai untuk menyeimbangkan fungsionalitas dengan biaya:
- Batas yang lebih tinggi memungkinkan memori yang lebih komprehensif
- Batas bawah mengurangi biaya pemrosesan
- Pertimbangkan pola penggunaan dan anggaran Anda
2. Custom Instructions
Saat menggunakan validKeys, berikan instruksi khusus kepada agen memori:
memory:
agent:
provider: 'openAI'
model: 'gpt-4'
instructions: |
Store information only in the specified validKeys categories.
Focus on explicitly stated preferences and important facts.
Delete outdated or corrected information promptly.3. Pertimbangan Privasi
- Memory menyimpan informasi pengguna di seluruh percakapan
- Pastikan pengguna memahami informasi apa yang sedang disimpan
- Pertimbangkan untuk menerapkan kebijakan retensi data
- Sediakan dokumentasi yang jelas mengenai penggunaan memori
Contoh
Konfigurasi Dasar
Aktifkan memory dengan pengaturan default:
memory:
tokenLimit: 2000
maxInputTokens: 12000
agent:
provider: 'openAI'
model: 'gpt-4.1-mini'Konfigurasi Lanjutan
Konfigurasi lengkap dengan semua opsi:
memory:
disabled: false
validKeys: ['preferences', 'context', 'facts']
tokenLimit: 3000
maxInputTokens: 12000
personalize: true
messageWindowSize: 10
agent:
provider: 'anthropic'
model: 'claude-3-opus-20240229'
instructions: 'Remember only explicitly stated preferences and key facts.'
model_parameters:
temperature: 0.3Untuk parameter model yang valid per penyedia, lihat Model Spec Preset Fields.
Menggunakan Agen yang Telah Ditentukan (Predefined Agents)
Referensi agen yang sudah ada berdasarkan ID:
memory:
agent:
id: 'memory-specialist-001'Custom Endpoints dengan Memory
Memory sepenuhnya mendukung endpoint kustom, termasuk yang menggunakan header kustom dan variabel lingkungan. Saat menggunakan endpoint kustom, placeholder header dan variabel lingkungan akan diselesaikan dengan benar selama pemrosesan memory.
endpoints:
custom:
- name: 'Custom Memory Endpoint'
apiKey: 'dummy'
baseURL: 'https://api.gateway.ai/v1'
headers:
x-gateway-api-key: '${GATEWAY_API_KEY}'
x-gateway-virtual-key: '${GATEWAY_OPENAI_VIRTUAL_KEY}'
X-User-Identifier: '{{LIBRECHAT_USER_EMAIL}}'
X-Application-Identifier: 'LibreChat - Test'
api-key: '${TEST_CUSTOM_API_KEY}'
models:
default:
- 'gpt-4o-mini'
- 'gpt-4o'
fetch: false
memory:
disabled: false
tokenLimit: 3000
maxInputTokens: 12000
personalize: true
messageWindowSize: 10
agent:
provider: 'Custom Memory Endpoint'
model: 'gpt-4o-mini'- Semua custom endpoint headers didukung
Pemecahan Masalah
Memori Tidak Berfungsi
- Verifikasi bahwa memory telah dikonfigurasi di
librechat.yaml - Pastikan
disableddiatur kefalse - Pastikan agen/model yang dikonfigurasi tersedia
- Pastikan pengguna telah mengaktifkan memory di antarmuka obrolan mereka
- Untuk endpoint kustom: pastikan nama
providersama persis dengannameendpoint kustom tersebut
Penggunaan Token Tinggi
- Kurangi
tokenLimituntuk mengontrol biaya - Kurangi
maxInputTokensuntuk membatasi seberapa banyak chat terbaru yang dikirim ke agen memori - Kurangi
messageWindowSizeuntuk menganalisis lebih sedikit pesan - Gunakan
validKeysuntuk membatasi apa yang disimpan - Tinjau dan optimalkan instruksi agen
Memori Tidak Konsisten
- Periksa apakah pengguna mengaktifkan/menonaktifkan memory
- Pastikan batas token tidak terlampaui
- Pastikan konfigurasi agen konsisten
- Tinjau memori yang tersimpan untuk melihat adanya konflik
Masalah Autentikasi Custom Endpoint
- Pastikan variabel lingkungan telah diatur dengan benar di dalam file
.envAnda - Pastikan header kustom menggunakan sintaks yang benar (
${ENV_VAR}untuk variabel lingkungan,{{LIBRECHAT_USER_*}}untuk placeholder pengguna) - Pastikan endpoint kustom berfungsi untuk penyelesaian chat reguler sebelum melakukan pengujian dengan memory
- Tinjau log server untuk kesalahan autentikasi dari API endpoint kustom
Peningkatan di Masa Mendatang
Implementasi saat ini menjalankan memory agent pada setiap permintaan obrolan tanpa syarat. Peningkatan yang direncanakan meliputi:
- Pemicu Semantik untuk Penulisan: Mendeteksi kapan pengguna secara eksplisit meminta model untuk mengingat sesuatu (contoh: "Ingat bahwa saya lebih suka Python") dan hanya menjalankan agen penulisan memori dalam kasus tersebut, sehingga mengurangi pemrosesan yang tidak perlu pada pesan rutin.
- Vector Similarity Recall: Alih-alih menyisipkan semua entri memori yang tersimpan ke dalam setiap permintaan, gunakan penyematan vektor (vector embeddings) untuk mengambil hanya entri yang paling relevan dengan konteks percakapan saat ini, sehingga meningkatkan efisiensi dan relevansi.
Fitur Terkait
- Agents - Membangun asisten AI kustom
- Presets - Simpan pengaturan percakapan
- Fork Messages - Cabangkan percakapan sambil tetap mempertahankan konteks
Bagaimana panduan ini?
Pencarian Pesan
Cari percakapan terdahulu dengan cepat menggunakan Meilisearch yang terintegrasi di LibreChat
API RAG (Obrolan dengan File)
API Retrieval-Augmented Generation (RAG) untuk pengindeksan dan pengambilan dokumen menggunakan Langchain dan FastAPI. API ini terintegrasi dengan LibreChat untuk memberikan respons berbasis konteks berdasarkan file yang diunggah pengguna.