-
-
Notifications
You must be signed in to change notification settings - Fork 78.9k
[Feature]: expose QMD no-rerank for memory.qmd query mode #61834
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
Expose QMD 2.1.0's no-rerank capability from OpenClaw's QMD memory backend so users can run
searchMode: "query"without the reranking step.Problem to solve
OpenClaw already supports:
memory.backend = "qmd"memory.qmd.searchMode = "query" | "search" | "vsearch"But when
searchMode: "query"is used, there is currently no config or tool-level way to disable reranking.Upstream QMD 2.1.0 added:
qmd query --no-rerankrerank: falseSo OpenClaw currently cannot expose a useful middle ground between:
search= fast but BM25-onlyquery= best recall but slowerquerywithout rerank, for faster hybrid resultsProposed solution
Expose the rerank toggle in one or both of these forms.
Option A: config-level
{ "memory": { "backend": "qmd", "qmd": { "searchMode": "query", "noRerank": true } } }Expected behavior:
searchMode !== "query"--no-rerankrerank: falseif supportedOption B: request-level
Expose a request-level toggle on
memory_search, for example:{ "query": "QMD 2.1.0 rerank false", "maxResults": 5, "rerank": false }This would be more flexible than config-only support.
Alternatives considered
memory.qmd.searchMode = "search": faster, but loses hybrid query behaviorsearchMode = "query": better recall, but slower than necessary when reranking is not neededqmd query --no-rerankmanually outside OpenClaw: workable as a local workaround, but bypasses the normalmemory_searchpathImpact
Affected: users running
memory.backend = "qmd", especially on CPU-only or latency-sensitive systemsSeverity: Medium
Frequency: any interactive use of
searchMode: "query"Consequence: users must choose between BM25-only search and full reranked query mode, with no supported middle ground even though upstream QMD now provides one
Evidence/examples
QMD 2.1.0 release notes:
https://github.com/tobi/qmd/releases/tag/v2.1.0
Relevant excerpt:
In local verification,
qmd query --no-rerankworked as expected and provided a useful speed/quality tradeoff compared with full reranked query mode.Additional information
This is separate from warm-process / MCP-caching work. Even if QMD is kept warm through MCP, a rerank toggle is still useful as an explicit latency vs quality control.