You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The bm-local provider spawns a new bm tool search-notes CLI subprocess per query. On the full LoCoMo run (1,982 queries), this produces 2,948ms mean latency vs Mem0's 229ms — because each call cold-starts Python, opens SQLite, runs the search, and exits.
Mem0's provider keeps a warm Memory() instance across all queries, which is a fairer comparison to how BM is actually used in production (persistent MCP server).
Proposal
Add a bm-mcp provider that:
Spawns bm mcp once via stdio transport at the start of the run
Sends search_notes tool calls over the MCP protocol
Keeps the connection warm for all queries
Tears down on cleanup
This matches real-world usage (OpenClaw plugin, Claude Desktop) and should bring latency to 200-400ms range.
The existing bm-local CLI provider should stay as-is — it's the most reproducible option (anyone with bm installed can run it).
Problem
The
bm-localprovider spawns a newbm tool search-notesCLI subprocess per query. On the full LoCoMo run (1,982 queries), this produces 2,948ms mean latency vs Mem0's 229ms — because each call cold-starts Python, opens SQLite, runs the search, and exits.Mem0's provider keeps a warm
Memory()instance across all queries, which is a fairer comparison to how BM is actually used in production (persistent MCP server).Proposal
Add a
bm-mcpprovider that:bm mcponce via stdio transport at the start of the runsearch_notestool calls over the MCP protocolThis matches real-world usage (OpenClaw plugin, Claude Desktop) and should bring latency to 200-400ms range.
The existing
bm-localCLI provider should stay as-is — it's the most reproducible option (anyone withbminstalled can run it).Benchmark evidence
Full LoCoMo run (
locomo-full-20260226T055634Z):