#How to implement semantic/vector search for agent memory files?

1 messages · Page 1 of 1 (latest)

pearl marsh
#

Hi, I have a large collection of daily memory files in my workspace
(memory/YYYY-MM-DD.md format).

Currently my agent can only do keyword-based retrieval - it only finds
memories when I mention specific keywords.

I want to implement semantic search so the agent can proactively find
related memories based on context, not just keywords.

My setup:

  • OpenClaw on WSL2
  • Primary model: myclaw/minimax-m2.7
  • Memory files in: ~/.openclaw/workspace/memory/

Questions:

  1. Does OpenClaw have built-in vector/semantic search support?
  2. If not, what's the recommended way to add this? (ChromaDB, etc.)
  3. Is there a skill or plugin that handles this?
wild tokenBOT
rain quarryBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

wild tokenBOT
tribal widgetBOT
#

Short answer: yes, recent OpenClaw does have built-in semantic memory search.

  1. Built-in support?
    Yes. The default memory-core backend supports:

    • keyword search
    • vector search via embeddings
    • hybrid search (both together)

    If you are only getting keyword matches, the usual cause is that no embedding provider is configured.

  2. Recommended way to add it?
    I would not start with ChromaDB. OpenClaw already has a built-in SQLite memory engine, plus a more advanced QMD backend.

    Best path:

    • Start with builtin memory-core
    • Configure agents.defaults.memorySearch.provider
    • Reindex and test with:
#
  • openclaw memory status --deep

    • openclaw memory index --force
    • openclaw memory search "your query"

    Important for your setup: your chat model (myclaw/minimax-m2.7) is separate from the embedding provider used for semantic memory. MiniMax being your main model does not automatically enable memory embeddings.

    Good options:

    • provider: "local" if you want local embeddings
    • provider: "ollama" if you already run Ollama embeddings
    • provider: "openai" / gemini / voyage / mistral if you want remote embeddings
  1. Skill or plugin?
    • Builtin: memory-core (default, no extra plugin needed)
    • Advanced backend: memory.backend = "qmd" for reranking, query expansion, extra indexed paths, session transcript indexing
    • Not the same thing: memory-wiki is a knowledge/wiki layer, not the core semantic search engine

If you want, I can give you a minimal JSON5 config for WSL2 for either:

pearl marsh
#

openclaw memory status --deep gives "error: unknown command 'memory'"
Running OpenClaw 2026.4.15

How do I check and configure the built-in semantic memory/vector search?

tribal widgetBOT
#

Let me check what changed around that version so I don't send you on a goose chase.

#

That helps, thanks. openclaw memory ... is newer than 2026.4.15, so that error makes sense. Let me grab the older-compatible way to verify it.

#

I’m checking the actual config schema too, just to make sure the keys I give you existed in that release line.

#

Yep, that error is just version drift.

On 2026.4.15, the built-in semantic memory system exists, but the openclaw memory ... CLI landed later, so unknown command 'memory' is expected on your version.

What to check on 2026.4.15

1. Make sure memory is not disabled

openclaw config get plugins.slots.memory
  • If it prints none, re-enable it:
openclaw config set plugins.slots.memory memory-core

2. Check your workspace path

#
openclaw config get agents.defaults.workspace

