---
title: "Semantic Memory Search"
type: source
tags: []
date: 2026-04-17
---

## Source File
- [[raw/Agent/usecases/semantic-memory-search.md]]

## Summary
- 核心主题：为 OpenClaw 的 markdown 内存系统添加向量语义搜索能力
- 问题域：OpenClaw 内存文件无法按语义搜索，仅支持关键词匹配和全文加载
- 方法/机制：使用 memsearch 库 + Milvus 向量数据库实现语义搜索，结合 BM25 全文搜索和密集向量，通过 RRF 排序reranking
- 结论/价值：可以通过自然语义"我们选了什么缓存方案？"找到相关内容，无需关键词匹配

## Key Claims
- OpenClaw 的内存以 markdown 文件存储，便于移植和人类阅读，但无搜索功能
- 语义搜索通过向量嵌入实现，"what caching solution did we pick?"能找到相关内容，即使不含"caching"一词
- SHA-256 内容哈希确保未更改文件永不重新嵌入，零 API 浪费
- 混合搜索结合语义相似度（密集向量）与关键词匹配（BM25），通过倒数排名融合（RRF）reranking

## Key Quotes
> "Index all your OpenClaw markdown memory files into a vector database (Milvus) with a single command" — memsearch 核心功能说明

> "SHA-256 content hashing means unchanged files are never re-embedded — zero wasted API calls" — 成本优化机制

> "Hybrid search (dense vectors + BM25 full-text) with RRF reranking for best results" — 搜索质量保障

## Key Concepts
- [[语义搜索]]：通过向量嵌入实现按语义相似度而非关键词匹配搜索
- [[向量嵌入]]：将文本转换为数值向量，用于语义相似度计算
- [[BM25]]：基于关键词的全文搜索算法
- [[RRF（Reranking）]]：倒数排名融合，将多路搜索结果合并排序

## Key Entities
- [[memsearch]]：GitHub 开源项目，Zilliz Tech 开发，提供向量搜索 CLI/库
- [[Milvus]]：开源向量数据库，memsearch 的后端存储
- [[OpenClaw]]：AI Agent 管理工具，其内存系统触发此需求

## Connections
- [[memsearch]] ← powers ← [[语义搜索]]
- [[Milvus]] ← stores ← [[向量嵌入]]
- [[OpenClaw]] ← uses ← [[Semantic-Memory-Search]]
- [[语义搜索]] ← combines ← [[向量嵌入]]
- [[语义搜索]] ← combines ← [[BM25]]

## Contradictions
- 与 [[Second-Brain]] 冲突：
  - 冲突点：两者都解决"笔记搜索"需求，但方案不同
  - 当前观点：memsearch 通过向量搜索实现语义检索
  - 对方观点：Second-Brain 通过 Next.js 搜索界面实现检索，各有优势