Przejdź do głównej treści
Ta strona wymienia wszystkie ustawienia konfiguracji wyszukiwania pamięci OpenClaw. Omówienia koncepcyjne znajdziesz tutaj:

Przegląd pamięci

Jak działa pamięć.

Wbudowany silnik

Domyślny backend SQLite.

Silnik QMD

Lokalny sidecar.

Wyszukiwanie pamięci

Potok wyszukiwania i strojenie.

Active Memory

Podagent pamięci dla sesji interaktywnych.
Wszystkie ustawienia wyszukiwania pamięci znajdują się w agents.defaults.memorySearch w openclaw.json, chyba że zaznaczono inaczej.
Jeśli szukasz przełącznika funkcji Active Memory i konfiguracji podagenta, znajduje się ona w plugins.entries.active-memory, a nie w memorySearch.Active Memory używa modelu dwóch bramek:
  1. Plugin musi być włączony i wskazywać bieżący identyfikator agenta
  2. żądanie musi być kwalifikującą się interaktywną, trwałą sesją czatu
Zobacz Active Memory, aby poznać model aktywacji, konfigurację należącą do Pluginu, utrwalanie transkryptu i wzorzec bezpiecznego wdrażania.

Wybór dostawcy

KluczTypDomyślnieOpis
providerstring"openai"Identyfikator adaptera osadzania, taki jak bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai, openai-compatible lub voyage; może też być skonfigurowanym models.providers.<id>, którego api wskazuje adapter osadzania pamięci lub API modelu zgodne z OpenAI
modelstringdomyślny dostawcyNazwa modelu osadzania
fallbackstring"none"Identyfikator adaptera awaryjnego używany, gdy podstawowy zawiedzie
enabledbooleantrueWłącz lub wyłącz wyszukiwanie pamięci
Gdy provider nie jest ustawiony, OpenClaw używa osadzeń OpenAI. Ustaw provider jawnie, aby użyć Gemini, Voyage, Mistral, DeepInfra, Bedrock, GitHub Copilot, Ollama, lokalnego modelu GGUF albo zgodnego z OpenAI punktu końcowego /v1/embeddings. Starsze konfiguracje, które nadal zawierają provider: "auto", są rozwiązywane jako openai.
Zmiana dostawcy osadzeń, modelu, ustawień dostawcy, źródeł, zakresu, dzielenia na fragmenty lub tokenizatora może sprawić, że istniejący indeks wektorowy SQLite stanie się niezgodny. OpenClaw wstrzymuje wyszukiwanie wektorowe i zgłasza ostrzeżenie o tożsamości indeksu zamiast automatycznie ponownie osadzać wszystko. Odbuduj indeks, gdy będziesz gotowy, za pomocą openclaw memory status --index --agent <id> albo openclaw memory index --force --agent <id>.
Gdy provider nie jest ustawiony, obecne jest starsze provider: "auto" albo provider: "none" celowo wybiera tryb tylko FTS, przywoływanie pamięci nadal może używać leksykalnego rankingu FTS, gdy osadzenia są niedostępne. Jawni dostawcy nielokalni zawodzą w trybie zamkniętym. Jeśli ustawisz memorySearch.provider na konkretnego dostawcę opartego na zdalnym backendzie, takiego jak OpenAI, Gemini, Voyage, Mistral, Bedrock, GitHub Copilot, DeepInfra, Ollama, LM Studio albo zgodnego z OpenAI dostawcę niestandardowego, i ten dostawca jest niedostępny w czasie działania, memory_search zwraca wynik niedostępności zamiast po cichu używać przywoływania tylko FTS. Napraw konfigurację dostawcy/uwierzytelniania, przełącz się na osiągalnego dostawcę albo ustaw provider: "none", jeśli chcesz celowego przywoływania tylko FTS.

Niestandardowe identyfikatory dostawców

memorySearch.provider może wskazywać niestandardowy wpis models.providers.<id> dla adapterów dostawców specyficznych dla pamięci, takich jak ollama, albo dla zgodnych z OpenAI API modeli, takich jak openai-responses / openai-completions. OpenClaw rozwiązuje właściciela api tego dostawcy dla adaptera osadzania, zachowując jednocześnie niestandardowy identyfikator dostawcy na potrzeby obsługi punktu końcowego, uwierzytelniania i prefiksu modelu. Dzięki temu konfiguracje z wieloma GPU lub wieloma hostami mogą przeznaczyć osadzenia pamięci dla konkretnego lokalnego punktu końcowego:
{
  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",
      },
    },
  },
}

