-
-
Notifications
You must be signed in to change notification settings - Fork 39.6k
Labels
bugSomething isn't workingSomething isn't working
Description
Summary
I have QMD search backend enabled, when running openclaw doctor, it says no embedding provider is set. I'm hosting my own embeddings for QMD (gemma), so no API key is needed.
Steps to reproduce
- Configure QMD as memory backend with local models (I set
embeddinggemma-300M) - Verify embeddings work:
qmd embedsucceeds,qmd query "test"returns results - Run
openclaw doctor - See warning
Expected behavior
Doctor should detect that QMD is configured with local models and skip this warning (or show a green check).
Actual behavior
◇ Memory search ───────────────────────────────────────────────────────────────────────────╮
│ │
│ Memory search is enabled but no embedding provider is configured. │
│ Semantic recall will not work without an embedding provider. │
│ │
│ Fix (pick one): │
│ - Set OPENAI_API_KEY or GEMINI_API_KEY in your environment │
│ - Add credentials: openclaw auth add --provider openai │
│ - For local embeddings: configure agents.defaults.memorySearch.provider and local model │
│ path │
│ - To disable: openclaw config set agents.defaults.memorySearch.enabled false │
│ │
│ Verify: openclaw memory status --deep │
│ │
├───────────────────────────────────────────────────────────────────────────────────────────╯
OpenClaw version
2026.2.14
Operating system
Ubuntu 24.04
Install method
npm global
Logs, screenshots, and evidence
Impact and severity
No response
Additional information
From my clanker:
The doctor check flows through this logic:
- resolveMemorySearchConfig() returns a resolved object with a provider field
- If provider === "auto" (which is likely the default), it falls through to line 703
- It checks hasLocalEmbeddings(resolved.local) — which looks for local.modelPath
- QMD handles its own embeddings internally — there's no modelPath in the OpenClaw config because QMD uses its own embeddinggemma model
- So hasLocalEmbeddings returns false
- Then it checks for remote API keys (openai/gemini/voyage) — we have none
- Result: false positive warning "no embedding provider configured"
The doctor doesn't know that when memory.backend = "qmd", QMD handles embeddings entirely on its own. The check assumes OpenClaw itself must have an embedding provider configured, but QMD bundles its own.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working