Semantic Memory Search - 语义记忆搜索
在 OpenClaw 现有 markdown 记忆文件之上添加向量驱动的语义搜索,用含义而非关键词找到过去的记忆。
openclawai-agentsmemorysearchvector
Semantic Memory Search(语义记忆搜索)
在 OpenClaw 现有 markdown 记忆文件之上添加向量驱动的语义搜索,用含义而非关键词找到过去的记忆。
解决什么问题
OpenClaw 的记忆系统将所有内容存储为 markdown 文件 — 但随着记忆增长,找到上周二的那个决策变得不可能。没有搜索,只有滚动文件。
功能特点
- 单命令索引:将所有 OpenClaw markdown 记忆文件索引到向量数据库(Milvus)
- 语义搜索:用含义搜索,如”我们选了什么缓存方案?“能找到相关内容,即使没有”缓存”这个词
- 混合搜索:向量搜索 + BM25 全文搜索 + RRF 重排
- SHA-256 内容哈希:未更改的文件永不重新嵌入,零浪费
- 文件监视器:记忆文件变化时自动重新索引
- 任何嵌入提供商:OpenAI、Google、Voyage、Ollama 或完全本地(无需 API Key)
如何设置
第一步:安装 memsearch
pip install memsearch
第二步:运行配置向导
memsearch config init
第三步:索引记忆目录
memsearch index ~/path/to/your/memory/
第四步:语义搜索
memsearch search "what caching solution did we pick?"
第五步:实时同步
启动文件监视器 — 每次文件变化自动索引:
memsearch watch ~/path/to/your/memory/
第六步:完全本地设置(无 API Key)
pip install "memsearch[local]"
memsearch config set embedding.provider local
memsearch index ~/path/to/your/memory/
成本估算
| 组件 | 成本 |
|---|---|
| memsearch | 免费(开源) |
| Milvus(本地) | 免费 |
| OpenAI 嵌入 | $0.0001/1K tokens |
关键洞察
- Markdown 保持事实来源:向量索引只是派生缓存,随时可以重建
- 智能去重节省金钱:每个 chunk 由 SHA-256 内容哈希标识,重新运行只嵌入新或更改的内容
- 混合搜索优于纯向量搜索:结合语义相似性和关键词匹配
局限性与适用条件
适用场景:
- 记忆文件增长后需要搜索
- 想用自然语言查询而非 grep
- 需要语义匹配而非精确匹配
不适用场景:
- 记忆量少(手动搜索足够)
- 完全离线环境(本地嵌入需要配置)
局限性:
- 需要维护向量数据库
- 嵌入成本随记忆量增长
- 初始索引需要时间
相关链接
- memsearch GitHub ⚠️ 链接需核实
- memsearch 文档 ⚠️ 链接需核实
- Milvus 向量数据库