Rozwiązywanie klucza API

Zdalne osadzenia wymagają klucza API. Bedrock używa zamiast tego domyślnego łańcucha poświadczeń AWS SDK (role instancji, SSO, klucze dostępu).
DostawcaZmienna środowiskowaKlucz konfiguracji
BedrockŁańcuch poświadczeń AWSKlucz API nie jest potrzebny
DeepInfraDEEPINFRA_API_KEYmodels.providers.deepinfra.apiKey
GeminiGEMINI_API_KEYmodels.providers.google.apiKey
GitHub CopilotCOPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKENProfil uwierzytelniania przez logowanie urządzenia
MistralMISTRAL_API_KEYmodels.providers.mistral.apiKey
OllamaOLLAMA_API_KEY (symbol zastępczy)
OpenAIOPENAI_API_KEYmodels.providers.openai.apiKey
VoyageVOYAGE_API_KEYmodels.providers.voyage.apiKey
OAuth Codex obejmuje tylko czat/uzupełnienia i nie spełnia wymagań żądań osadzeń.

Konfiguracja zdalnego punktu końcowego

Użyj provider: "openai-compatible" dla ogólnego zgodnego z OpenAI serwera /v1/embeddings, który nie powinien dziedziczyć globalnych poświadczeń czatu OpenAI.
remote.baseUrl
string
Niestandardowy bazowy URL API.
remote.apiKey
string
Zastąp klucz API.
remote.headers
object
Dodatkowe nagłówki HTTP (scalane z domyślnymi ustawieniami dostawcy).
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        model: "text-embedding-3-small",
        remote: {
          baseUrl: "https://api.example.com/v1/",
          apiKey: "YOUR_KEY",
        },
      },
    },
  },
}

Konfiguracja specyficzna dla dostawcy

KluczTypDomyślnieOpis
modelstringgemini-embedding-001Obsługuje też gemini-embedding-2-preview
outputDimensionalitynumber3072Dla Embedding 2: 768, 1536 albo 3072
Zmiana modelu lub outputDimensionality zmienia tożsamość indeksu. OpenClaw wstrzymuje wyszukiwanie wektorowe, dopóki jawnie nie odbudujesz indeksu pamięci.
Zgodne z OpenAI punkty końcowe osadzania mogą włączyć specyficzne dla dostawcy pola żądania input_type. Jest to przydatne dla asymetrycznych modeli osadzania, które wymagają różnych etykiet dla osadzeń zapytań i dokumentów.
KluczTypDomyślnieOpis
inputTypestringnieustawioneWspólne input_type dla osadzeń zapytań i dokumentów
queryInputTypestringnieustawioneinput_type w czasie zapytania; zastępuje inputType
documentInputTypestringnieustawioneinput_type indeksu/dokumentu; zastępuje inputType
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        remote: {
          baseUrl: "https://embeddings.example/v1",
          apiKey: "${EMBEDDINGS_API_KEY}",
        },
        model: "asymmetric-embedder",
        queryInputType: "query",
        documentInputType: "passage",
      },
    },
  },
}
Zmiana tych wartości wpływa na tożsamość pamięci podręcznej osadzeń dla indeksowania wsadowego dostawcy i powinna być wykonana razem z ponownym indeksowaniem pamięci, gdy model upstream traktuje etykiety inaczej.

Konfiguracja osadzeń Bedrock

Bedrock używa domyślnego łańcucha poświadczeń AWS SDK — klucze API nie są potrzebne. Jeśli OpenClaw działa na EC2 z rolą instancji z włączonym Bedrock, wystarczy ustawić dostawcę i model:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "bedrock",
        model: "amazon.titan-embed-text-v2:0",
      },
    },
  },
}
KluczTypDomyślnieOpis
modelstringamazon.titan-embed-text-v2:0Dowolny identyfikator modelu osadzania Bedrock
outputDimensionalitynumberdomyślna modeluDla Titan V2: 256, 512 albo 1024
Obsługiwane modele (z wykrywaniem rodziny i domyślnymi wymiarami):
Identyfikator modeluDostawcaDomyślne wymiaryKonfigurowalne wymiary
amazon.titan-embed-text-v2:0Amazon1024256, 512, 1024
amazon.titan-embed-text-v1Amazon1536
amazon.titan-embed-g1-text-02Amazon1536
amazon.titan-embed-image-v1Amazon1024
amazon.nova-2-multimodal-embeddings-v1:0Amazon1024256, 384, 1024, 3072
cohere.embed-english-v3Cohere1024
cohere.embed-multilingual-v3Cohere1024
cohere.embed-v4:0Cohere1536256-1536
twelvelabs.marengo-embed-3-0-v1:0TwelveLabs512
twelvelabs.marengo-embed-2-7-v1:0TwelveLabs1024
Warianty z sufiksem przepustowości (np. amazon.titan-embed-text-v1:2:8k) dziedziczą konfigurację modelu bazowego.Uwierzytelnianie: uwierzytelnianie Bedrock używa standardowej kolejności rozwiązywania poświadczeń AWS SDK:
  1. Zmienne środowiskowe (AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY)
  2. Pamięć podręczna tokenów SSO
  3. Poświadczenia tokenu tożsamości webowej
  4. Współdzielone pliki poświadczeń i konfiguracji
  5. Poświadczenia metadanych ECS lub EC2
