Ana içeriğe atla

Bellek yapılandırma başvurusu

Bu sayfa, OpenClaw bellek araması için tüm yapılandırma ayarlarını listeler. Kavramsal genel bakışlar için şunlara bakın: Aksi belirtilmedikçe, tüm bellek arama ayarları openclaw.json içinde agents.defaults.memorySearch altında bulunur.

Sağlayıcı seçimi

KeyTypeDefaultDescription
providerstringotomatik algılanırEmbedding bağdaştırıcı kimliği: openai, gemini, voyage, mistral, ollama, local
modelstringsağlayıcı varsayılanıEmbedding model adı
fallbackstring"none"Birincil başarısız olduğunda kullanılacak yedek bağdaştırıcı kimliği
enabledbooleantrueBellek aramasını etkinleştirin veya devre dışı bırakın

Otomatik algılama sırası

provider ayarlanmadığında, OpenClaw kullanılabilir ilk seçeneği seçer:
  1. localmemorySearch.local.modelPath yapılandırılmışsa ve dosya mevcutsa.
  2. openai — bir OpenAI anahtarı çözümlenebiliyorsa.
  3. gemini — bir Gemini anahtarı çözümlenebiliyorsa.
  4. voyage — bir Voyage anahtarı çözümlenebiliyorsa.
  5. mistral — bir Mistral anahtarı çözümlenebiliyorsa.
ollama desteklenir ancak otomatik algılanmaz (açıkça ayarlayın).

API anahtarı çözümleme

Uzak embedding’ler bir API anahtarı gerektirir. OpenClaw bunu şu kaynaklardan çözümler: kimlik doğrulama profilleri, models.providers.*.apiKey veya ortam değişkenleri.
ProviderEnv varConfig key
OpenAIOPENAI_API_KEYmodels.providers.openai.apiKey
GeminiGEMINI_API_KEYmodels.providers.google.apiKey
VoyageVOYAGE_API_KEYmodels.providers.voyage.apiKey
MistralMISTRAL_API_KEYmodels.providers.mistral.apiKey
OllamaOLLAMA_API_KEY (yer tutucu)
Codex OAuth yalnızca sohbet/tamamlama işlemlerini kapsar ve embedding isteklerini karşılamaz.

Uzak uç nokta yapılandırması

Özel OpenAI uyumlu uç noktalar veya sağlayıcı varsayılanlarını geçersiz kılmak için:
KeyTypeDescription
remote.baseUrlstringÖzel API temel URL’si
remote.apiKeystringAPI anahtarını geçersiz kıl
remote.headersobjectEk HTTP üst bilgileri (sağlayıcı varsayılanlarıyla birleştirilir)
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai",
        model: "text-embedding-3-small",
        remote: {
          baseUrl: "https://api.example.com/v1/",
          apiKey: "YOUR_KEY",
        },
      },
    },
  },
}

Gemini’ye özgü yapılandırma

KeyTypeDefaultDescription
modelstringgemini-embedding-001Ayrıca gemini-embedding-2-preview de desteklenir
outputDimensionalitynumber3072Embedding 2 için: 768, 1536 veya 3072
Modelin veya outputDimensionality değerinin değiştirilmesi otomatik tam yeniden dizinlemeyi tetikler.

Yerel embedding yapılandırması

KeyTypeDefaultDescription
local.modelPathstringotomatik indirilirGGUF model dosyasının yolu
local.modelCacheDirstringnode-llama-cpp varsayılanıİndirilen modeller için önbellek dizini
Varsayılan model: embeddinggemma-300m-qat-Q8_0.gguf (~0.6 GB, otomatik indirilir). Yerel derleme gerektirir: pnpm approve-builds ardından pnpm rebuild node-llama-cpp.

Hibrit arama yapılandırması

Tümü memorySearch.query.hybrid altında yer alır:
KeyTypeDefaultDescription
enabledbooleantrueHibrit BM25 + vektör aramasını etkinleştir
vectorWeightnumber0.7Vektör puanları için ağırlık (0-1)
textWeightnumber0.3BM25 puanları için ağırlık (0-1)
candidateMultipliernumber4Aday havuzu boyutu çarpanı

MMR (çeşitlilik)

KeyTypeDefaultDescription
mmr.enabledbooleanfalseMMR yeniden sıralamayı etkinleştir
mmr.lambdanumber0.70 = en yüksek çeşitlilik, 1 = en yüksek alaka

Zamansal azalma (güncellik)

