Langsung ke konten utama

Pencarian Memori

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

Mulai cepat

Jika Anda memiliki langganan GitHub Copilot, kunci API OpenAI, Gemini, Voyage, atau Mistral yang dikonfigurasi, 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 kunci API, gunakan provider: "local" (memerlukan node-llama-cpp).

Penyedia yang didukung

PenyediaIDPerlu kunci APICatatan
BedrockbedrockTidakTerdeteksi otomatis ketika rantai kredensial AWS terselesaikan
GeminigeminiYaMendukung pengindeksan gambar/audio
GitHub Copilotgithub-copilotTidakTerdeteksi otomatis, menggunakan langganan Copilot
LocallocalTidakModel GGUF, unduhan ~0.6 GB
MistralmistralYaTerdeteksi otomatis
OllamaollamaTidakLokal, harus ditetapkan secara eksplisit
OpenAIopenaiYaTerdeteksi otomatis, cepat
VoyagevoyageYaTerdeteksi otomatis

Cara kerja pencarian

OpenClaw menjalankan dua jalur pengambilan secara paralel dan menggabungkan hasilnya:
  • Pencarian vektor menemukan catatan dengan makna yang serupa (“gateway host” cocok dengan “mesin yang menjalankan OpenClaw”).
  • Pencarian kata kunci BM25 menemukan kecocokan yang persis (ID, string error, kunci konfigurasi).
Jika hanya satu jalur yang tersedia (tanpa embedding atau tanpa FTS), jalur lainnya berjalan sendiri. Ketika embedding tidak tersedia, OpenClaw tetap menggunakan pemeringkatan leksikal atas hasil FTS alih-alih hanya kembali ke pengurutan kecocokan persis mentah. Mode degradasi itu meningkatkan potongan dengan cakupan istilah kueri yang lebih kuat dan jalur file yang relevan, sehingga recall tetap berguna bahkan tanpa sqlite-vec atau penyedia embedding.

Meningkatkan kualitas pencarian

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

Temporal decay

Catatan lama secara bertahap kehilangan bobot pemeringkatan sehingga informasi terbaru muncul lebih dulu. Dengan half-life bawaan 30 hari, catatan dari bulan lalu mendapat 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 berada di atas konteks yang lebih baru.

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 akan cocok dengan konten visual dan audio. Lihat referensi konfigurasi Memory untuk penyiapan.

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 detail.

Pemecahan masalah

Tidak ada hasil? Jalankan openclaw memory status untuk memeriksa indeks. Jika kosong, jalankan openclaw memory index --force. Hanya kecocokan 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