Region jest rozwiązywany z AWS_REGION, AWS_DEFAULT_REGION, baseUrl dostawcy amazon-bedrock albo domyślnie ustawiany na us-east-1.Uprawnienia IAM: rola lub użytkownik IAM potrzebuje:
{
  "Effect": "Allow",
  "Action": "bedrock:InvokeModel",
  "Resource": "*"
}
Aby zastosować zasadę najmniejszych uprawnień, ogranicz zakres InvokeModel do konkretnego modelu:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
KluczTypDomyślna wartośćOpis
local.modelPathstringpobierany automatycznieŚcieżka do pliku modelu GGUF
local.modelCacheDirstringdomyślna node-llama-cppKatalog pamięci podręcznej dla pobranych modeli
local.contextSizenumber | "auto"4096Rozmiar okna kontekstu dla kontekstu embeddingów. 4096 obejmuje typowe fragmenty (128–512 tokenów), jednocześnie ograniczając VRAM niezajmowany przez wagi. Obniż do 1024–2048 na ograniczonych hostach. "auto" używa wytrenowanego maksimum modelu — niezalecane dla modeli 8B+ (Qwen3-Embedding-8B: 40 960 tokenów → ~32 GB VRAM vs ~8,8 GB przy 4096).
Najpierw zainstaluj oficjalnego dostawcę llama.cpp: openclaw plugins install @openclaw/llama-cpp-provider. Model domyślny: embeddinggemma-300m-qat-Q8_0.gguf (~0,6 GB, pobierany automatycznie). Kopie robocze ze źródeł nadal wymagają zatwierdzenia natywnej kompilacji: pnpm approve-builds, a następnie pnpm rebuild node-llama-cpp.Użyj samodzielnego CLI, aby zweryfikować tę samą ścieżkę dostawcy, której używa Gateway:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
Ustaw provider: "local" jawnie dla lokalnych embeddingów GGUF. Odwołania do modeli hf: i HTTP(S) są obsługiwane dla jawnych konfiguracji lokalnych, ale nie zmieniają domyślnego dostawcy.

Limit czasu embeddingów inline

sync.embeddingBatchTimeoutSeconds
number
Nadpisz limit czasu dla partii embeddingów inline podczas indeksowania pamięci.Brak ustawienia używa wartości domyślnej dostawcy: 600 sekund dla dostawców lokalnych/samodzielnie hostowanych, takich jak local, ollama i lmstudio, oraz 120 sekund dla dostawców hostowanych. Zwiększ tę wartość, gdy lokalne partie embeddingów ograniczone przez CPU działają poprawnie, ale wolno.

Konfiguracja wyszukiwania hybrydowego

Wszystko pod memorySearch.query.hybrid:
KluczTypDomyślna wartośćOpis
enabledbooleantrueWłącz hybrydowe wyszukiwanie BM25 + wektorowe
vectorWeightnumber0.7Waga wyników wektorowych (0-1)
textWeightnumber0.3Waga wyników BM25 (0-1)
candidateMultipliernumber4Mnożnik rozmiaru puli kandydatów
KluczTypDomyślna wartośćOpis
mmr.enabledbooleanfalseWłącz ponowne rankingowanie MMR
mmr.lambdanumber0.70 = maks. różnorodność, 1 = maks. trafność

Pełny przykład

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

Dodatkowe ścieżki pamięci