KeyTypeDefaultDescription
temporalDecay.enabledbooleanfalseGüncellik artırmasını etkinleştir
temporalDecay.halfLifeDaysnumber30Puan her N günde yarıya iner
Sürekli geçerli dosyalar (MEMORY.md, memory/ içindeki tarihsiz dosyalar) hiçbir zaman azaltılmaz.

Tam örnek

{
  agents: {
    defaults: {
      memorySearch: {
        query: {
          hybrid: {
            vectorWeight: 0.7,
            textWeight: 0.3,
            mmr: { enabled: true, lambda: 0.7 },
            temporalDecay: { enabled: true, halfLifeDays: 30 },
          },
        },
      },
    },
  },
}

Ek bellek yolları

KeyTypeDescription
extraPathsstring[]Dizinlenecek ek dizinler veya dosyalar
{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes"],
      },
    },
  },
}
Yollar mutlak veya çalışma alanına göreli olabilir. Dizinler, .md dosyaları için özyinelemeli olarak taranır. Sembolik bağlantı işleme etkin arka uca bağlıdır: yerleşik motor sembolik bağlantıları yok sayarken, QMD alttaki QMD tarayıcı davranışını izler. Aracı kapsamlı, aracılar arası oturum dökümü araması için memory.qmd.paths yerine agents.list[].memorySearch.qmd.extraCollections kullanın. Bu ek koleksiyonlar aynı { path, name, pattern? } biçimini izler, ancak aracı başına birleştirilir ve yol mevcut çalışma alanının dışını işaret ettiğinde açık paylaşılan adları koruyabilir. Aynı çözümlenmiş yol hem memory.qmd.paths hem de memorySearch.qmd.extraCollections içinde görünürse, QMD ilk girdiyi tutar ve yineleneni atlar.

Çok modlu bellek (Gemini)

Gemini Embedding 2 kullanarak Markdown ile birlikte görselleri ve sesi dizinleyin:
KeyTypeDefaultDescription
multimodal.enabledbooleanfalseÇok modlu dizinlemeyi etkinleştir
multimodal.modalitiesstring[]["image"], ["audio"] veya ["all"]
multimodal.maxFileBytesnumber10000000Dizinleme için en büyük dosya boyutu
Yalnızca extraPaths içindeki dosyalar için geçerlidir. Varsayılan bellek kökleri yalnızca Markdown olarak kalır. gemini-embedding-2-preview gerektirir. fallback değeri "none" olmalıdır. Desteklenen biçimler: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (görseller); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (ses).

Embedding önbelleği

KeyTypeDefaultDescription
cache.enabledbooleanfalseParça embedding’lerini SQLite içinde önbelleğe al
cache.maxEntriesnumber50000En fazla önbelleğe alınan embedding sayısı
Yeniden dizinleme veya döküm güncellemeleri sırasında değişmemiş metnin yeniden embedding işleminden geçmesini önler.

Toplu dizinleme

KeyTypeDefaultDescription
remote.batch.enabledbooleanfalseToplu embedding API’sini etkinleştir
remote.batch.concurrencynumber2Paralel toplu işler
remote.batch.waitbooleantrueToplu iş tamamlanmasını bekle
remote.batch.pollIntervalMsnumberYoklama aralığı
remote.batch.timeoutMinutesnumberToplu iş zaman aşımı
openai, gemini ve voyage için kullanılabilir. OpenAI toplu işlem genellikle büyük geri doldurma işlemleri için en hızlı ve en ucuz seçenektir.

Oturum belleği araması (deneysel)

Oturum dökümlerini dizinleyin ve bunları memory_search aracılığıyla sunun:
KeyTypeDefaultDescription
experimental.sessionMemorybooleanfalseOturum dizinlemeyi etkinleştir
sourcesstring[]["memory"]Dökümleri dahil etmek için "sessions" ekleyin
sync.sessions.deltaBytesnumber100000Yeniden dizinleme için bayt eşiği
sync.sessions.deltaMessagesnumber50Yeniden dizinleme için mesaj eşiği
Oturum dizinleme isteğe bağlıdır ve eşzamansız olarak çalışır. Sonuçlar biraz eski olabilir. Oturum günlükleri diskte bulunduğundan, dosya sistemi erişimini güven sınırı olarak değerlendirin.

SQLite vektör hızlandırma (sqlite-vec)

KeyTypeDefaultDescription
store.vector.enabledbooleantrueVektör sorguları için sqlite-vec kullan
store.vector.extensionPathstringbundledsqlite-vec yolunu geçersiz kıl
sqlite-vec kullanılamadığında, OpenClaw otomatik olarak işlem içi kosinüs benzerliğine geri döner.

