语义记忆搜索
OpenClaw 内置的记忆系统将所有内容存储为 markdown 文件——但随着记忆在数周和数月内增长,找到上周二做的那个决定变得不可能。没有搜索,只能滚动翻阅文件。
这个用例使用 memsearch 在 OpenClaw 现有的 markdown 记忆文件上添加了向量驱动的语义搜索,这样你可以通过含义而不仅仅是关键词立即找到任何过去的记忆。
功能概述
- 用一条命令将所有 OpenClaw markdown 记忆文件索引到向量数据库(Milvus)
- 按含义搜索:"我们选择了什么缓存方案?" 即使没有出现"缓存"这个词也能找到相关记忆
- 混合搜索(密集向量 + BM25 全文),使用 RRF 重新排序以获得最佳结果
- SHA-256 内容哈希意味着未更改的文件永远不会被重新嵌入——零浪费的 API 调用
- 文件监视器会在记忆文件更改时自动重新索引,所以索引始终是最新的
- 兼容任何嵌入提供商:OpenAI、Google、Voyage、Ollama,或完全本地化(无需 API 密钥)
痛点
OpenClaw 的记忆存储为纯 markdown 文件。这对于可移植性和人类可读性很好,但它没有搜索功能。随着你的记忆增长,你要么必须在文件中 grep(仅限关键词,错过语义匹配),要么将整个文件加载到上下文中(浪费无关内容的 tokens)。你需要一种方法问"我们关于 X 做了什么决定?"并获得完全相关的片段,无论措辞如何。
需要的技能
- 不需要 OpenClaw 技能——memsearch 是一个独立的 Python CLI/库
- Python 3.10+ 及 pip 或 uv
如何设置
- 安装 memsearch:
bash
pip install memsearch- 运行交互式配置向导:
bash
memsearch config init- 索引你的 OpenClaw 记忆目录:
bash
memsearch index ~/path/to/your/memory/- 按含义搜索你的记忆:
bash
memsearch search "我们选择了什么缓存方案?"- 要实时同步,启动文件监视器——它在每个文件更改时自动索引:
bash
memsearch watch ~/path/to/your/memory/- 要进行完全本地化设置(无需 API 密钥),安装本地嵌入提供商:
bash
pip install "memsearch[local]"
memsearch config set embedding.provider local
memsearch index ~/path/to/your/memory/关键洞察
- Markdown 仍是事实来源。 向量索引只是一个派生缓存——你可以随时用
memsearch index重建它。你的记忆文件永远不会被修改。 - 智能去重省钱。 每个块由 SHA-256 内容哈希标识。重新运行
index只嵌入新的或更改的内容,所以你可以随意经常运行它,而不会浪费嵌入 API 调用。 - 混合搜索优于纯向量搜索。 通过互惠排名融合将语义相似性(密集向量)与关键词匹配(BM25)相结合,可以捕获基于含义和精确匹配的查询。
相关链接
- memsearch GitHub — 驱动这个用例的库
- memsearch 文档 — 完整 CLI 参考、Python API 和架构
- OpenClaw — 启发了 memsearch 的记忆架构
- Milvus — 向量数据库后端