← NEWS DESK
analysis

OpenClaw Main Changes Default Memory Recall and External Indexing

Builtin memory now supplements thin searches, enables diversity reranking by default and accepts glob-scoped extra paths with migration support for retired QMD collections.

Independent operator analysis for people running OpenClaw in production · Editorial standards

OpenClaw has merged a three-part upgrade to builtin memory on main: conversational queries can supplement thin strict results, hybrid recall now applies diversity reranking by default, and memory.search.extraPaths can selectively index external directories with per-entry glob patterns.

This is a behavior change operators should evaluate, not a storage migration to apply blindly. The content remains operator-controlled, but the candidates selected and their order can change after upgrade or reindex.

Thin strict searches now receive bounded help

Before PR #121196, builtin full-text search used strict AND matching and fell back to extracted keywords only when strict search returned zero rows. One weak strict hit was enough to prevent supplementation, so a natural-language query could miss several relevant memories.

The new path keeps strict hits and adds bounded lexical candidates when the non-exact pool is thinner than the target. Results are merged by identity before the existing ranking stage. Upstream says this adds no provider call, dependency or configuration key, and keeps one embedding call where hybrid search already used one.

That should improve conversational recall, but it can also surface records that were previously absent. Access policy must therefore be enforced by index and read scope, not by assuming an awkward query would never retrieve a file.

MMR diversity is now the default

PR #121224 enables the existing maximal marginal relevance reranker by default for hybrid memory search. The configured default uses a relevance-biased balance (λ=0.7) and token-set similarity to demote near-duplicate snippets that would otherwise crowd the result list.

The same change fixes distinct Arabic or Cyrillic snippets being tokenised to empty sets and treated as identical duplicates. An empty-token fallback now preserves those records as distinct.

The practical effect is that two installations with the same index and query may return a different order before and after the containing upgrade. More diversity is usually helpful, but workflows that depend on the first result or compare exact ranked output need a regression baseline.

Upstream also records a limitation: later project ranking can partially undo MMR diversity. Treat the result as improved ranking policy, not a guarantee that every output is unique.

External paths gain selective glob scope

PR #121209 extends memory.search.extraPaths so an entry can be either the existing string form or an object with path and optional pattern.

Patterns are root-relative and participate in discovery, watching and index-scope identity; changing a pattern triggers reindexing. The final merged work also enforces glob scope on the model-facing reader after review identified that indexing-only enforcement would be insufficient. Existing symlink-skipping remains in place.

Doctor can map retired memory.qmd.paths patterns into the new builtin shape. That helps QMD migrations retain selective collection semantics without introducing a second configuration key.

Interpretation: a glob is a scope boundary only when discovery, watcher updates, direct reads and reindex identity all agree. A file omitted from the index but still readable through the same configured root is not actually excluded.

Operator checklist

Before moving a consequential memory deployment:

  1. export the effective memory configuration and record the current build;
  2. build a fixture containing relevant, irrelevant, near-duplicate and non-Latin records;
  3. capture representative search results before upgrade;
  4. migrate QMD patterns with Doctor only after reviewing the proposed config change;
  5. verify each glob includes intended files and excludes synthetic canaries outside scope;
  6. force or wait for the documented reindex path after pattern changes;
  7. compare membership and ranking, not only whether one favourite result remains first; and
  8. monitor latency and result churn under your real candidate count.

Avoid using secrets as exclusion canaries. A harmless unique string proves scope without creating an incident if the test fails.

Acceptance matrix

Case Required outcome
Conversational query with one weak strict hit Relevant keyword candidates supplement the pool without losing the strict hit
Near-duplicate snippets Relevant content remains, redundant variants are demoted
Distinct Arabic/Cyrillic snippets Records remain separately eligible
Globbed external directory Matching Markdown is indexed and readable
File outside the glob Absent from search and rejected by the scoped reader
Pattern change Index identity changes and stale scope is reconciled
Plain-string extraPaths entry Existing behavior remains compatible

Bottom line

Builtin memory is becoming a stronger default after QMD removal, but stronger recall widens what a query can surface. Upgrade with an explicit ranking and scope regression suite, especially if external directories or non-Latin memory content matter to your deployment.

THE RECEIPTS

Claims should survive the click.

Primary links used for this article are listed openly. If the evidence changes, the verification date changes with it.
  1. 01PR #121196: supplement thin strict recall with bounded lexical expansion
  2. 02PR #121224: enable MMR diversity by default
  3. 03PR #121209: per-entry glob patterns for extraPaths
  4. 04OpenClaw memory documentation

THE OPERATOR BRIEF

One useful email when the signal earns it.

Release impact, security changes and repository intelligence. No daily sludge.