Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
QMD is a local-first search sidecar that runs alongside OpenClaw. It combines BM25, vector search, and reranking in a single binary, and can index content beyond your workspace memory files.
npm install -g @tobilu/qmdbun install -g @tobilu/qmdbrew install sqlitePATHjson5{ memory: { backend: "qmd", }, }
OpenClaw creates a self-contained QMD home under
~/.openclaw/agents/<agentId>/qmd/memory.qmd.pathsqmd updateqmd embedMEMORY.mdmemory/memory.md.git.cachenode_modulesvendordistbuildmemory.qmd.update.startupidleimmediatesearchModesearchvsearchquerysearchqmd queryopenclaw memory statusOpenClaw keeps the QMD search path compatible with both current and older QMD installs.
On startup, OpenClaw checks the installed QMD help text once per manager. If the binary advertises support for multiple collection filters, OpenClaw searches all same-source collections with one command:
bashqmd search "router notes" --json -n 10 -c memory-root-main -c memory-dir-main
This avoids starting one QMD subprocess for every durable-memory collection. Session transcript collections stay in their own source group, so mixed
memorysessionsOlder QMD builds only accept one collection filter. When OpenClaw detects one of those builds, it keeps the compatibility path and searches each collection separately before merging and deduplicating results.
To inspect the installed contract manually, run:
bashqmd --help | grep -i collection
Current QMD help says collection filters can target one or more collections. Older help usually describes a single collection.
QMD model environment variables pass through unchanged from the gateway process, so you can tune QMD globally without adding new OpenClaw config:
bashexport QMD_EMBED_MODEL="hf:Qwen/Qwen3-Embedding-0.6B-GGUF/Qwen3-Embedding-0.6B-Q8_0.gguf" export QMD_RERANK_MODEL="/absolute/path/to/reranker.gguf" export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
After changing the embedding model, rerun embeddings so the index matches the new vector space.
Point QMD at additional directories to make them searchable:
json5{ memory: { backend: "qmd", qmd: { paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }], }, }, }
Snippets from extra paths appear as
qmd/<collection>/<relative-path>memory_getEnable session indexing to recall earlier conversations:
json5{ memory: { backend: "qmd", qmd: { sessions: { enabled: true }, }, }, }
Transcripts are exported as sanitized User/Assistant turns into a dedicated QMD collection under
~/.openclaw/agents/<id>/qmd/sessions/By default, QMD search results are surfaced in direct and channel sessions (not groups). Configure
memory.qmd.scopejson5{ memory: { qmd: { scope: { default: "deny", rules: [{ action: "allow", match: { chatType: "direct" } }], }, }, }, }
When scope denies a search, OpenClaw logs a warning with the derived channel and chat type so empty results are easier to debug.
When
memory.citationsautoonSource: <path#line>memory.citations = "off"Choose QMD when you need:
For simpler setups, the builtin engine works well with no extra dependencies.
QMD not found? Ensure the binary is on the gateway's
PATHsudo ln -s ~/.bun/bin/qmd /usr/local/bin/qmdIf
qmd --versionspawn qmd ENOENTPATHjson5{ memory: { backend: "qmd", qmd: { command: "/absolute/path/to/qmd", }, }, }
Use
command -v qmdopenclaw memory status --deepFirst search very slow? QMD downloads GGUF models on first use. Pre-warm with
qmd query "test"Many QMD subprocesses during search? Update QMD if possible. OpenClaw uses one process for same-source multi-collection searches only when the installed QMD advertises support for multiple
-cBM25-only QMD still trying to build llama.cpp? Set
memory.qmd.searchMode = "search"vsearchquerySearch times out? Increase
memory.qmd.limits.timeoutMs120000Empty results in group chats? Check
memory.qmd.scopeRoot memory search suddenly got too broad? Restart the gateway or wait for the next startup reconciliation. OpenClaw recreates stale managed collections back to canonical
MEMORY.mdmemory/Workspace-visible temp repos causing ENAMETOOLONG
.tmp/For the full config surface (
memory.qmd.*© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine