Langsung ke konten utama

Pencarian Memori

memory_search menemukan catatan yang relevan dari file memori Anda, bahkan ketika redaksinya berbeda dari teks aslinya. Ini bekerja dengan mengindeks memori menjadi potongan-potongan kecil dan mencarinya menggunakan embedding, kata kunci, atau keduanya.

Mulai cepat

Jika Anda telah mengonfigurasi API key OpenAI, Gemini, Voyage, atau Mistral, pencarian memori akan berfungsi secara otomatis. Untuk menetapkan penyedia secara eksplisit:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai", // atau "gemini", "local", "ollama", dll.
      },
    },
  },
}
Untuk embedding lokal tanpa API key, gunakan provider: "local" (memerlukan node-llama-cpp).

Penyedia yang didukung

PenyediaIDMemerlukan API keyCatatan
OpenAIopenaiYaTerdeteksi otomatis, cepat
GeminigeminiYaMendukung pengindeksan gambar/audio
VoyagevoyageYaTerdeteksi otomatis
MistralmistralYaTerdeteksi otomatis
OllamaollamaTidakLokal, harus ditetapkan secara eksplisit
LocallocalTidakModel GGUF, unduhan ~0,6 GB

Cara kerja pencarian

OpenClaw menjalankan dua jalur retrieval secara paralel dan menggabungkan hasilnya:
  • Pencarian vektor menemukan catatan dengan makna serupa (“gateway host” cocok dengan “mesin yang menjalankan OpenClaw”).
  • Pencarian kata kunci BM25 menemukan kecocokan persis (ID, string error, kunci konfigurasi ).
Jika hanya satu jalur yang tersedia (tidak ada embedding atau tidak ada FTS), jalur lainnya berjalan sendiri.

Meningkatkan kualitas pencarian

Dua fitur opsional membantu saat Anda memiliki riwayat catatan yang besar:

Temporal decay

Catatan lama secara bertahap kehilangan bobot peringkat sehingga informasi terbaru muncul lebih dulu. Dengan half-life default 30 hari, catatan dari bulan lalu diberi skor 50% dari bobot aslinya. File evergreen seperti MEMORY.md tidak pernah mengalami decay.
Aktifkan temporal decay jika agen Anda memiliki catatan harian selama berbulan-bulan dan informasi usang terus mengungguli konteks terbaru.

MMR (keberagaman)

Mengurangi hasil yang redundan. Jika lima catatan semuanya menyebut konfigurasi router yang sama, MMR memastikan hasil teratas mencakup topik yang berbeda, alih-alih berulang.
Aktifkan MMR jika memory_search terus mengembalikan cuplikan yang hampir duplikat dari catatan harian yang berbeda.

Aktifkan keduanya

{
  agents: {
    defaults: {
      memorySearch: {
        query: {
          hybrid: {
            mmr: { enabled: true },
            temporalDecay: { enabled: true },
          },
        },
      },
    },
  },
}

Memori multimodal

Dengan Gemini Embedding 2, Anda dapat mengindeks file gambar dan audio bersama Markdown. Kueri pencarian tetap berupa teks, tetapi cocok dengan konten visual dan audio. Lihat referensi konfigurasi Memori untuk penyiapannya.

Pencarian memori sesi

Anda dapat secara opsional mengindeks transkrip sesi sehingga memory_search dapat mengingat percakapan sebelumnya. Ini bersifat opt-in melalui memorySearch.experimental.sessionMemory. Lihat referensi konfigurasi untuk detailnya.

Pemecahan masalah

Tidak ada hasil? Jalankan openclaw memory status untuk memeriksa indeks. Jika kosong, jalankan openclaw memory index --force. Hanya cocok dengan kata kunci? Penyedia embedding Anda mungkin belum dikonfigurasi. Periksa openclaw memory status --deep. Teks CJK tidak ditemukan? Bangun ulang indeks FTS dengan openclaw memory index --force.

Bacaan lanjutan