Sessions and memory
Bellek araması
memory_search, ifade özgün metinden farklı olsa bile bellek dosyalarınızdan ilgili notları bulur. Bunu belleği küçük parçalara indeksleyerek ve bunları gömmeler, anahtar sözcükler veya her ikisiyle arayarak yapar.
Hızlı başlangıç
Bellek araması varsayılan olarak OpenAI gömmelerini kullanır. Başka bir gömme arka ucu kullanmak için açıkça bir sağlayıcı ayarlayın:
{ agents: { defaults: { memorySearch: { provider: "openai", // or "gemini", "local", "ollama", "openai-compatible", etc. }, }, },}Belleğe özel sağlayıcıları olan çok uç noktalı kurulumlarda, provider ayrıca söz konusu sağlayıcı api: "ollama" veya başka bir bellek gömme adaptörü sahibi ayarladığında ollama-5080 gibi özel bir models.providers.<id> girdisi olabilir.
API anahtarı gerektirmeyen yerel gömmeler için @openclaw/llama-cpp-provider kurun ve provider: "local" ayarlayın. Kaynak checkout'ları yine de yerel derleme onayı gerektirebilir: pnpm approve-builds, ardından pnpm rebuild node-llama-cpp.
Bazı OpenAI uyumlu gömme uç noktaları, aramalar için input_type: "query" ve indekslenen parçalar için input_type: "document" veya "passage" gibi asimetrik etiketler gerektirir. Bunları memorySearch.queryInputType ve memorySearch.documentInputType ile yapılandırın; Bellek yapılandırma başvurusu sayfasına bakın.
Desteklenen sağlayıcılar
| Sağlayıcı | ID | API anahtarı gerekir | Notlar |
|---|---|---|---|
| Bedrock | bedrock |
Hayır | AWS kimlik bilgisi zincirini kullanır |
| DeepInfra | deepinfra |
Evet | Varsayılan: BAAI/bge-m3 |
| Gemini | gemini |
Evet | Görsel/ses indekslemeyi destekler |
| GitHub Copilot | github-copilot |
Hayır | Copilot aboneliğini kullanır |
| Local | local |
Hayır | GGUF modeli, ~0.6 GB indirme |
| Mistral | mistral |
Evet | |
| Ollama | ollama |
Hayır | Yerel/kendi barındırdığınız |
| OpenAI | openai |
Evet | Varsayılan |
| OpenAI-compatible | openai-compatible |
Genellikle | Genel /v1/embeddings |
| Voyage | voyage |
Evet |
Arama nasıl çalışır
OpenClaw iki alma yolunu paralel çalıştırır ve sonuçları birleştirir:
flowchart LR
Q["Query"] --> E["Embedding"]
Q --> T["Tokenize"]
E --> VS["Vector Search"]
T --> BM["BM25 Search"]
VS --> M["Weighted Merge"]
BM --> M
M --> R["Top Results"]- Vektör araması, benzer anlama sahip notları bulur ("gateway host", "OpenClaw çalıştıran makine" ile eşleşir).
- BM25 anahtar sözcük araması, tam eşleşmeleri bulur (ID'ler, hata dizeleri, yapılandırma anahtarları).
Yalnızca bir yol kullanılabiliyorsa diğeri tek başına çalışır. Bilerek kullanılan yalnızca FTS modu (provider: "none") ve otomatik/varsayılan sağlayıcı seçimi, gömmeler kullanılamadığında yine de sözcüksel sıralamayı kullanabilir.
Açıkça ayarlanmış yerel olmayan gömme sağlayıcıları farklıdır. memorySearch.provider değerini somut bir uzak destekli sağlayıcıya ayarlarsanız ve bu sağlayıcı çalışma zamanında kullanılamazsa, memory_search sessizce yalnızca FTS sonuçlarını kullanmak yerine belleği kullanılamaz olarak bildirir. Bu, bozuk yapılandırılmış semantik sağlayıcıyı görünür tutar. Bilerek yalnızca FTS geri çağırma için provider: "none" ayarlayın veya semantik sıralamayı geri yüklemek için sağlayıcı/kimlik doğrulama yapılandırmasını düzeltin.
Arama kalitesini iyileştirme
Büyük bir not geçmişiniz olduğunda iki isteğe bağlı özellik yardımcı olur:
Zamansal azalma
Eski notlar sıralama ağırlığını kademeli olarak kaybeder, böylece güncel bilgiler önce öne çıkar. Varsayılan 30 günlük yarı ömürle, geçen aydan bir not özgün ağırlığının %50'siyle puanlanır. MEMORY.md gibi her zaman geçerli dosyalar asla azaltılmaz.
MMR (çeşitlilik)
Yinelenen sonuçları azaltır. Beş notun tamamı aynı yönlendirici yapılandırmasından bahsediyorsa MMR, en üst sonuçların tekrarlamak yerine farklı konuları kapsamasını sağlar.
İkisini de etkinleştirin
{ agents: { defaults: { memorySearch: { query: { hybrid: { mmr: { enabled: true }, temporalDecay: { enabled: true }, }, }, }, }, },}Çok modlu bellek
Gemini Embedding 2 ile Markdown'un yanında görselleri ve ses dosyalarını indeksleyebilirsiniz. Arama sorguları metin olarak kalır, ancak görsel ve ses içerikleriyle eşleşir. Kurulum için Bellek yapılandırma başvurusu sayfasına bakın.
Oturum belleği araması
İsteğe bağlı olarak oturum dökümlerini indeksleyebilirsiniz; böylece memory_search önceki konuşmaları hatırlayabilir. Bu, memorySearch.experimental.sessionMemory ve sources: ["sessions"] üzerinden isteğe bağlıdır; varsayılan kaynak listesi yalnızca bellektir. Deneysel bayrak oturum dökümü indekslemeyi etkinleştirirken, sources oturum parçalarının aranıp aranmayacağını denetler.
Oturum isabetleri tools.sessions.visibility değerine uyar: varsayılan tree ayarı yalnızca geçerli oturumu ve onun başlattığı oturumları açığa çıkarır. Ayrı bir DM oturumundan ilgisiz, aynı ajana ait gateway tarafından gönderilmiş bir oturumu hatırlamak için görünürlüğü bilerek agent değerine genişletin.
QMD kullanırken, dökümlerin bir QMD koleksiyonuna dışa aktarılması için memory.qmd.sessions.enabled: true değerini de ayarlayın. Ayrıntılar için yapılandırma başvurusuna bakın.
Sorun giderme
Sonuç yok mu? İndeksi kontrol etmek için openclaw memory status çalıştırın. Boşsa openclaw memory index --force çalıştırın.
Yalnızca anahtar sözcük eşleşmeleri mi var? Gömme sağlayıcınız yapılandırılmamış olabilir. openclaw memory status --deep ile kontrol edin.
Yerel gömmeler zaman aşımına mı uğruyor? ollama, lmstudio ve local varsayılan olarak daha uzun bir satır içi toplu iş zaman aşımı kullanır. Ana makine yalnızca yavaşsa agents.defaults.memorySearch.sync.embeddingBatchTimeoutSeconds ayarlayın ve openclaw memory index --force komutunu yeniden çalıştırın.
CJK metni bulunamıyor mu? FTS indeksini openclaw memory index --force ile yeniden oluşturun.
Daha fazla okuma
- Active Memory -- etkileşimli sohbet oturumları için alt ajan belleği
- Bellek -- dosya düzeni, arka uçlar, araçlar
- Bellek yapılandırma başvurusu -- tüm yapılandırma ayarları