Builtin memory indexes MEMORY.md and memory/*.md inside the agent workspace.

So if your files are in:

~/.openclaw/workspace/memory/

then your workspace should be:

~/.openclaw/workspace

If not, either fix the workspace or add the path explicitly:

#
openclaw config set agents.defaults.memorySearch.extraPaths '["/home/YOU/.openclaw/workspace/memory"]' --strict-json

3. Configure an embedding provider
Your MiniMax chat model is separate from memory embeddings.

MiniMax is not one of the documented memory embedding providers, so for semantic search you should set one of:

  • openai
  • gemini
  • voyage
  • mistral
  • ollama
  • local

Example:

#
openclaw config set agents.defaults.memorySearch.provider ollama

or

openclaw config set agents.defaults.memorySearch.provider local

or

openclaw config set agents.defaults.memorySearch.provider openai

4. Verify with doctor

#
openclaw doctor

Recent docs say doctor includes a memory-search readiness check, and on your release line that is the best built-in way to validate it.

5. Restart the gateway after config changes

openclaw gateway restart

Recommended setup

For your case, I would not add ChromaDB first.

#

Best order:

  1. Use builtin memory-core
  2. Set agents.defaults.memorySearch.provider
  3. Confirm workspace / extraPaths
  4. Run openclaw doctor

Only move to QMD if you want more advanced recall like reranking, query expansion, or indexing outside the normal workspace memory files.

QMD uses:

{
  memory: {
    backend: "qmd"
  }
}
#

If you paste these 3 outputs, I can tell you the exact missing piece:

openclaw config get plugins.slots.memory
openclaw config get agents.defaults.workspace
openclaw doctor
pearl marsh
#

Running OpenClaw 2026.4.15
Tried: openclaw config set plugins.slots.memory memory-core
Error: plugins.slots.memory: plugin not found: memory-core

Doctor shows: WARN: memory slot plugin not found or not marked as memory: memory-core

How do I install or enable memory-core on this version?

tribal widgetBOT
#

Let me check whether memory-core simply didn’t exist yet in that release line, because that warning smells like a docs/version mismatch again.

#

I want to confirm whether older builds exposed a different memory plugin set, instead of guessing.

#

Okay, that’s interesting: on a nearby release I can see memory-core, but it’s bundled and disabled by default. I’m checking the right enable path now, because it may be plugins enable ..., not just setting the slot.

#

Ah, good catch, my earlier advice assumed a newer build.

On the 2026.4.x line, the right first step is usually enable the bundled plugin, not just set the slot.

Try this order

1. Check whether the plugin is discoverable

openclaw plugins inspect memory-core
openclaw plugins list | rg memory

2. If it shows up, enable it

openclaw plugins enable memory-core
#

3. Then set the memory slot

openclaw config set plugins.slots.memory memory-core

4. Configure embeddings
MiniMax is your chat model, but memory embeddings need a supported provider:

openclaw config set agents.defaults.memorySearch.provider ollama

or local, openai, gemini, etc.

5. Restart + verify

openclaw gateway restart
openclaw doctor
#
openclaw plugins doctor

Important detail

If openclaw plugins inspect memory-core says not found, then your installed 2026.4.15 build likely does not include the bundled memory plugin properly.

In that case, I would upgrade rather than fight the old packaging:

openclaw update

or reinstall the latest release, then re-check:

#
openclaw plugins inspect memory-core

Also check this

If all plugins are globally disabled, memory will never load:

openclaw config get plugins.enabled

If that returns false, turn plugins back on or unset that override.


#

Short version

  • plugins.slots.memory = memory-core alone is not enough on that release line
  • first do openclaw plugins enable memory-core
  • if memory-core is truly missing, upgrade, because that build is behind the docs/plugin layout

If you paste the output of these 4 commands, I can tell you exactly which case you’re in:

openclaw plugins inspect memory-core
openclaw plugins list | rg memory
openclaw config get plugins.enabled
openclaw plugins doctor

Docs:

pearl marsh
#

memory-core plugin not found on 2026.4.15 - is it available in this version?
Running OpenClaw 2026.4.15 (latest via npm)

openclaw plugins inspect memory-core → "Plugin not found: memory-core"
openclaw plugins list | grep memory → no output

Doctor shows: WARN: memory slot plugin not found or not marked as memory: memory-core

Is memory-core available in 2026.4.15?
If not, how do I enable semantic memory search on this version?

tribal widgetBOT
#

I’m going one level deeper and checking when memory-core actually showed up in the repo, so I can answer this cleanly instead of hand-waving.

#

This is smelling like an npm packaging issue on that exact release. I’m checking the published 2026.4.15 tarball contents now.

#

Yes, memory-core should be available in 2026.4.15.

I checked the published openclaw@2026.4.15 npm tarball, and it does include:

  • dist/extensions/memory-core/index.js
  • dist/extensions/memory-core/openclaw.plugin.json

So this is not “that version is too old”.
It looks more like a local install / path / packaging mismatch on your machine.

What that means

If you see:

  • openclaw plugins inspect memory-core → Plugin not found
  • openclaw plugins list | grep memory → nothing
#

then your running openclaw binary is probably not using the package contents you think it is, or the global install is incomplete/stale.

Check these first

which openclaw
readlink -f "$(which openclaw)"
npm root -g
ls -1 "$(npm root -g)/openclaw/dist/extensions" | grep '^memory'

On a healthy 2026.4.15 install, that last command should show at least:

  • memory-core
  • memory-lancedb
  • memory-wiki
#

If the memory dirs are missing

Your install is broken. Reinstall the global package cleanly, then re-check plugin discovery.

If the dirs exist but openclaw still says “Plugin not found”

Then you likely have a stale binary / wrong global path / multiple installs problem.

That is why I’d compare:

which openclaw
npm root -g

The binary and the global package path need to line up.

#

Once memory-core is discoverable

Then do:

openclaw plugins enable memory-core
openclaw config set plugins.slots.memory memory-core
openclaw config set agents.defaults.memorySearch.provider ollama
openclaw gateway restart
openclaw doctor

(Use local, openai, gemini, etc. instead of ollama if that’s your embedding setup.)

Important nuance

  • The plugin should exist in 2026.4.15
#
  • The newer openclaw memory ... CLI may still be missing on that release
  • so on your version, semantic memory is configured via plugins + config + doctor, not the newer memory CLI

If you paste these 4 outputs, I can tell you exactly which mismatch you have:

which openclaw
readlink -f "$(which openclaw)"
npm root -g
ls -1 "$(npm root -g)/openclaw/dist/extensions" | grep '^memory'

Docs:

ashen karma
#

For the MD corpus specifically, memory-core/QMD will work but you'll spend time tuning the embedding provider, reindexing, and deciding where the vectors live. If you want to skip that config step entirely, mr-memory treats your workspace/memory folder as a source and handles the embeddings + semantic retrieval as a hosted service — no ChromaDB to run, no embedding provider to pick. It's a plugin so the install is:

openclaw plugins install mr-memory

Point it at your memory/ directory, it indexes your .md files, and the agent gets semantic + keyword + hybrid retrieval tools in its toolset. Free tier covers a lot (50M tokens). Worth having as a second option alongside the local path if you want to A/B what retrieval quality actually feels like.

MiniMax as your chat model doesn't matter for this — retrieval is decoupled.

tribal widgetBOT
#

Let me sanity-check that plugin name before I bless it, because community plugin names drift a lot.

#

Yep, that’s a fair second option if someone wants a hosted, low-config path.

Just one important distinction for this thread:

  • memory-core is the official built-in path
  • a plugin like mr-memory would be a third-party/community option, not the default OpenClaw setup

So for Benson’s specific issue, I would still separate the two cases:

  1. Built-in path
    On 2026.4.15, memory-core should exist. If plugins inspect memory-core returns “not found”, that points to a local install / discovery problem, not “semantic memory doesn’t exist in this version”.

  2. Hosted plugin path
    If someone wants to skip local embedding/provider setup entirely, a hosted memory plugin can absolutely be worth trying, especially for A/B-ing retrieval quality.

Also agreed on this part: MiniMax as the chat model is separate from retrieval.