让Claude Code拥有永久记忆:memsearch插件3步安装与memory-recall技能实战指南
【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch
Claude Code 最大的痛点是"失忆":关闭会话后,昨天讨论的架构决策、修过的 Bug、定下的技术方案全部清零,每次都要重新解释背景。开源项目memsearch正是为 AI Agent(Claude Code、Codex 等)打造的持久化统一记忆层:它基于Markdown + Milvus实现语义记忆,把每次对话自动总结成按天归档的记忆文件,再建向量索引支持随时"回忆"。本文带你用3 步装好 memsearch 的 Claude Code 插件,并实战演示memory-recall 技能如何自动检索历史记忆——全程零 API Key、无需手动保存。
💡 为什么你的 Claude Code 需要永久记忆?
没有记忆插件时,Claude Code 把每个会话都当作全新开始:
周一:"给 /orders 接口加个 Redis 缓存,TTL 5 分钟" ✅ 完成周三:"怎么 /orders 还是慢?" ❌ Claude 完全忘了周一已经加过缓存,从头建议
装好 memsearch 插件后流程变成:插件在每轮对话结束后自动总结并写入记忆文件;当你问起历史问题,Claude 会自动检索过往会话,精准说出"我们之前用 selectinload 修了 N+1 查询"。
核心特性一览:
| 特性 | 说明 |
|---|---|
| 🧲 零干预捕获 | 对话自动总结归档,无需任何手动保存命令 |
| 🔍 语义回忆 | 密集向量 + BM25 关键词混合检索,精准命中历史片段 |
| 🧠 分叉子代理 | memory-recall 在隔离上下文中运行,不污染主对话 |
| 📄 透明存储 | 记忆就是普通.md文件,可读、可改、可提交 Git |
| 🔑 无需 API Key | 默认 ONNX bge-m3 本地嵌入模型,CPU 即可运行 |
🚀 3步安装 Claude Code 记忆插件
第 1 步:添加插件市场并安装
在 Claude Code 中输入两条命令即可:
/plugin marketplace add zilliztech/memsearch /plugin install memsearch第 2 步:重启 Claude Code
退出并重新打开 Claude Code,让插件的 Hooks 和 memory-recall 技能生效。会话启动时你会看到状态行:
[memsearch v0.2.9] embedding: onnx | milvus: ~/.memsearch/milvus.db | collection: ms_myproject_a1b2c3看到 collection 名称说明一切就绪。🎉
第 3 步:验证记忆捕获
正常聊几轮后退出,检查项目根目录下的记忆文件:
ls .memsearch/memory/ # 应看到按天命名的 .md 文件 cat .memsearch/memory/$(date +%Y-%m-%d).md每天一个 Markdown 文件,内容示例:
## Session 14:30 ### 14:30 - User asked about N+1 query performance in order-service - Agent identified selectinload as the fix and applied it to get_orders()⚠️首次使用小贴士:默认 ONNX bge-m3 模型(约 558 MB)首次运行会自动下载,若网络慢可设置
HF_ENDPOINT镜像或提前预热。详细配置见 docs/platforms/claude-code/installation.md。
🧠 memory-recall 技能实战
memsearch 的检索核心是memory-recall 技能(定义在 plugins/claude-code/skills/memory-recall/SKILL.md)。它采用三层渐进式检索,在分叉的子代理中独立运行:
- L1 搜索:
memsearch search返回最相关的 3~5 个记忆片段 - L2 展开:
memsearch expand拉取完整 Markdown 段落上下文 - L3 回溯:
memsearch transcript直接读取原始对话记录(可选)
子代理自主决定钻多深,只把提炼后的摘要返回主对话——中间搜索过程完全不可见,上下文窗口保持干净。
两种触发方式
方式一:手动调用(想主动查历史时)
/memory-recall what did we discuss about the auth refactor?方式二:自然提问(Claude 自动触发)
上周重构了 auth 模块,我们用的什么方案?实战演示——用户问:"/orders 接口昨天修过还是慢,当时做了什么?"背后子代理依次执行 L1 搜索(命中 0.82 分度的 N+1 修复片段)→ L2 展开完整段落,最终 Claude 返回:
昨天我们修复了 /orders 性能:用 selectinload 预加载 order_items(每页查询从 47 次降到 2 次)、给 order.user_id 加了索引、并加了 5 分钟 TTL 的 Redis 缓存。如果还慢,可能是缓存没命中,我来检查一下……
完整原理与对比分析见 docs/platforms/claude-code/memory-recall.md。
📦 记忆存储结构与进阶技巧
所有记忆都存放在项目内的.memsearch/memory/目录,Markdown 才是真理之源,Milvus 只是可随时重建的影子索引。这意味着:
- ✏️直接编辑:总结不准确?打开
.md文件改掉,watcher 会自动重新索引 - 🌱可移植:拷走
.memsearch/memory/到另一台机器,重建索引即可 - 🔀跨平台:同一份记忆可被 Codex、OpenClaw、OpenCode 等共用
提升检索质量的小技巧:
- 用具体词提问:"Redis caching" 远胜于 "我们上周搞的那个东西"
- 短提示词(<10 字符)不会触发记忆提示,属正常设计
- 切换过嵌入模型后检索变差?重建索引:
memsearch index .memsearch/memory/ --force
🔧 常见问题速查
| 症状 | 解决方案 |
|---|---|
状态行显示ERROR: KEY not set | 导出对应 API Key,或切回免费的onnx本地嵌入 |
| 首次会话卡住 | ONNX 模型在下载,可提前用 warmup 命令预下载 |
| 记忆不自动触发 | 手动/memory-recall测试;确认 memsearch 在 PATH 中 |
| 搜索无结果 | memsearch stats查看索引健康,必要时--force重建 |
更多诊断命令见 docs/platforms/claude-code/troubleshooting.md,插件全貌见 docs/platforms/claude-code/index.md。
🎯 总结
memsearch 用3 条命令就解决了 AI 编程 Agent 的"金鱼记忆"问题:自动捕获、语义回忆、Markdown 透明存储。更妙的是,你重复做过的工作流还能被蒸馏成可复用的Agent 技能(procedural memory 第三层记忆),并跨 Claude Code、Codex、DSH 等平台共享同一份记忆。现在就去给你的 Claude Code 装上"永久记忆"吧!
【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考