Sessions and memory

Bellek araması

memory_search, ifadeler özgün metinden farklı olsa bile bellek dosyalarınızdaki ilgili notları bulur. Belleği küçük parçalara böler ve bunları gömmelerle, anahtar kelimelerle veya her ikisiyle arar.

Hızlı başlangıç

OpenClaw varsayılan olarak OpenAI gömmelerini kullanır. Başka bir sağlayıcı kullanmak için bunu açıkça ayarlayın:

json5
{  memory: {    search: {      provider: "openai", // veya "gemini", "voyage", "mistral", "bedrock", "local", "ollama", "lmstudio", "github-copilot", "openai-compatible"    },  },}

provider, özel bir models.providers.<id> girdisine de başvurabilir (örneğin ollama-5080); bunun için söz konusu girdinin api değerini "ollama" veya bellek gömme bağdaştırıcısı bulunan başka bir sağlayıcı kimliği olarak ayarlaması gerekir.

API anahtarı olmadan yerel gömmeler kullanmak için resmî llama.cpp sağlayıcı Plugin'ini yükleyin ve provider: "local" değerini ayarlayın:

bash
openclaw plugins install @openclaw/llama-cpp-provider

Kaynak kod çalışma kopyalarında yine de yerel derleme onayı gerekir: pnpm approve-builds, ardından pnpm rebuild node-llama-cpp.

Bazı OpenAI uyumlu gömme uç noktaları, aramalar için "query" ve dizine alınmış parçalar için "document"/"passage" gibi asimetrik input_type etiketleri gerektirir. Bunları queryInputType ve documentInputType ile ayarlayın; bkz. Bellek yapılandırma başvurusu.

Desteklenen sağlayıcılar

Sağlayıcı Kimlik API anahtarı gerekli Notlar
Bedrock bedrock Hayır AWS kimlik bilgisi zincirini kullanır
DeepInfra deepinfra Evet Varsayılan model BAAI/bge-m3
Gemini gemini Evet Görüntü/ses dizinlemeyi destekler
GitHub Copilot github-copilot Hayır Copilot aboneliğinizi kullanır
Yerel local Hayır GGUF modeli, ~0.6 GB otomatik indirme
LM Studio lmstudio Hayır Yerel/kendi barındırdığınız sunucu
Mistral mistral Evet
Ollama ollama Hayır Yerel/kendi barındırdığınız sunucu
OpenAI openai Evet Varsayılan
OpenAI uyumlu openai-compatible Genellikle Genel /v1/embeddings uç noktası
Voyage voyage Evet

Arama nasıl çalışır?

OpenClaw iki getirme yolunu paralel olarak çalıştırır ve sonuçları birleştirir:

flowchart LR
    Q["Sorgu"] --> E["Gömme"]
    Q --> T["Tokenlere ayırma"]
    E --> VS["Vektör araması"]
    T --> BM["BM25 araması"]
    VS --> M["Ağırlıklı birleştirme"]
    BM --> M
    M --> R["En iyi sonuçlar"]
  • Vektör araması benzer anlamları eşleştirir ("gateway ana makinesi", "OpenClaw'ı çalıştıran makine" ile eşleşir).
  • BM25 anahtar kelime araması tam terimleri eşleştirir (kimlikler, hata dizeleri, yapılandırma anahtarları).
  • Dosya adı araması, yolları not gövdelerinden ayrı olarak dizine alır. Tam yollar, temel dosya adları ve dosya adı kökleri kısmi yol eşleşmelerinden daha üstte sıralanırken, parçacıklar ve gövde anahtar kelime puanları yine not içeriğinden gelir.

Yollardan yalnızca biri kullanılabiliyorsa diğeri tek başına çalışır.

Yalnızca FTS modu. Gömmeleri kasıtlı olarak devre dışı bırakmak ve yalnızca anahtar kelimelerle arama yapmak için provider: "none" değerini ayarlayın. provider değerini ayarlamamak veya "auto" olarak ayarlamak da gömme kimlik doğrulaması yapılandırılmamışsa hata vermeden yalnızca anahtar kelime sıralamasına geri döner; provider: "local" (GGUF/llama.cpp sağlayıcısı) başarısız olduğunda da aynı davranış geçerlidir.

Açıkça belirtilen sağlayıcı kullanılamıyor. Başka herhangi bir sağlayıcıyı açıkça belirtirseniz (örneğin openai, ollama, gemini) ve istek sırasında kullanılamaz duruma gelirse (hatalı kimlik doğrulaması, ağ arızası), memory_search sessizce yalnızca FTS sonuçlarına geçmek yerine belleğin kullanılamadığını bildirir. Böylece yapılandırılmış bozuk bir sağlayıcı görünür kalır. Bilinçli olarak yalnızca FTS ile hatırlama için provider: "none" değerini ayarlayın veya anlamsal sıralamayı geri yüklemek için sağlayıcı/kimlik doğrulama yapılandırmasını düzeltin.

Arama kalitesini iyileştirme

İki isteğe bağlı özellik, geniş bir not geçmişinde yardımcı olur.

Zamansal azalma

Eski notların sıralama ağırlığı zamanla azalır; böylece güncel bilgiler önce gösterilir. Varsayılan 30 günlük yarı ömürle geçen aya ait bir not, özgün ağırlığının %50'si kadar puan alır. MEMORY.md ve memory/ altındaki diğer tarihsiz dosyalar kalıcıdır ve ağırlıkları hiçbir zaman azalmaz; yalnızca tarihli memory/YYYY-MM-DD.md dosyalarının ağırlığı azalır.

MMR (çeşitlilik)

Yinelenen sonuçları azaltır. Beş notun tümü aynı yönlendirici yapılandırmasından söz ediyorsa MMR, en iyi sonuçların tekrar etmek yerine farklı konuları kapsamasını sağlar.

İkisini de etkinleştirme

json5
{  memory: {    search: {      query: {        hybrid: {          mmr: { enabled: true },          temporalDecay: { enabled: true },        },      },    },  },}

Çok modlu bellek

gemini-embedding-2-preview ile Markdown'ın yanı sıra görüntüleri ve sesleri de dizine alabilirsiniz. Bu yalnızca memory.search.extraPaths altındaki dosyalar için geçerlidir; varsayılan bellek kökleri (MEMORY.md, memory/*.md) yalnızca Markdown olarak kalır. Arama sorguları metin olarak kalır ancak görsel ve sesli içerikle eşleşir. Kurulum için Bellek yapılandırma başvurusuna bakın.

Oturum belleği araması

Oturum dökümlerinden tam metni bire bir hatırlamak için sessions_search kullanın ve ardından sessions_history ile bir sonucu açın. Oturum belleği araması, anlamsal ve deneysel tamamlayıcı olmaya devam eder.

İsteğe bağlı olarak oturum dökümlerini dizine alarak memory_search öğesinin önceki konuşmaları hatırlamasını sağlayabilirsiniz. Bu özellik tercihe bağlıdır: experimental.sessionMemory: true değerini ayarlayın ve sources içine "sessions" ekleyin (varsayılan sources, ["memory"] değeridir).

Oturum eşleşmeleri tools.sessions.visibility ayarına uyar: varsayılan "tree", mevcut oturumu, onun başlattığı oturumları ve ortamdaki grup farkındalığı aracılığıyla izlenen aynı araca ait grup oturumlarını erişilebilir kılar. session.dmScope: "main" kullanıldığında çok kullanıcılı bir DM kurulumu bu ana oturumu paylaşır; dolayısıyla buraya yönlendirilen kullanıcılar, onun izlediği gruplardaki içeriği hatırlayabilir. DM yalıtımı için eş başına bir dmScope kullanın veya ortamda izlenen oturumların okunmasını devre dışı bırakmak için görünürlüğü "self" olarak ayarlayın. İlişkisiz diğer aynı araç oturumları için yine "agent" görünürlüğü gerekir.

QMD arka ucunu kullanırken dökümlerin QMD koleksiyonuna aktarılması için memory.qmd.sessions.enabled: true değerini de ayarlayın; yalnızca experimental.sessionMemory ve sources, dökümleri QMD'ye aktarmaz. Bkz. yapılandırma başvurusu.

Sorun giderme

Sonuç yok mu? Dizini denetlemek için openclaw memory status komutunu çalıştırın. Boşsa openclaw memory index --force komutunu çalıştırın.

Yalnızca anahtar kelime eşleşmeleri mi var? Gömme sağlayıcınız yapılandırılmamış olabilir. openclaw memory status --deep değerini denetleyin.

Yerel gömmeler zaman aşımına mı uğruyor? ollama, lmstudio ve local, sağlayıcının sahip olduğu daha uzun toplu işlem zaman sınırlarını kullanır. Sağlayıcının durumunu denetleyin ve openclaw memory index --force komutunu yeniden çalıştırın.

CJK metni bulunamıyor mu? FTS dizinini openclaw memory index --force ile yeniden oluşturun.

İlgili konular

Was this useful?
On this page

On this page