Memsearch — Zilliz 开源统一 Agent 记忆层
来源: https://github.com/zilliztech/memsearch
日期: 2026-03-12(开源发布)
评分: ⭐⭐⭐⭐⭐ (5/5 — 与我们的项目高度相关,直接竞争/互补 lossless-claw + QMD)
官方文档: https://zilliztech.github.io/memsearch/
ClawHub 插件: https://clawhub.ai/plugins/memsearch
关联报告
本报告与以下报告形成对照:
- OpenClaw + QMD 记忆搜索引擎配置指南 — QMD 是另一个 Agent 记忆方案
- Claude Managed Agents 更新 — Anthropic 的 Dreaming/Outcomes 产品化方向
一句话版本
Zilliz(Milvus 背后的公司)开源了一个统一的跨平台 Agent 记忆系统——你的 Claude Code、OpenClaw、Codex 甚至私有的 Agent 都可以通过它共享同一份记忆。记忆以 Markdown 文件形式存储(人类可读、可 Git 版本管理),Milvus 在其上建立向量索引实现语义搜索。开箱即用,默认用本地 CPU 跑 embedding,不需要任何 API Key。
核心架构
设计哲学
Markdown 文件(源数据) → 扫描/分块 → SHA-256 去重 → Embed → Milvus(影子索引)
↓
↑ 搜索结果 ← RRF 重排序 ← BM25 稀疏 + Dense 向量混合搜索 ← 查询向量化 ←
核心原则: Markdown 是源数据,Milvus 只是派生/可重建的索引。复制 .md 文件就能迁移记忆,完全不锁定。
三层渐进式召回(Progressive Disclosure)
| 层级 | 操作 | 说明 |
|---|---|---|
| **Search** | 语义搜索 | 混合搜索返回 top-K 匹配摘要 |
| **Expand** | 展开上下文 | 根据 chunk hash 获取完整章节 |
| **Transcript** | 原始对话 | 钻取到原始 JSONL 对话记录 |
这是 memsearch 相比其他方案的独特优势——不是简单地把整篇文章塞进上下文,而是先搜摘要、再展开、最后才深入原文。
混合搜索
- Dense 向量 — 语义相似度(默认 ONNX bge-m3,也可用 OpenAI/Google 等)
- BM25 稀疏 — 关键词精确匹配
- RRF(Reciprocal Rank Fusion)— 在 Milvus 内部合并排序,k=60 默认
- 可选 Cross-encoder 重排序器
存储架构
| 模式 | milvus_uri | 适用场景 |
|---|---|---|
| Milvus Lite | `~/.memsearch/milvus.db` | 个人使用,零配置 |
| Milvus Server | `http://localhost:19530` | 多 Agent、团队环境 |
| Zilliz Cloud | 托管地址 | 生产环境(有免费版) |
三种模式使用同一套 API,无缝迁移。
OpenClaw Plugin(最相关)
安装: openclaw plugins install clawhub:memsearch
与内置 memory-core 的对比
| 维度 | memory-core(内置) | memsearch |
|---|---|---|
| 向量后端 | SQLite + sqlite-vec | Milvus(从嵌入式到分布式集群) |
| 搜索方式 | 仅 Dense 向量 | 混合:Dense + BM25 稀疏 + RRF |
| 存储格式 | SQLite 数据库(不透明) | 普通 .md 文件(人类可读,可 Git) |
| 多 Agent 隔离 | 共享数据库 | 每 Agent 独立目录 + Milvus collection |
| 渐进召回 | 单层 | 三层:搜索→展开→原文 |
| Embedding 模型 | 取决于配置 | 8 种可插拔(ONNX 默认,免费) |
| 数据可移植 | SQLite 锁定 | 复制 .md 文件,任意平台重建 |
| 跨平台 | 仅 OpenClaw | Claude Code + OpenClaw + Codex + OpenCode |
注册的工具
memory_search— 语义搜索memory_get— 获取具体内容memory_transcript— 获取原始对话记录
自动捕获机制
每个 Agent 对话结束时(agent_end hook),自动将本轮对话用 Haiku 摘要并追加到 {workspace}/.memsearch/memory/{date}.md。
冷启动
Agent 启动时(before_agent_start hook),自动注入最近的记忆作为上下文。
跨平台支持
| 平台 | 插件类型 | 安装方式 |
|---|---|---|
| **Claude Code** | Shell hooks + SKILL.md | Plugin marketplace |
| **OpenClaw** | TypeScript 原生插件 | `openclaw plugins install clawhub:memsearch` |
| **OpenCode** | TypeScript 插件 | `npm` + `opencode.json` |
| **Codex CLI** | Shell hooks | `install.sh` |
所有平台写入相同的 Markdown 格式,collection name 从项目目录路径派生。一个平台上的对话,在所有平台上都可搜索。
技术细节
Embedding 提供商(8 种)
| Provider | 安装方式 | 默认模型 |
|---|---|---|
| ONNX(默认) | `memsearch[onnx]` | bge-m3-onnx-int8(CPU,无 API Key) |
| OpenAI | `memsearch` | text-embedding-3-small |
| `memsearch[google]` | gemini-embedding-001 | |
| Voyage | `memsearch[voyage]` | voyage-3-lite |
| Jina | `memsearch[jina]` | jina-embeddings-v4 |
| Mistral | `memsearch[mistral]` | mistral-embed |
| Ollama | `memsearch[ollama]` | nomic-embed-text |
| Local | `memsearch[local]` | all-MiniLM-L6-v2 |
去重机制
SHA-256 内容哈希直接作为 Milvus 的主键。不需要额外的缓存层(没有 SQLite 侧库、没有 Redis、没有 .json 跟踪文件)。运行 memsearch index 重复执行在未变更的知识库上产生零 embedding API 调用。
分块策略
- 按标题分块:
#→######作为自然边界 - 大段按段落切分:超过 1500 字符时,在空白行处切分
- 重叠行:默认 2 行重叠保持上下文连续性
- 元数据:每个 chunk 携带 source 路径、heading、行号、SHA-256 hash
与 QMD 对比
| 维度 | memsearch | QMD |
|---|---|---|
| 开发者 | Zilliz(公司,持续维护) | tobi(个人项目) |
| 定位 | 统一 Agent 记忆层 | Markdown 搜索引擎 + MCP |
| 跨平台 | Claude Code + OpenClaw + Codex + OpenCode | 通用 MCP 协议 |
| 默认 embedding | ONNX bge-m3(~558MB) | 本地 GGUF 模型 |
| 向量数据库 | Milvus(从 Lite 到 Cloud) | SQLite + sqlite-vec |
| 搜索方式 | Dense + BM25 + RRF | BM25 + Dense + LLM rerank |
| OpenClaw 插件 | 原生 TS 插件 `kind: memory` | 需要单独配置 MCP |
| 许可证 | MIT | MIT |
实际应用场景
1. 跨 Agent 记忆共享 — Claude Code 修复了一个 bug,OpenClaw 的 researcher agent 下次启动时能回忆起这个上下文
2. 多 Agent 隔离 — 不同 Agent 的工作区有独立记忆目录和 Milvus collection
3. Audit 回溯 — 三层渐进式召回让你能从搜索结果追溯到原始对话 JSONL
4. 无 API Key 起步 — 默认 ONNX 模型本地运行,零外部依赖
5. 团队共享 — 连接同一个 Zilliz Cloud 集群,多个开发者的 Agent 共享项目记忆
与我们项目的关联
1. 直接竞争但也互补 — memsearch 的 OpenClaw 插件直接替换内置 memory-core,和我们的 QMD 方案定位重叠。但 memsearch 的跨平台能力和 Zilliz 的公司级维护是差异化优势。
2. 架构启发 — 他们的三层渐进式召回(Search → Expand → Transcript)正是我们 lossless-claw 的摘要 DAG + 扩展机制。这说明这个方向被独立验证了。
3. 值得关注 — 如果 Zilliz 持续投入,memsearch 可能成为 Agent 记忆层的标准方案。目前有 190+ PR/issue、8 个 open issues,社区活跃。
评分
| 维度 | 评分 | 说明 |
|---|---|---|
| 创新性 | ⭐⭐⭐⭐☆ | 架构设计的亮点是跨平台统一 + Markdown 源数据,但底层技术不新 |
| 实用性 | ⭐⭐⭐⭐⭐ | 安装即用,零配置,直接解决实际问题 |
| 文档质量 | ⭐⭐⭐⭐⭐ | MkDocs 文档极其完善,架构、对比、配置、FAQ 应有尽有 |
| 生态影响 | ⭐⭐⭐⭐☆ | Zilliz 背书,但还需观察能否超越 claude-mem/QMD 等先发者 |
| 与我们关联 | ⭐⭐⭐⭐⭐ | 直接竞争/互补,高度相关 |
综合:5/5 — 这是目前 Agent 记忆层领域最有"平台感"的开源方案,尤其跨平台记忆共享的设计非常有远见。