Technical reference
Bellek yapılandırması referansı
Bu sayfa, OpenClaw bellek araması için her yapılandırma düğmesini listeler. Kavramsal genel bakışlar için bkz.:
Belleğin nasıl çalıştığı.
Varsayılan SQLite arka ucu.
Yerel öncelikli yardımcı süreç.
Arama işlem hattı ve ayarlama.
Etkileşimli oturumlar için bellek alt ajanı.
Aksi belirtilmedikçe tüm bellek araması ayarları openclaw.json içinde agents.defaults.memorySearch altında bulunur.
Sağlayıcı seçimi
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
provider |
string |
auto-detected | bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai veya voyage gibi gömme bağdaştırıcısı kimliği; api değeri bu bağdaştırıcılardan birini işaret eden yapılandırılmış bir models.providers.<id> de olabilir |
model |
string |
sağlayıcı varsayılanı | Gömme modeli adı |
fallback |
string |
"none" |
Birincil başarısız olduğunda kullanılacak yedek bağdaştırıcı kimliği |
enabled |
boolean |
true |
Bellek aramasını etkinleştirir veya devre dışı bırakır |
Otomatik algılama sırası
provider ayarlanmadığında OpenClaw kullanılabilir ilk seçeneği seçer:
local
memorySearch.local.modelPath yapılandırılmışsa ve dosya varsa seçilir.
github-copilot
Bir GitHub Copilot belirteci çözümlenebiliyorsa (env var veya kimlik doğrulama profili) seçilir.
openai
Bir OpenAI anahtarı çözümlenebiliyorsa seçilir.
gemini
Bir Gemini anahtarı çözümlenebiliyorsa seçilir.
voyage
Bir Voyage anahtarı çözümlenebiliyorsa seçilir.
mistral
Bir Mistral anahtarı çözümlenebiliyorsa seçilir.
deepinfra
Bir DeepInfra anahtarı çözümlenebiliyorsa seçilir.
bedrock
AWS SDK kimlik bilgisi zinciri çözümleniyorsa (örnek rolü, erişim anahtarları, profil, SSO, web kimliği veya paylaşılan yapılandırma) seçilir.
ollama desteklenir ancak otomatik algılanmaz (açıkça ayarlayın).
Özel sağlayıcı kimlikleri
memorySearch.provider, özel bir models.providers.<id> girdisini işaret edebilir. OpenClaw, gömme bağdaştırıcısı için bu sağlayıcının api sahibini çözümlerken uç nokta, kimlik doğrulama ve model öneki işleme için özel sağlayıcı kimliğini korur. Bu, çok GPU'lu veya çok ana makineli kurulumların bellek gömmelerini belirli bir yerel uç noktaya ayırmasını sağlar:
{
models: {
providers: {
"ollama-5080": {
api: "ollama",
baseUrl: "http://gpu-box.local:11435",
apiKey: "ollama-local",
models: [{ id: "qwen3-embedding:0.6b" }],
},
},
},
agents: {
defaults: {
memorySearch: {
provider: "ollama-5080",
model: "qwen3-embedding:0.6b",
},
},
},
}
API anahtarı çözümleme
Uzak gömmeler bir API anahtarı gerektirir. Bedrock bunun yerine AWS SDK varsayılan kimlik bilgisi zincirini kullanır (örnek rolleri, SSO, erişim anahtarları).
| Sağlayıcı | Env var | Yapılandırma anahtarı |
|---|---|---|
| Bedrock | AWS kimlik bilgisi zinciri | API anahtarı gerekmez |
| DeepInfra | DEEPINFRA_API_KEY |
models.providers.deepinfra.apiKey |
| Gemini | GEMINI_API_KEY |
models.providers.google.apiKey |
| GitHub Copilot | COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN |
Cihaz oturum açma üzerinden kimlik doğrulama profili |
| Mistral | MISTRAL_API_KEY |
models.providers.mistral.apiKey |
| Ollama | OLLAMA_API_KEY (yer tutucu) |
-- |
| OpenAI | OPENAI_API_KEY |
models.providers.openai.apiKey |
| Voyage | VOYAGE_API_KEY |
models.providers.voyage.apiKey |
Uzak uç nokta yapılandırması
Özel OpenAI uyumlu uç noktalar veya sağlayıcı varsayılanlarını geçersiz kılmak için:
remote.baseUrlstringÖzel API temel URL'si.
remote.apiKeystringAPI anahtarını geçersiz kıl.
remote.headersobjectEk HTTP üstbilgileri (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",
},
},
},
},
}
Sağlayıcıya özel yapılandırma
Gemini
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model |
string |
gemini-embedding-001 |
gemini-embedding-2-preview desteği de vardır |
outputDimensionality |
number |
3072 |
Embedding 2 için: 768, 1536 veya 3072 |
OpenAI-compatible input types
OpenAI uyumlu gömme uç noktaları sağlayıcıya özel input_type istek alanlarını kullanmayı seçebilir. Bu, sorgu ve belge gömmeleri için farklı etiketler gerektiren asimetrik gömme modelleri için kullanışlıdır.
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
inputType |
string |
ayarlanmamış | Sorgu ve belge gömmeleri için paylaşılan input_type |
queryInputType |
string |
ayarlanmamış | Sorgu zamanı input_type; inputType değerini geçersiz kılar |
documentInputType |
string |
ayarlanmamış | İndeks/belge input_type; inputType değerini geçersiz kılar |
{
agents: {
defaults: {
memorySearch: {
provider: "openai",
remote: {
baseUrl: "https://embeddings.example/v1",
apiKey: "env:EMBEDDINGS_API_KEY",
},
model: "asymmetric-embedder",
queryInputType: "query",
documentInputType: "passage",
},
},
},
}
Bu değerleri değiştirmek, sağlayıcı toplu indeksleme için gömme önbelleği kimliğini etkiler ve yukarı akış modeli etiketleri farklı işliyorsa bellek yeniden indekslemesiyle takip edilmelidir.
Bedrock
Bedrock gömme yapılandırması
Bedrock, AWS SDK varsayılan kimlik bilgisi zincirini kullanır; API anahtarları gerekmez. OpenClaw, Bedrock etkinleştirilmiş bir örnek rolüyle EC2 üzerinde çalışıyorsa yalnızca sağlayıcıyı ve modeli ayarlayın:
{
agents: {
defaults: {
memorySearch: {
provider: "bedrock",
model: "amazon.titan-embed-text-v2:0",
},
},
},
}
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
model |
string |
amazon.titan-embed-text-v2:0 |
Herhangi bir Bedrock gömme modeli kimliği |
outputDimensionality |
number |
model varsayılanı | Titan V2 için: 256, 512 veya 1024 |
Desteklenen modeller (aile algılama ve boyut varsayılanlarıyla):
| Model kimliği | Sağlayıcı | Varsayılan Boyutlar | Yapılandırılabilir Boyutlar |
|---|---|---|---|
amazon.titan-embed-text-v2:0 |
Amazon | 1024 | 256, 512, 1024 |
amazon.titan-embed-text-v1 |
Amazon | 1536 | -- |
amazon.titan-embed-g1-text-02 |
Amazon | 1536 | -- |
amazon.titan-embed-image-v1 |
Amazon | 1024 | -- |
amazon.nova-2-multimodal-embeddings-v1:0 |
Amazon | 1024 | 256, 384, 1024, 3072 |
cohere.embed-english-v3 |
Cohere | 1024 | -- |
cohere.embed-multilingual-v3 |
Cohere | 1024 | -- |
cohere.embed-v4:0 |
Cohere | 1536 | 256-1536 |
twelvelabs.marengo-embed-3-0-v1:0 |
TwelveLabs | 512 | -- |
twelvelabs.marengo-embed-2-7-v1:0 |
TwelveLabs | 1024 | -- |
Verim eki taşıyan varyantlar (ör. amazon.titan-embed-text-v1:2:8k) temel modelin yapılandırmasını devralır.
Kimlik doğrulama: Bedrock kimlik doğrulaması standart AWS SDK kimlik bilgisi çözümleme sırasını kullanır:
- Ortam değişkenleri (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY) - SSO belirteç önbelleği
- Web kimliği belirteci kimlik bilgileri
- Paylaşılan kimlik bilgileri ve yapılandırma dosyaları
- ECS veya EC2 meta veri kimlik bilgileri
Bölge AWS_REGION, AWS_DEFAULT_REGION, amazon-bedrock sağlayıcısı baseUrl değerinden çözümlenir veya varsayılan olarak us-east-1 kullanılır.
IAM izinleri: IAM rolü veya kullanıcısı şunlara ihtiyaç duyar:
{
"Effect": "Allow",
"Action": "bedrock:InvokeModel",
"Resource": "*"
}
En az ayrıcalık için InvokeModel kapsamını belirli modele daraltın:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
Yerel (GGUF + node-llama-cpp)
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
local.modelPath |
string |
otomatik indirilir | GGUF model dosyasının yolu |
local.modelCacheDir |
string |
node-llama-cpp varsayılanı | İndirilen modeller için önbellek dizini |
local.contextSize |
number | "auto" |
4096 |
Gömme bağlamı için bağlam penceresi boyutu. 4096, ağırlık dışı VRAM'i sınırlarken tipik parçaları (128-512 token) kapsar. Kısıtlı ana makinelerde 1024-2048'e düşürün. "auto" modelin eğitilmiş en yüksek değerini kullanır; 8B+ modeller için önerilmez (Qwen3-Embedding-8B: 40 960 token -> 4096'da ~8,8 GB'a karşılık ~32 GB VRAM). |
Varsayılan model: embeddinggemma-300m-qat-Q8_0.gguf (~0,6 GB, otomatik indirilir). Kaynak checkout'ları yine de yerel derleme onayı gerektirir: pnpm approve-builds ardından pnpm rebuild node-llama-cpp.
Gateway'in kullandığı aynı sağlayıcı yolunu doğrulamak için bağımsız CLI'yi kullanın:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
provider auto ise local yalnızca local.modelPath mevcut bir yerel dosyayı gösterdiğinde seçilir. hf: ve HTTP(S) model başvuruları provider: "local" ile yine açıkça kullanılabilir, ancak model diskte mevcut olmadan önce auto seçiminin local'ı seçmesini sağlamazlar.
Satır içi gömme zaman aşımı
sync.embeddingBatchTimeoutSecondsnumberBellek indeksleme sırasında satır içi gömme grupları için zaman aşımını geçersiz kılın.
Ayarlanmazsa sağlayıcı varsayılanı kullanılır: local, ollama ve lmstudio gibi yerel/kendi barındırdığınız sağlayıcılar için 600 saniye, barındırılan sağlayıcılar için 120 saniye. Yerel CPU'ya bağlı gömme grupları sağlıklı ama yavaş olduğunda bunu artırın.
Hibrit arama yapılandırması
Tümü memorySearch.query.hybrid altında:
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
true |
Hibrit BM25 + vektör aramayı etkinleştir |
vectorWeight |
number |
0.7 |
Vektör puanları için ağırlık (0-1) |
textWeight |
number |
0.3 |
BM25 puanları için ağırlık (0-1) |
candidateMultiplier |
number |
4 |
Aday havuzu boyutu çarpanı |
MMR (çeşitlilik)
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
mmr.enabled |
boolean |
false |
MMR yeniden sıralamayı etkinleştir |
mmr.lambda |
number |
0.7 |
0 = en yüksek çeşitlilik, 1 = en yüksek alaka |
Zamansal azalma (yenilik)
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
temporalDecay.enabled |
boolean |
false |
Yenilik artırımını etkinleştir |
temporalDecay.halfLifeDays |
number |
30 |
Puan her N günde yarıya iner |
Evergreen dosyalar (MEMORY.md, memory/ içindeki tarih içermeyen 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ı
| Anahtar | Tür | Açıklama |
|---|---|---|
extraPaths |
string[] |
İndekslenecek 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 temel QMD tarayıcı davranışını izler.
Ajan kapsamlı ajanlar arası transkript 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 ajan başına birleştirilir ve yol geçerli çalışma alanının dışını gösterdiğ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 kopyayı atlar.
Çok modlu bellek (Gemini)
Gemini Embedding 2 kullanarak Markdown ile birlikte görüntüleri ve sesi indeksleyin:
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
multimodal.enabled |
boolean |
false |
Çok modlu indekslemeyi etkinleştir |
multimodal.modalities |
string[] |
-- | ["image"], ["audio"] veya ["all"] |
multimodal.maxFileBytes |
number |
10000000 |
İndeksleme için en yüksek dosya boyutu |
Desteklenen biçimler: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (görseller); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (ses).
Gömme önbelleği
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
cache.enabled |
boolean |
false |
Parça gömmelerini SQLite içinde önbelleğe al |
cache.maxEntries |
number |
50000 |
En fazla önbelleğe alınan gömme |
Yeniden indeksleme veya transkript güncellemeleri sırasında değişmemiş metnin yeniden gömülmesini önler.
Toplu indeksleme
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
remote.nonBatchConcurrency |
number |
4 |
Paralel satır içi gömmeler |
remote.batch.enabled |
boolean |
false |
Toplu gömme API'sini etkinleştir |
remote.batch.concurrency |
number |
2 |
Paralel toplu işler |
remote.batch.wait |
boolean |
true |
Toplu işlemin tamamlanmasını bekle |
remote.batch.pollIntervalMs |
number |
-- | Yoklama aralığı |
remote.batch.timeoutMinutes |
number |
-- | Toplu işlem zaman aşımı |
openai, gemini ve voyage için kullanılabilir. OpenAI toplu işlemi, büyük geriye dönük doldurmalar için genellikle en hızlı ve en ucuz seçenektir.
remote.nonBatchConcurrency, yerel/kendi barındırdığınız sağlayıcılar ve sağlayıcı toplu API'leri etkin olmadığında barındırılan sağlayıcılar tarafından kullanılan satır içi gömme çağrılarını denetler. Ollama, daha küçük yerel makineleri aşırı yüklememek için toplu olmayan indekslemede varsayılan olarak 1 kullanır; daha büyük makinelerde daha yüksek bir değer ayarlayın.
Bu, satır içi gömme çağrılarının zaman aşımını denetleyen sync.embeddingBatchTimeoutSeconds ayarından ayrıdır.
Oturum belleği araması (deneysel)
Oturum transkriptlerini indeksleyin ve bunları memory_search üzerinden gösterin:
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
experimental.sessionMemory |
boolean |
false |
Oturum indekslemeyi etkinleştir |
sources |
string[] |
["memory"] |
Transkriptleri dahil etmek için "sessions" ekleyin |
sync.sessions.deltaBytes |
number |
100000 |
Yeniden indeksleme için bayt eşiği |
sync.sessions.deltaMessages |
number |
50 |
Yeniden indeksleme için ileti eşiği |
SQLite vektör hızlandırması (sqlite-vec)
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
store.vector.enabled |
boolean |
true |
Vektör sorguları için sqlite-vec kullan |
store.vector.extensionPath |
string |
bundled | sqlite-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.
İndeks depolama
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
store.path |
string |
~/.openclaw/memory/{agentId}.sqlite |
İndeks konumu ({agentId} belirtecini destekler) |
store.fts.tokenizer |
string |
unicode61 |
FTS5 belirteçleyicisi (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:
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
command |
string |
qmd |
QMD çalıştırılabilir dosya yolu; hizmet PATH değeri kabuğunuzdan farklıysa mutlak yol ayarlayın |
searchMode |
string |
search |
Arama komutu: search, vsearch, query |
includeDefaultMemory |
boolean |
true |
MEMORY.md + memory/**/*.md dosyalarını otomatik indeksle |
paths[] |
array |
-- | Ek yollar: { name, path, pattern? } |
sessions.enabled |
boolean |
false |
Oturum transkriptlerini indeksle |
sessions.retentionDays |
number |
-- | Transkript saklama süresi |
sessions.exportDir |
string |
-- | Dışa aktarma dizini |
searchMode: "search" yalnızca leksik/BM25 tabanlıdır. OpenClaw, memory status --deep sırasında dahil olmak üzere bu mod için semantik vektör hazırlık yoklamaları veya QMD embedding bakımı çalıştırmaz; vsearch ve query, QMD vektör hazırlığı ve embedding’leri gerektirmeye devam eder.
OpenClaw güncel QMD collection ve MCP sorgu biçimlerini tercih eder, ancak gerektiğinde uyumlu collection pattern bayraklarını ve eski MCP araç adlarını deneyerek daha eski QMD sürümlerinin çalışmasını sürdürür. QMD birden çok collection filtresi desteği bildirdiğinde, aynı kaynaklı collection’lar tek bir QMD işlemiyle aranır; eski QMD derlemeleri collection başına uyumluluk yolunu korur. Aynı kaynak, kalıcı bellek collection’larının birlikte gruplandığı, session transcript collection’larının ise ayrı bir grup olarak kaldığı anlamına gelir; böylece kaynak çeşitlendirmesi hâlâ her iki girdiye de sahip olur.
Güncelleme zamanlaması
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
update.interval |
string |
5m |
Yenileme aralığı |
update.debounceMs |
number |
15000 |
Dosya değişikliklerini debounce et |
update.onBoot |
boolean |
true |
Uzun ömürlü QMD yöneticisi açıldığında yenile; ayrıca isteğe bağlı başlangıç yenilemesini de denetler |
update.startup |
string |
off |
İsteğe bağlı gateway başlangıç yenilemesi: off, idle veya immediate |
update.startupDelayMs |
number |
120000 |
startup: "idle" yenilemesi çalışmadan önceki gecikme |
update.waitForBootSync |
boolean |
false |
İlk yenilemesi tamamlanana kadar yöneticinin açılmasını engelle |
update.embedInterval |
string |
-- | Ayrı embed temposu |
update.commandTimeoutMs |
number |
-- | QMD komutları için zaman aşımı |
update.updateTimeoutMs |
number |
-- | QMD güncelleme işlemleri için zaman aşımı |
update.embedTimeoutMs |
number |
-- | QMD embed işlemleri için zaman aşımı |
Sınırlar
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
limits.maxResults |
number |
6 |
Maksimum arama sonucu |
limits.maxSnippetChars |
number |
-- | Snippet uzunluğunu sınırla |
limits.maxInjectedChars |
number |
-- | Toplam enjekte edilen karakterleri sınırla |
limits.timeoutMs |
number |
4000 |
Arama zaman aşımı |
Kapsam
Hangi session’ların QMD arama sonuçlarını alabileceğini denetler. session.sendPolicy ile aynı schema:
{
memory: {
qmd: {
scope: {
default: "deny",
rules: [{ action: "allow", match: { chatType: "direct" } }],
},
},
},
}
Gönderilen varsayılan doğrudan ve kanal session’larına izin verirken grupları yine reddeder.
Varsayılan yalnızca DM’dir. match.keyPrefix normalize edilmiş session anahtarıyla eşleşir; match.rawKeyPrefix, agent:<id>: dahil ham anahtarla eşleşir.
Atıflar
memory.citations tüm backend’lere uygulanır:
| Değer | Davranış |
|---|---|
auto (varsayılan) |
Snippet’lara Source: <path#line> footer’ını ekle |
on |
Footer’ı her zaman ekle |
off |
Footer’ı atla (yol yine de dahili olarak agent’a geçirilir) |
QMD boot yenilemeleri gateway başlangıcı sırasında tek seferlik bir subprocess yolu kullanır. Uzun ömürlü QMD yöneticisi, bellek araması etkileşimli kullanım için açıldığında düzenli dosya watcher’ının ve aralık timer’larının sahibi olmaya devam eder.
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
Dreaming, agents.defaults.memorySearch altında değil, plugins.entries.memory-core.config.dreaming altında yapılandırılır.
Dreaming tek bir zamanlanmış sweep olarak çalışır ve dahili light/deep/REM aşamalarını bir uygulama ayrıntısı olarak kullanır.
Kavramsal davranış ve slash komutları için bkz. Dreaming.
Kullanıcı ayarları
| Anahtar | Tür | Varsayılan | Açıklama |
|---|---|---|---|
enabled |
boolean |
false |
Dreaming’i tamamen etkinleştir veya devre dışı bırak |
frequency |
string |
0 3 * * * |
Tam Dreaming sweep’i için isteğe bağlı cron temposu |
model |
string |
varsayılan model | İsteğe bağlı Dream Diary subagent model override’ı |
Örnek
{
plugins: {
entries: {
"memory-core": {
subagent: {
allowModelOverride: true,
allowedModels: ["anthropic/claude-sonnet-4-6"],
},
config: {
dreaming: {
enabled: true,
frequency: "0 3 * * *",
model: "anthropic/claude-sonnet-4-6",
},
},
},
},
},
}