Dizin depolama

KeyTypeDefaultDescription
store.pathstring~/.openclaw/memory/{agentId}.sqliteDizin konumu ({agentId} belirtecini destekler)
store.fts.tokenizerstringunicode61FTS5 belirteç ayırıcısı (unicode61 veya trigram)

QMD arka uç yapılandırması

Etkinleştirmek için memory.backend = "qmd" ayarlayın. Tüm QMD ayarları memory.qmd altında bulunur:
KeyTypeDefaultDescription
commandstringqmdQMD yürütülebilir dosya yolu
searchModestringsearchArama komutu: search, vsearch, query
includeDefaultMemorybooleantrueMEMORY.md + memory/**/*.md otomatik dizinle
paths[]arrayEk yollar: { name, path, pattern? }
sessions.enabledbooleanfalseOturum dökümlerini dizinle
sessions.retentionDaysnumberDöküm saklama süresi
sessions.exportDirstringDışa aktarma dizini

Güncelleme zamanlaması

KeyTypeDefaultDescription
update.intervalstring5mYenileme aralığı
update.debounceMsnumber15000Dosya değişikliklerini debounce et
update.onBootbooleantrueBaşlangıçta yenile
update.waitForBootSyncbooleanfalseYenileme tamamlanana kadar başlangıcı engelle
update.embedIntervalstringAyrı embedding sıklığı
update.commandTimeoutMsnumberQMD komutları için zaman aşımı
update.updateTimeoutMsnumberQMD güncelleme işlemleri için zaman aşımı
update.embedTimeoutMsnumberQMD embedding işlemleri için zaman aşımı

Sınırlar

KeyTypeDefaultDescription
limits.maxResultsnumber6En fazla arama sonucu
limits.maxSnippetCharsnumberParçacık uzunluğunu sınırla
limits.maxInjectedCharsnumberToplam eklenen karakteri sınırla
limits.timeoutMsnumber4000Arama zaman aşımı

Kapsam

Hangi oturumların QMD arama sonuçları alabileceğini denetler. Şununla aynı şema: session.sendPolicy:
{
  memory: {
    qmd: {
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
    },
  },
}
Varsayılan yalnızca DM’dir. match.keyPrefix normalleştirilmiş oturum anahtarıyla eşleşir; match.rawKeyPrefix, agent:<id>: dahil ham anahtarla eşleşir.

Alıntılar

memory.citations tüm arka uçlar için geçerlidir:
ValueBehavior
auto (varsayılan)Parçacıklara Source: <path#line> alt bilgisini ekle
onAlt bilgiyi her zaman ekle
offAlt bilgiyi çıkar (yol yine de aracıya dahili olarak aktarılır)

Tam QMD örneği

{
  memory: {
    backend: "qmd",
    citations: "auto",
    qmd: {
      includeDefaultMemory: true,
      update: { interval: "5m", debounceMs: 15000 },
      limits: { maxResults: 6, timeoutMs: 4000 },
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],
    },
  },
}

Dreaming (deneysel)

Dreaming, agents.defaults.memorySearch altında değil, plugins.entries.memory-core.config.dreaming altında yapılandırılır. Kavramsal ayrıntılar ve sohbet komutları için Dreaming bölümüne bakın.
KeyTypeDefaultDescription
modestring"off"Ön ayar: off, core, rem veya deep
cronstringön ayar varsayılanıZamanlama için Cron ifadesi geçersiz kılma
timezonestringkullanıcı saat dilimiZamanlama değerlendirmesi için saat dilimi
limitnumberön ayar varsayılanıDöngü başına yükseltilecek en fazla aday
minScorenumberön ayar varsayılanıYükseltme için en düşük ağırlıklı puan
minRecallCountnumberön ayar varsayılanıEn düşük hatırlama sayısı eşiği
minUniqueQueriesnumberön ayar varsayılanıEn düşük farklı sorgu sayısı eşiği

Ön ayar varsayılanları

ModeCadenceminScoreminRecallCountminUniqueQueries
offDevre dışı
coreHer gün 03:000.7532
remHer 6 saatte bir0.8543
deepHer 12 saatte bir0.8033

Örnek

{
  plugins: {
    entries: {
      "memory-core": {
        config: {
          dreaming: {
            mode: "core",
            timezone: "America/New_York",
          },
        },
      },
    },
  },
}