MemSearch 记忆层
为编码代理提供可跨平台检索的持久语义记忆。
- Star 数
- ★ 2.6k
- 最近更新
- 4 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 53/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API · Claude API
- 开始前需要
- 典型场景
- 使用 Claude Code 与 Codex CLI 的开发者,希望在切换工具后继续检索此前关于 Redis、部署或架构决策的讨论。
- 主要局限
- 默认 ONNX bge-m3 首次使用需通过网络下载约 558 MB 模型。
- 源码审查
- 53/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
MemSearch 是面向 AI 编码代理的持久化语义记忆层,支持 Claude Code、Codex CLI、OpenClaw 和 OpenCode 插件,并提供 CLI 与 Python API。它把对话摘要和其他记忆保存为可编辑、可版本控制的 Markdown 文件,再用 Milvus 建立可重建的影子索引。检索采用向量、BM25 稀疏检索和 RRF 重排序,并支持从命中块扩展到完整 Markdown 段落或原始会话记录。默认可使用本地单文件 Milvus Lite;也可配置 Zilliz Cloud 或自托管 Milvus。它适合希望在多个编码代理或自建应用之间保留项目上下文的团队,但需要接受本地文件存储、索引维护和嵌入模型的运行成本。
插件在会话结束后捕获对话轮次并生成摘要,追加到 .memsearch/memory/ 下按日期保存的 Markdown 文件;Claude Code 示例还会写入 <!-- session:UUID --> 锚点。memsearch index 对 Markdown 重新分块,使用 SHA-256 跳过未变化内容,为新内容生成嵌入并写入 Milvus。memsearch search 执行 BM25 与稠密向量混合检索,再以 RRF 重排序;memsearch expand <chunk_hash> 返回命中块附近的完整段落。需要更深上下文时,文档所示的第三层可通过 parse-transcript <session.jsonl> 读取原始对话;开发者也可用 MemSearch(paths=[...])、await mem.index() 和 await mem.search() 嵌入自己的 Python 代理。
- 使用 Claude Code 与 Codex CLI 的开发者,希望在切换工具后继续检索此前关于 Redis、部署或架构决策的讨论。
- 维护长期代码库的工程师,需要在修改模块前找回某个功能、配置或迁移方案的历史取舍。
- 构建 Python 自定义代理的开发者,需要通过
MemSearch为 Markdown 知识库加入索引和语义检索。 - 使用本地 Markdown 工作日志的个人或团队,希望文件仍可人工编辑、提交版本库,并让索引随改动更新。
- 需要用 Zilliz Cloud 或自托管 Milvus 为多用户环境配置专用后端的团队。
如何安装或部署这个 Agent?
运行环境要求 Python >=3.10。作为 CLI 安装并使用默认本地 ONNX 嵌入:
uv tool install "memsearch[onnx]"然后执行:
memsearch config init
memsearch index ./memory/默认嵌入为本地 CPU 上运行的 ONNX bge-m3,首次启动会从 HuggingFace Hub 下载约 558 MB 模型,不需要 API 密钥。若改用 OpenAI 嵌入,执行 memsearch config set embedding.provider openai,并提供 OPENAI_API_KEY。Codex CLI 插件可按文档执行:
git clone --depth 1 https://github.com/zilliztech/memsearch.git
bash memsearch/plugins/codex/scripts/install.sh
codex --yolo如何使用这个 Agent?
先把待检索 Markdown 放入目录并运行 memsearch index ./memory/。使用 memsearch search "Redis caching" 查询,或使用 memsearch search "auth flow" --top-k 10 --json-output 获取可供脚本处理的结果;对命中项运行 memsearch expand <chunk_hash> 查看完整段落。需要持续同步时运行 memsearch watch ./memory/。在 Python 中可创建 mem = MemSearch(paths=["./memory"]),调用 await mem.index(),再调用 await mem.search("Redis config", top_k=3)。安装 Codex CLI 插件后,可用 $memory-recall what did we discuss about deployment? 召回记忆。
这个 Agent 有哪些优点和局限?
- Markdown 是事实来源,内容可人工编辑和版本控制;Milvus 索引可重建。
- 同一后端覆盖 Claude Code、Codex CLI、OpenClaw 和 OpenCode,并且提供 CLI 与 Python
MemSearchAPI。 - 混合 BM25、稠密向量与 RRF 重排序,且支持 search → expand → transcript 的渐进式召回。
- SHA-256 内容哈希和文件监控可避免对未变更内容重复嵌入,并自动同步改动。
- 默认 ONNX bge-m3 首次使用需通过网络下载约 558 MB 模型。
- 默认 Milvus Lite 是单文件模式;多用户或团队专用实例需要配置 Zilliz Cloud 或 Docker 自托管 Milvus。
- 自动捕获依赖各平台插件及其 hooks;Codex CLI 文档要求以
codex --yolo启动以允许 ONNX 模型网络访问。 - 高级
PROJECT.md、USER.md维护和从记忆生成技能默认关闭,启用后还涉及模型、提供商和执行间隔配置。
这个 Agent 与同类方案有什么区别?
存储设计上,MemSearch 将 Markdown 作为可编辑的事实来源,将 Milvus 定位为可重建的影子索引;这不同于只把记忆保存在向量数据库中的方案。嵌入可选本地 ONNX、OpenAI、Ollama 等提供商,Milvus 后端可在 Milvus Lite、Zilliz Cloud 与自托管 Milvus 之间切换。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| MemSearch 记忆层 当前 | 53 · 缺口较多 | ★ 2.6k | 4 天前 | Python | Codex · Claude Code · OpenAI API · Claude API |
| Obsidian Mind | 79 · 表现良好 | ★ 4.7k | 21 天前 | TypeScript | Codex · Claude Code |
| Compartment | 76 · 表现良好 | ★ 582 | 1 天前 | Python | Codex · Claude Code |
| deja-vu | 75 · 表现良好 | ★ 875 | 4 天前 | Go | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:插件默认捕获对话并写入本地Markdown,但未明确说明权限最小化;技能安装需用户确认,但后台维护任务默认关闭;数据流透明性较好,README详细描述了捕获、索引、检索流程;敏感数据处理未明确说明加密或脱敏;依赖版本有范围但未提供漏洞扫描证据;外部影响包括网络下载模型和上传到云服务,但未明确提示;回滚机制仅提及技能候选可回滚,但记忆索引重建未明确;来源归属未明确说明。扣分原因:权限最小化、用户确认、敏感数据处理、依赖安全、外部影响、回滚、来源归属均证据不足或部分缺失。
证据显示:README与pyproject.toml一致,测试覆盖了分块逻辑,但未提供完整测试结果;依赖声明明确,但未验证可用性;失败消息未在文档中说明。扣分原因:失败消息证据不足。
证据显示:明确面向Agent用户和开发者,场景丰富;能力边界通过CLI/API和插件划分;触发方式明确(命令或自然语言);环境适配涵盖多种平台和部署模式。扣分原因:部分能力边界(如后台维护)未详细说明。
证据显示:信息架构清晰,有架构图;安装说明详细;命名稳定(memsearch);示例丰富;已知限制未明确列出;MIT许可证明确;版本号存在但无changelog;维护责任未明确。扣分原因:已知限制、版本变更日志、维护责任证据不足。
证据显示:输出为Markdown文件,可直接使用;边际价值高,提供跨平台记忆;成本效益好,本地ONNX免费。扣分原因:无。
证据显示:README中的声明部分有代码示例支持,但未提供独立验证;测试覆盖部分功能,但未提供外部佐证;事实与推断未明确区分。扣分原因:声明可追溯性、交叉验证、事实推断分离均证据不足。
- 插件默认捕获所有对话,可能包含敏感信息,用户应了解并配置存储位置。
- 后台维护任务和技能蒸馏默认关闭,但启用后可能自动修改文件,需用户明确授权。
- 依赖ONNX模型下载和云服务上传,存在网络依赖和潜在数据外泄风险。
- 未提供漏洞扫描或依赖安全审计证据,建议用户自行检查。
常见问题
必须使用 Zilliz Cloud 吗?
默认方案是否有 API 费用?
记忆数据存在哪里,能否人工修改?
.memsearch/memory/;Milvus 是派生索引。修改文件后可运行 memsearch index 或 memsearch watch 更新索引。