OpenClaw's QMD Memory Search Fast Path Had Silent Bugs

✍️ OpenClawRadar📅 Published: March 20, 2026🔗 Source
OpenClaw's QMD Memory Search Fast Path Had Silent Bugs
Ad

OpenClaw's built-in memory search uses basic keyword matching, which works for simple lookups but struggles when agents need to find information learned weeks earlier without exact word matches.

Users can switch to QMD, which performs semantic search across all markdown files in the workspace. This allows agents to find relevant entries even when exact keywords aren't present. QMD also does hybrid search, combining keyword and semantic approaches for both precision and recall.

OpenClaw has a fast path through MCPorter that keeps the QMD process warm in memory, reducing search times to 1-2 seconds instead of 9-25 seconds when cold starting each time.

This fast path was completely broken with three bugs in the same file:

  • The gateway was calling tool names that don't exist. QMD's MCP server exposes one tool called query, but the gateway was calling deep_search, search, etc. Every call returned exit code 128.
  • Wrong argument format. The gateway passed a flat string, but the tool expects a searches array with typed sub-queries for keyword vs semantic vs hybrid search.
  • Singular vs plural mismatch. The gateway passed collection: "name" but the tool expects collections: ["name"].

Every parameter was wrong: tool name, argument structure, and field name. The fix was straightforward once identified, and a pull request is available for anyone running QMD through MCPorter.

Ad

The silent failure meant every call fell back to the slower CLI path, but functionality remained, just with significantly degraded performance that went unnoticed for weeks.

📖 Read the full source: r/openclaw

Ad

👀 See Also