47 lines
3.5 KiB
Markdown
47 lines
3.5 KiB
Markdown
---
|
||
title: "Semantic Memory Search"
|
||
type: source
|
||
tags: [memory, semantic-search, vector-db, openclaw]
|
||
date: 2026-04-22
|
||
---
|
||
|
||
## Source File
|
||
- [[Agent/usecases/semantic-memory-search]]
|
||
|
||
## Summary(用中文描述)
|
||
- 核心主题:为 OpenClaw 的 Markdown 记忆文件添加向量语义搜索能力
|
||
- 问题域:OpenClaw 记忆以纯 Markdown 存储,随时间积累后无法检索,grep 只能关键词匹配,无法语义理解
|
||
- 方法/机制:使用 memsearch 库(Milvus 向量数据库)构建混合搜索(稠密向量 + BM25)配合 RRF 重排;SHA-256 内容哈希实现增量索引;文件监视器自动重建索引
|
||
- 结论/价值:用自然语言提问(如"我们选了哪个缓存方案?")即可找到相关内容,无需记忆精确措辞;支持本地模式无需 API Key
|
||
|
||
## Key Claims(用中文描述)
|
||
- OpenClaw 记忆库积累后,纯 Markdown 无法语义检索,用户需要通过含义而非关键词找到过去决策
|
||
- 混合搜索(稠密向量 + BM25)结合 RRF 重排,同时捕获语义相似性和关键词精确匹配,优于纯向量搜索
|
||
- SHA-256 内容哈希确保仅新内容或变更内容被嵌入,避免重复 API 调用,节省成本
|
||
- Markdown 文件是唯一真相,向量索引只是派生缓存,随时可通过 `memsearch index` 重建
|
||
|
||
## Key Quotes
|
||
> "Markdown stays the source of truth. The vector index is just a derived cache — you can rebuild it anytime with `memsearch index`. Your memory files are never modified." — 核心理念:原始文档不可变
|
||
> "Hybrid search beats pure vector search. Combining semantic similarity (dense vectors) with keyword matching (BM25) via Reciprocal Rank Fusion catches both meaning-based and exact-match queries." — 混合搜索的优越性
|
||
> "Smart dedup saves money. Each chunk is identified by a SHA-256 content hash. Re-running `index` only embeds new or changed content, so you can run it as often as you like without wasting embedding API calls." — 增量索引节省成本
|
||
|
||
## Key Concepts
|
||
- [[Semantic Memory Search]]:通过向量嵌入实现对记忆文件的语义搜索,而非仅关键词匹配
|
||
- [[Hybrid Search]]:结合稠密向量(语义相似性)和 BM25(关键词精确匹配)的混合检索策略
|
||
- [[Reciprocal Rank Fusion (RRF)]]:通过排名融合重排合并多个检索结果,提升搜索质量
|
||
- [[Content Hashing]]:使用 SHA-256 哈希识别内容块,仅对新增或变更内容重新嵌入
|
||
- [[File Watcher]]:监视记忆文件变化,自动触发增量重建索引,保持索引实时更新
|
||
|
||
## Key Entities
|
||
- [[memsearch]]:ZillizTech 开源的向量语义搜索 CLI/库,为 OpenClaw 记忆提供语义搜索能力,基于 Milvus 向量数据库
|
||
- [[Milvus]]:开源向量数据库后端,memsearch 的向量存储和检索引擎
|
||
- [[OpenClaw]]:多 Agent 框架,自带 Markdown 记忆系统,是本用例的上层应用框架
|
||
|
||
## Connections
|
||
- [[OpenClaw]] ← extends ← [[Semantic Memory Search]]:本用例在 OpenClaw 纯 Markdown 记忆之上叠加向量语义搜索层
|
||
- [[Knowledge-Base-RAG]] ← related_to ← [[Semantic Memory Search]]:两者都涉及向量 Embedding 检索,属于 RAG 技术栈的不同场景
|
||
- [[Second Brain]] ← related_to ← [[Semantic Memory Search]]:第二大脑的记忆持久化与语义检索能力相辅相成
|
||
|
||
## Contradictions
|
||
- 与 [[Knowledge-Base-RAG]] 无冲突,两者属同一技术栈的不同实现:Knowledge Base RAG 侧重 Telegram/Slack 投递 URL 并入库,本用例侧重现有 Markdown 文件的语义索引
|