KluczTypOpis
extraPathsstring[]Dodatkowe katalogi lub pliki do zaindeksowania
{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes"],
      },
    },
  },
}
Ścieżki mogą być bezwzględne albo względne względem obszaru roboczego. Katalogi są skanowane rekurencyjnie w poszukiwaniu plików .md. Obsługa dowiązań symbolicznych zależy od aktywnego backendu: wbudowany silnik ignoruje dowiązania symboliczne, natomiast QMD stosuje zachowanie bazowego skanera QMD. W przypadku wyszukiwania transkrypcji między agentami w zakresie agenta użyj agents.list[].memorySearch.qmd.extraCollections zamiast memory.qmd.paths. Te dodatkowe kolekcje mają ten sam kształt { path, name, pattern? }, ale są scalane per agent i mogą zachowywać jawne nazwy współdzielone, gdy ścieżka wskazuje poza bieżący obszar roboczy. Jeśli ta sama rozwiązana ścieżka pojawia się zarówno w memory.qmd.paths, jak i w memorySearch.qmd.extraCollections, QMD zachowuje pierwszy wpis i pomija duplikat.

Pamięć multimodalna (Gemini)

Indeksuj obrazy i audio razem z Markdown przy użyciu Gemini Embedding 2:
KluczTypDomyślnieOpis
multimodal.enabledbooleanfalseWłącz indeksowanie multimodalne
multimodal.modalitiesstring[]["image"], ["audio"] lub ["all"]
multimodal.maxFileBytesnumber10000000Maksymalny rozmiar pliku do indeksowania
Dotyczy tylko plików w extraPaths. Domyślne katalogi główne pamięci pozostają ograniczone do Markdown. Wymaga gemini-embedding-2-preview. fallback musi mieć wartość "none".
Obsługiwane formaty: .jpg, .jpeg, .png, .webp, .gif, .heic, .heif (obrazy); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (audio).

Pamięć podręczna embeddingów

KluczTypDomyślnieOpis
cache.enabledbooleantrueBuforuj embeddingi fragmentów w SQLite
cache.maxEntriesnumber50000Maksymalna liczba buforowanych embeddingów
Zapobiega ponownemu embeddingowi niezmienionego tekstu podczas ponownego indeksowania lub aktualizacji transkrypcji.

Indeksowanie wsadowe

KluczTypDomyślnieOpis
remote.nonBatchConcurrencynumber4Równoległe embeddingi inline
remote.batch.enabledbooleanfalseWłącz API embeddingów wsadowych
remote.batch.concurrencynumber2Równoległe zadania wsadowe
remote.batch.waitbooleantrueCzekaj na ukończenie wsadu
remote.batch.pollIntervalMsnumberInterwał odpytywania
remote.batch.timeoutMinutesnumberLimit czasu wsadu
Dostępne dla openai, gemini i voyage. Wsad OpenAI jest zwykle najszybszy i najtańszy przy dużych uzupełnieniach historycznych. remote.nonBatchConcurrency kontroluje wywołania embeddingów inline używane przez lokalnych/samodzielnie hostowanych dostawców oraz dostawców hostowanych, gdy API wsadowe dostawcy nie są aktywne. Ollama domyślnie używa 1 dla indeksowania niewsadowego, aby uniknąć przeciążenia mniejszych hostów lokalnych; ustaw wyższą wartość na większych maszynach. Jest to niezależne od sync.embeddingBatchTimeoutSeconds, które kontroluje limit czasu wywołań embeddingów inline.

Wyszukiwanie w pamięci sesji (eksperymentalne)

Indeksuj transkrypcje sesji i udostępniaj je przez memory_search:
KluczTypDomyślnieOpis
experimental.sessionMemorybooleanfalseWłącz indeksowanie sesji
sourcesstring[]["memory"]Dodaj "sessions", aby uwzględnić transkrypcje
sync.sessions.deltaBytesnumber100000Próg bajtów do ponownego indeksowania
sync.sessions.deltaMessagesnumber50Próg wiadomości do ponownego indeksowania
Indeksowanie sesji jest opcjonalne i działa asynchronicznie. Wyniki mogą być nieco nieaktualne. Dzienniki sesji znajdują się na dysku, więc traktuj dostęp do systemu plików jako granicę zaufania.
Trafienia transkrypcji sesji również respektują tools.sessions.visibility. Domyślna widoczność tree udostępnia tylko bieżącą sesję oraz sesje przez nią utworzone. Aby przywołać niepowiązaną sesję tego samego agenta wysłaną przez Gateway z innej sesji, takiej jak DM, celowo rozszerz widoczność do agent (lub do all tylko wtedy, gdy wymagane jest także przywoływanie między agentami i zezwala na to polityka agent-agent). Poniższe przykłady umieszczają te ustawienia w agents.defaults. Możesz też zastosować równoważne ustawienia memorySearch w nadpisaniu dla konkretnego agenta, gdy tylko jeden agent ma indeksować i przeszukiwać transkrypcje sesji. Dla przywoływania Gateway-do-DM tego samego agenta:
{
  agents: {
    defaults: {
      memorySearch: {
        experimental: { sessionMemory: true },
        sources: ["memory", "sessions"],
      },
    },
  },
  tools: {
    sessions: { visibility: "agent" },
  },
}
Podczas używania QMD, agents.defaults.memorySearch.experimental.sessionMemory oraz sources: ["sessions"] same z siebie nie eksportują transkrypcji do QMD. Ustaw również memory.qmd.sessions.enabled: true.

