--- title: "Semantic Memory Search" type: source tags: [openclaw, memory, vector-search, milvus] date: 2026-04-16 --- ## Source File - [[raw/Agent/usecases/semantic-memory-search.md]] ## Summary - 核心主题:为 OpenClaw Markdown 记忆文件叠加向量语义搜索能力 - 问题域:OpenClaw 记忆以纯 Markdown 存储,缺乏语义搜索;grep 只能关键字匹配,无法语义匹配 - 方法/机制:memsearch(基于 Milvus)提供混合搜索(dense vectors + BM25 + RRF reranking);SHA-256 内容哈希实现增量索引;支持本地化(无需 API key) - 结论/价值:用自然语言提问即可找到相关记忆,无需精确关键词;Markdown 始终为唯一真相源 ## Key Claims - 混合搜索(语义相似度 + BM25 关键词 + RRF 融合)优于纯向量搜索 - SHA-256 内容哈希保证只对新增或变更内容重新 Embedding,零浪费 - 文件监视器自动增量索引,索引始终保持最新 - 支持任意 Embedding 提供商(OpenAI/Google/Voyager/Ollama/本地) - Markdown 为唯一真相源,向量索引仅为衍生缓存,可随时重建 ## Key Quotes > "Your markdown files are never modified. The vector index is just a derived cache — you can rebuild it anytime with memsearch index." ## Key Concepts - [[语义搜索]]:通过向量表示理解语义而非字面匹配,实现"按意思查找" - [[混合搜索]]:Dense vector(语义)+ BM25(关键词)+ RRF(Reciprocal Rank Fusion 融合)三层检索 - [[增量索引]]:基于内容哈希(SHA-256)仅对变化文件重新 Embedding - [[向量数据库]]:Milvus,开源分布式向量数据库,memsearch 后端 ## Key Entities - [[memsearch]]:Zilliz 开源 Python CLI/库,为 OpenClaw 记忆提供语义搜索能力 - [[Milvus]]:memsearch 使用的向量数据库后端 - [[OpenClaw]]:记忆文件来源,Markdown 为源,memsearch 在其上构建搜索层 ## Connections - [[Personal-Knowledge-Base-RAG]] ← 类似架构 ← [[Semantic-Memory-Search]](均叠加向量搜索层) - [[QMD]] ← 替代方案 ← [[Semantic-Memory-Search]](均为 Markdown 提供搜索能力,但 QMD 为 BM25,memsearch 为向量语义) - [[Memory-in-AI-Agent]] ← 相关 ← [[Semantic-Memory-Search]] ## Contradictions - 与 [[QMD]]:QMD 是 BM25 关键词搜索,memsearch 是向量语义搜索;两者可互补而非互斥