Langsung ke konten utama
Mesin bawaan adalah backend memori default. Mesin ini menyimpan indeks memori Anda di database SQLite per agen dan tidak memerlukan dependensi tambahan untuk memulai.

Yang disediakan

  • Pencarian kata kunci melalui pengindeksan teks lengkap FTS5 (penskoran BM25).
  • Pencarian vektor melalui embedding dari penyedia mana pun yang didukung.
  • Pencarian hibrida yang menggabungkan keduanya untuk hasil terbaik.
  • Dukungan CJK melalui tokenisasi trigram untuk bahasa Mandarin, Jepang, dan Korea.
  • Akselerasi sqlite-vec untuk kueri vektor di dalam database (opsional).

Memulai

Secara default, mesin bawaan menggunakan embedding OpenAI. Jika Anda sudah mengonfigurasi OPENAI_API_KEY atau models.providers.openai.apiKey, pencarian vektor berfungsi tanpa konfigurasi memori tambahan. Untuk menetapkan penyedia secara eksplisit:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
      },
    },
  },
}
Tanpa penyedia embedding, hanya pencarian kata kunci yang tersedia. Untuk memaksa embedding GGUF lokal, instal plugin penyedia llama.cpp resmi, lalu arahkan local.modelPath ke file GGUF:
openclaw plugins install @openclaw/llama-cpp-provider
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "local",
        fallback: "none",
        local: {
          modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf",
        },
      },
    },
  },
}

Penyedia embedding yang didukung

PenyediaIDCatatan
BedrockbedrockMenggunakan rantai kredensial AWS
DeepInfradeepinfraDefault: BAAI/bge-m3
GeminigeminiMendukung multimodal (gambar + audio)
GitHub Copilotgithub-copilotMenggunakan langganan Copilot
Lokallocal@openclaw/llama-cpp-provider
Mistralmistral
OllamaollamaLokal/dihosting sendiri
OpenAIopenaiDefault: text-embedding-3-small
Kompatibel OpenAIopenai-compatibleEndpoint generik /v1/embeddings
Voyagevoyage
Tetapkan memorySearch.provider untuk beralih dari OpenAI.

Cara kerja pengindeksan

OpenClaw mengindeks MEMORY.md dan memory/*.md menjadi potongan (~400 token dengan tumpang tindih 80 token) dan menyimpannya di database SQLite per agen.
  • Lokasi indeks: database agen pemilik di ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite
  • Pemeliharaan penyimpanan: sidecar WAL SQLite dibatasi dengan checkpoint berkala dan saat penonaktifan.
  • Pemantauan file: perubahan pada file memori memicu pengindeksan ulang yang di-debounce (1,5 dtk).
  • Pengindeksan ulang otomatis: saat penyedia embedding, model, atau konfigurasi pemotongan berubah, seluruh indeks dibangun ulang secara otomatis.
  • Pengindeksan ulang sesuai permintaan: openclaw memory index --force
Anda juga dapat mengindeks file Markdown di luar workspace dengan memorySearch.extraPaths. Lihat referensi konfigurasi.

Kapan digunakan

Mesin bawaan adalah pilihan yang tepat untuk sebagian besar pengguna:
  • Berfungsi langsung tanpa dependensi tambahan.
  • Menangani pencarian kata kunci dan vektor dengan baik.
  • Mendukung semua penyedia embedding.
  • Pencarian hibrida menggabungkan yang terbaik dari kedua pendekatan pengambilan.
Pertimbangkan untuk beralih ke QMD jika Anda memerlukan reranking, perluasan kueri, atau ingin mengindeks direktori di luar workspace. Pertimbangkan Honcho jika Anda menginginkan memori lintas sesi dengan pemodelan pengguna otomatis.

Pemecahan masalah

Pencarian memori dinonaktifkan? Periksa openclaw memory status. Jika tidak ada penyedia yang terdeteksi, tetapkan satu secara eksplisit atau tambahkan kunci API. Penyedia lokal tidak terdeteksi? Pastikan path lokal ada dan jalankan:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
Baik perintah CLI mandiri maupun Gateway menggunakan id penyedia local yang sama. Tetapkan memorySearch.provider: "local" saat Anda menginginkan embedding lokal. Hasil usang? Jalankan openclaw memory index --force untuk membangun ulang. Pemantau mungkin melewatkan perubahan dalam kasus edge yang jarang terjadi. sqlite-vec tidak dimuat? OpenClaw secara otomatis fallback ke kemiripan kosinus dalam proses. openclaw memory status --deep melaporkan penyimpanan vektor lokal secara terpisah dari penyedia embedding, jadi Vector store: unavailable menunjuk ke pemuatan sqlite-vec, sedangkan Embeddings: unavailable menunjuk ke kesiapan penyedia/autentikasi atau model. Periksa log untuk galat pemuatan spesifik.

Konfigurasi

Untuk penyiapan penyedia embedding, penyetelan pencarian hibrida (bobot, MMR, peluruhan temporal), pengindeksan batch, memori multimodal, sqlite-vec, path tambahan, dan semua kenop konfigurasi lainnya, lihat referensi konfigurasi Memori.

Terkait