Przyspieszenie wektorowe SQLite (sqlite-vec)

KluczTypDomyślnieOpis
store.vector.enabledbooleantrueUżywaj sqlite-vec do zapytań wektorowych
store.vector.extensionPathstringbundledNadpisz ścieżkę sqlite-vec
Gdy sqlite-vec jest niedostępny, OpenClaw automatycznie przełącza się na podobieństwo cosinusowe w procesie.

Przechowywanie indeksów

Wbudowane indeksy pamięci znajdują się w bazie danych OpenClaw SQLite każdego agenta pod agents/<agentId>/agent/openclaw-agent.sqlite.
KluczTypDomyślnieOpis
store.fts.tokenizerstringunicode61Tokenizer FTS5 (unicode61 lub trigram)

Konfiguracja backendu QMD

Ustaw memory.backend = "qmd", aby włączyć. Wszystkie ustawienia QMD znajdują się w memory.qmd:
KluczTypDomyślnieOpis
commandstringqmdŚcieżka do pliku wykonywalnego QMD; ustaw ścieżkę bezwzględną, gdy PATH usługi różni się od powłoki
searchModestringsearchPolecenie wyszukiwania: search, vsearch, query
rerankbooleanUstaw na false z searchMode: "query" i QMD 2.1+, aby pominąć ponowne rankingowanie QMD
includeDefaultMemorybooleantrueAutomatycznie indeksuj MEMORY.md + memory/**/*.md
paths[]arrayDodatkowe ścieżki: { name, path, pattern? }
sessions.enabledbooleanfalseEksportuj transkrypcje sesji do QMD
sessions.retentionDaysnumberPrzechowywanie transkrypcji
sessions.exportDirstringKatalog eksportu
searchMode: "search" działa wyłącznie leksykalnie/BM25. OpenClaw nie uruchamia sond gotowości wektorów semantycznych ani utrzymania embeddingów QMD dla tego trybu, także podczas memory status --deep; vsearch i query nadal wymagają gotowości wektorowej QMD oraz embeddingów. rerank: false zmienia tylko tryb query QMD i wymaga QMD 2.1 lub nowszego. W bezpośrednim trybie CLI OpenClaw przekazuje --no-rerank; w trybie MCP opartym na mcporter przekazuje rerank: false do ujednoliconego narzędzia zapytań QMD. Pozostaw to nieustawione, aby używać domyślnego zachowania ponownego rankingowania zapytań QMD. OpenClaw preferuje bieżące kształty kolekcji QMD i zapytań MCP, ale utrzymuje działanie starszych wydań QMD, próbując w razie potrzeby zgodnych flag wzorców kolekcji i starszych nazw narzędzi MCP. Gdy QMD deklaruje obsługę wielu filtrów kolekcji, kolekcje z tego samego źródła są przeszukiwane jednym procesem QMD; starsze kompilacje QMD zachowują ścieżkę zgodności dla pojedynczych kolekcji. To samo źródło oznacza, że trwałe kolekcje pamięci są grupowane razem, natomiast kolekcje transkrypcji sesji pozostają osobną grupą, aby dywersyfikacja źródeł nadal miała oba wejścia.
Nadpisania modeli QMD pozostają po stronie QMD, a nie w konfiguracji OpenClaw. Jeśli musisz globalnie nadpisać modele QMD, ustaw zmienne środowiskowe, takie jak QMD_EMBED_MODEL, QMD_RERANK_MODEL i QMD_GENERATE_MODEL, w środowisku uruchomieniowym Gateway.
KluczTypDomyślnieOpis
update.intervalstring5mInterwał odświeżania
update.debounceMsnumber15000Debounce zmian plików
update.onBootbooleantrueOdświeżaj po otwarciu długotrwałego menedżera QMD; ustaw false, aby pominąć natychmiastową aktualizację przy uruchomieniu
update.startupstringoffOpcjonalna inicjalizacja QMD przy starcie Gateway: off, idle lub immediate
update.startupDelayMsnumber120000Opóźnienie przed uruchomieniem odświeżania startup: "idle"
update.waitForBootSyncbooleanfalseBlokuj otwarcie menedżera do zakończenia jego początkowego odświeżania
update.embedIntervalstringOsobny rytm osadzania
update.commandTimeoutMsnumberLimit czasu poleceń QMD
update.updateTimeoutMsnumberLimit czasu operacji aktualizacji QMD
update.embedTimeoutMsnumberLimit czasu operacji osadzania QMD
KluczTypDomyślnieOpis
limits.maxResultsnumber6Maksymalna liczba wyników wyszukiwania
limits.maxSnippetCharsnumberOgranicz długość fragmentu
limits.maxInjectedCharsnumberOgranicz łączną liczbę wstrzykniętych znaków
limits.timeoutMsnumber4000Limit czasu wyszukiwania
Steruje tym, które sesje mogą otrzymywać wyniki wyszukiwania QMD. Ten sam schemat co session.sendPolicy:
{
  memory: {
    qmd: {
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
    },
  },
}
Dostarczona wartość domyślna zezwala na sesje bezpośrednie i kanałowe, nadal odmawiając grupom.Domyślnie tylko DM. match.keyPrefix dopasowuje znormalizowany klucz sesji; match.rawKeyPrefix dopasowuje surowy klucz wraz z agent:<id>:.
memory.citations dotyczy wszystkich backendów:
WartośćZachowanie
auto (domyślnie)Uwzględnij stopkę Source: <path#line> we fragmentach
onZawsze uwzględniaj stopkę
offPomiń stopkę (ścieżka nadal jest wewnętrznie przekazywana agentowi)
Gdy inicjalizacja QMD przy starcie Gateway jest włączona, OpenClaw uruchamia QMD tylko dla kwalifikujących się agentów. Jeśli update.onBoot ma wartość true i nie skonfigurowano konserwacji interwału ani osadzania, uruchomienie używa jednorazowego menedżera do odświeżenia przy starcie i zamyka go. Jeśli skonfigurowano interwał aktualizacji lub osadzania, uruchomienie otwiera długotrwałego menedżera QMD, aby mógł posiadać obserwator i liczniki interwałów; update.onBoot: false pomija tylko natychmiastowe odświeżenie przy starcie.

Pełny przykład QMD

{
  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 konfiguruje się w plugins.entries.memory-core.config.dreaming, a nie w agents.defaults.memorySearch. Dreaming działa jako jedno zaplanowane przemiatanie i używa wewnętrznych faz lekkiej/głębokiej/REM jako szczegółu implementacyjnego. Opis zachowania koncepcyjnego i poleceń z ukośnikiem znajdziesz w Dreaming.

Ustawienia użytkownika

KluczTypDomyślnieOpis
enabledbooleanfalseCałkowicie włącz lub wyłącz dreaming
frequencystring0 3 * * *Opcjonalny rytm cron dla pełnego przemiatania dreaming
modelstringmodel domyślnyOpcjonalne zastąpienie modelu subagenta Dziennika snów
phases.deep.maxPromotedSnippetTokensnumber160Maksymalna szacowana liczba tokenów zachowywanych z każdego krótkoterminowego fragmentu przypomnienia promowanego do MEMORY.md; metadane pochodzenia pozostają widoczne

Przykład

{
  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",
          },
        },
      },
    },
  },
}
  • Dreaming zapisuje stan maszyny w memory/.dreams/.
  • Dreaming zapisuje czytelne dla człowieka dane narracyjne wyjściowe w DREAMS.md (lub istniejącym dreams.md).
  • dreaming.model używa istniejącej bramki zaufania subagenta Plugin; ustaw plugins.entries.memory-core.subagent.allowModelOverride: true przed jej włączeniem.
  • Dziennik snów ponawia próbę raz z domyślnym modelem sesji, gdy skonfigurowany model jest niedostępny. Niepowodzenia zaufania lub listy dozwolonych są rejestrowane i nie są po cichu ponawiane.
  • Zasady i progi faz lekkiej/głębokiej/REM są zachowaniem wewnętrznym, a nie konfiguracją przeznaczoną dla użytkownika.

Powiązane