资讯详情

claude-mem:基于MCP的Claude Code跨会话持久记忆方案

📅 2026/10/9 8:44:55 | 华诺云谱 👁 阅读
claude-mem:基于MCP的Claude Code跨会话持久记忆方案
如果你每天都在用 Claude Code 干实际活大概率有过这种感觉昨天跟它花两个小时讨论定的接口方案、踩坑结论、目录约定今天新开一个会话它全忘了。你只能把聊天记录翻出来或者重新讲一遍。claude-mem 就是冲着这个问题去的——它是一个基于 MCPModel Context Protocol的持久记忆服务专门给 Claude Code 这类 AI 编程助手补上“跨会话记忆”这块短板。这篇文章我会从安装配置、记忆原理、日常用法到实际踩过的坑完完整整过一遍适合所有正在用 Claude Code 写代码、并且被“失忆”折磨过的人。1. 先说痛点Claude Code 的“每天失忆”是怎么拖慢开发的1.1 上下文归零不是小事Claude Code 每次会话都是独立的。你在这个会话里建立的约定、摸清的依赖关系、讨论过的架构取舍会话一结束就归零。表面上只是“重新描述一下需求”的成本实际远不止你要重新交代项目背景、重新解释你昨天已经说过的约束、甚至重新踩一遍昨天刚绕开的坑。我统计过自己一周的开发记录真正写代码的时间大概只有四成剩下六成里一大半都花在“让模型重新进入状态”上。很多人的第一反应是手动复制粘贴。把上次的关键对话丢回上下文窗口里让 Claude 重新读一遍。这确实能干活但有两个问题一是上下文窗口是有限的你把旧对话塞进去留给新代码的空间就少了二是旧对话里真正有价值的信息可能就三句话但你连带着把十页无关讨论都塞了进去反而干扰了当前任务的判断。这个方案治标不治本。1.2 CLAUDE.md 能兜底但太“手动”Claude Code 本身也有记忆机制最典型的就是项目里的 CLAUDE.md 文件。你手动把项目约定写进去每次会话启动时它会被自动加载。这玩意有用但本质上是一个“静态手册”——它的信息更新完全靠你自觉。开发到一半发现某个约定过时了你大概率不会停下来改文档忙起来甚至想不起来写。而且 CLAUDE.md 写得太长也不行启动加载会占用大量上下文 token最终变成一个又被塞满、又没人维护的垃圾桶。另外 CLAUDE.md 能承载的信息形态很有限。你很难在里面写清楚“哪个模块的历史包袱是什么”“上个月调研过什么方案、为什么否了”“上次排查某个诡异 bug 的完整链路是什么”。这些动态知识才是跨会话记忆最有价值的部分恰恰是静态文档最不擅长记录的部分。1.3 claude-mem 的思路把会话沉淀成可检索记忆claude-mem 的核心思路和我上面说的“全塞回去”完全不同它不做全量上下文注入而是把每个会话的原始文本保存下来再从中提炼出结构化的“记忆条目”存到本地。以后 Claude 遇到新任务时先去记忆库里检索相关条目只把命中的少数几条注入上下文。说白了它干的活是“帮你记笔记 需要的时候翻笔记本”而不是“每次开会前把上个月的会议录像从头到尾放一遍”。这个思路解决了我前面说的两个痛点记忆是有选择性的不会无脑膨胀同时记忆是不断积累的不需要你手动维护文档。我实际用下来的感受是它更像一个“项目第二大脑”而不只是一个缓存工具。下面我从安装开始一步步讲清楚。2. 装好并跑通 claude-memMCP 接入的完整操作2.1 前置条件先说清楚环境要求。claude-mem 是一个 MCP server所以前提是你正在用的工具支持 MCP。Claude Code 原生支持Cursor、Windsurf 这类编辑器也认 MCP 配置。基础环境上Node.js 版本建议 20 以上因为 claude-mem 是用 TypeScript 写的太老的 Node 跑不起来。这里我踩过一次机器上的 Node 还是 16npx 启动直接报语法错误当时还以为是包坏了一查是版本问题。还有一点容易被忽略记忆提炼这一步需要调用大模型接口来对会话内容做总结摘要所以你得准备好一个有权限调用 Anthropic 模型的 API Key。如果 key 没配好你会发现 transcripts 目录一直在长但 memory 目录是空的——这是判断“是不是 key 有问题”最直接的信号。2.2 两种接入方式对比接入 MCP 的方式主要有两种我建议按场景选。一种是项目级配置在项目根目录下建一个.mcp.json内容如下{ mcpServers: { claude-mem: { command: npx, args: [claude-mem], env: { ANTHROPIC_API_KEY: 你的key } } } }这样配置的优点是只对当前项目生效如果你只在某一个仓库里需要记忆功能就不会污染其他项目缺点是每个要用到记忆的项目都得配一遍。另一种是用户级配置在终端里直接执行命令claude mcp add claude-mem -- npx claude-mem这会把 claude-mem 注册到你当前用户的所有 Claude Code 会话里全局生效。我个人的习惯是用户级装一个然后在项目级按需调整环境变量。原因是记忆这东西往往是跨项目的——比如你对某个语言框架的个人偏好、常用的代码风格这些在哪个项目里都用得上。全局配置能让你新开一个仓库时不需要重新想起来“哦对我还没配记忆”。2.3 验证是否生效装完别急着干活先验证。在 Claude Code 里输入/mcp正常的话能看到 claude-mem 的状态是 connected。然后看本地目录是否生成ls -la ~/.claude-mem首次跑通后这个目录里通常会出现 transcript、memory、events 等子目录。看到这些目录基本就可以确定服务在干活了。如果/mcp里显示的是 failed 或 error不要慌多半是环境变量或 Node 版本问题按上面说的一步步排查。2.4 需要理解的数据目录这里我建议花一分钟搞懂目录结构因为后面排查问题全靠它。按当前版本的典型布局核心是两块一是 transcript 目录存放每次会话的原始记录按日期组织二是 memory 目录存放提炼出来的记忆条目每条是一个独立的 markdown 文件。你甚至可以不去提问直接打开 memory 目录看它到底记住了什么这比任何文档都直观。我经常在每周五花五分钟扫一眼 memory 目录看这一周 claude-mem 到底沉淀了什么。有时候会发现它记住了我根本没意识到的团队约定有时候会发现它把两条本该合并的拆得七零八落。定期肉眼检查记忆库是保证记忆质量最笨但最有效的手段。3. 记忆的完整生命周期从会话结束到下次检索命中3.1 第一步原文留档claude-mem 做的第一件事是把整个会话过程完整保存下来。这里说的“完整”包括你输入的内容、Claude 的回复、代码块、报错信息都会以 markdown 形式落到 transcript 目录。这一步的价值平时看不出来但当你需要回溯“某次讨论为什么最后定了 A 方案而不是 B 方案”时有原文可查比靠脑子里模糊的印象靠谱得多。我自己的经验是一旦开启 claude-mem就不要轻易删 transcript 目录。它占不了多少空间但关键时刻能救命。有一次客户线上出了个只在特定数据分布下才会触发的 bug我翻了半天代码没头绪最后是在 transcript 里搜关键词找到一周前跟 Claude 讨论类似数据特征时的完整分析链路直接定位到问题。3.2 第二步提炼记忆光存档还不够一堆原文躺在那里检索成本太高。所以 claude-mem 在会话结束后会做一次“提炼”把 transcript 里值得长期保留的信息抽出来写成结构化的记忆条目。这也是为什么需要 API Key——提炼动作本质上还是调大模型做总结不是简单的规则匹配。提炼出来的记忆条目通常带几个关键属性记录的是什么内容、发生在什么时间、属于哪个项目范围。我理解 claude-mem 会把记忆做类型上的分类比如偏好、决策、约定、知识点、任务状态。这个分类很重要因为不同类型的记忆在后续检索时的权重是不一样的。比如“约定”类的记忆在代码评审场景里优先级很高“任务状态”类的过两周可能就不重要了。这里有个我后来才意识到的细节提炼不是什么都记。它更倾向记录有明确信息量的内容比如“为什么这么做”“最后选了哪个方案”“哪些方向已经排除了”。普通的过程性对话比如“试一下这个写法”“报错了再调调”不会变成长期记忆。所以如果你希望某个信息被长期记住最好在对话里明确说清楚它的结论和价值而不是让它淹没在大量尝试性对话里。3.3 第三步去重与归档记忆库用久了必然产生重复。同一个约定可能在不同会话里被反复提及同一个决策可能被多次总结。claude-mem 在写入新记忆时会做相似度检查如果发现和已有记忆高度相似会做合并或标记处理避免记忆库变成同一句话的复制粘贴现场。但别指望去重是完美的。我实测下来如果两条记忆用了完全不同的表述描述同一件事它大概率还是当成两条并存。比如一条写的是“日志统一走 lib/logger”另一条写的是“所有日志必须经过 logging 模块禁止直接 console.log”这两条其实是一回事但字面差异太大去重算法认不出来。所以定期人工清理还是有必要的后面讲维护时会细说。3.4 第四步按需召回整个生命周期里最关键的一步是“召回”。当 Claude 在新会话里遇到可能与历史记忆相关的任务时它会调用 claude-mem 提供的 MCP 工具去检索而不是把整个记忆库都塞进上下文。检索结果会被评分排序一般综合考虑相关性和时间两个维度高度相关的老记忆会排在不太相关的新记忆前面。这一步的好处是上下文开销是可控的。你不需要担心记的东西越多每次会话越慢。因为每次真正注入上下文的只有少数几条命中结果其余都安安静静躺在磁盘上。我用了一个多月记忆库里大概有几百条记忆日常会话的上下文开销几乎没有可感知的变化。4. 实战中的使用姿势怎么“教”它记以及怎么问4.1 主动记忆一句话的事很多人把 claude-mem 当被动工具用等它自己提炼。但它的完成形态其实是“你主动告诉它什么值得记”。在对话里直接说一句“记住本项目所有数据库表名统一小写下划线风格不要用驼峰”这条约束就会被捕捉为一条高优先级记忆。比我之前习惯了手动往 CLAUDE.md 里写这个成本低太多了。我总结了一个经验主动记忆适合记录四类内容。第一是硬性约定比如命名规范、目录结构、禁止事项第二是正在推进的决策比如“支付模块重构方案已经确定分三阶段上线”第三是已经排除的路线比如“不要用 XX 方案实测性能不达标”这能防止下次又绕回去第四是任务状态比如“目前卡在 CI 配置等待运维提供权限”。这四类信息在跨会话协作时价值最高值得主动交代。4.2 被动记忆与自动提取如果你不主动说“记住”甚至没意识到该记什么claude-mem 的自动提炼也能兜底。会话结束后它在后台跑一轮把靠谱的信息沉淀下来。我实测的体验是自动提取的质量跟对话本身的信息密度强相关如果你全程跟 Claude 讨论得非常零碎像是“这里改一下”“报错了”“再看下”它提炼出来的记忆也会比较水如果对话里有清晰的方案对比、明确的结论、完整的决策理由提炼出来的记忆就非常有价值。所以不要指望自动提炼能拯救一场混乱的对话。真正有效的做法是在收尾阶段主动梳理一遍。我现在养成一个习惯每次结束一个开发阶段前会跟 Claude 说一句“把这次讨论的最终结论整理成几条要点方便下次继续”。这样既能让本次会话得到一个清晰收束也给自动提炼提供了高质量素材。4.3 查询的几种方式记忆存进去了怎么用几种情况我都试过。最简单的是直接问 Claude“我们之前有没有讨论过日志模块的改造”它会自己去检索并回答你不需要指定任何工具名。这是最自然的用法适合大多数场景。更精确的用法是让 Claude 用 claude-mem 提供的检索工具主动拉取相关记忆比如“查一下关于缓存策略的过往决策特别是涉及 Redis 的那几条”。检索工具返回的是结构化条目Claude 可以基于这些条目做进一步推理。我理解这种方式适合你明确知道“肯定有相关历史只是不确定具体内容”的场景。还有一种是我后来才习惯的把记忆查询嵌入到任务描述里。比如写需求时直接说“按我们之前定的错误码规范设计新接口的错误返回”这句话等于同时完成了需求下发和历史记忆检索触发。Claude 发现“错误码规范”有命中记录就会把相关记忆调出来作为参考。这比事后补救高效得多。4.4 记忆的日常维护记忆库跟代码库一样需要定期维护。我建议每周做三件事一是扫一眼 memory 目录里新增了哪些条目看看有没有明显错误或过时的内容二是看到重复条目就手动合并或删除三是如果项目方向有重大变化比如整体迁移框架把已经被推翻的旧记忆清掉一批免得以后检索出过时信息误导决策。claude-mem 对删除操作是开放的。我通常直接用文件操作把对应的记忆文件删掉或者在对话里请 Claude 删除相关记忆条目。这里有个注意点删除记忆不会找回已经丢失的信息所以删除前确认一下自己是真的不需要了。宁可先保留也不要手滑删掉以后可能会用到的决策记录。5. 我实测踩过的坑配置、重复、膨胀、误记5.1 MCP 配置位置混乱导致没生效这个坑大概有八成新人都会踩。Claude Code 的 MCP 配置可以放在多个位置项目级.mcp.json、用户级全局配置、还有一些老的配置文件路径。如果你同时存在多份配置生效优先级会让人很困惑。我遇到过的情况是在项目里新建了.mcp.json但 Claude Code 实际读的是用户级注册的旧配置导致项目里新增的环境变量一直不生效。排查方式也很笨但有效用/mcp查看当前实际加载的配置以及用claude mcp list列出所有注册记录确认到底哪份配置在起作用。如果发现项目级想覆盖用户级但用户级注册在前相关的环境变量里就可能有冲突。5.2 npx 拉包慢与版本漂移用 npx 启动 claude-mem 很方便但代价是每次冷启动都要检查并拉取最新包。网络慢的时候Claude Code 启动会明显变久甚至看起来像卡死了。这个问题在 CI 或频繁切换项目时更明显。我后来的做法是先本地安装一次把 MCP 配置改成指向本地安装的二进制路径启动速度会快很多。另一个 npx 的隐患是版本漂移。npx 默认会拉最新版如果 claude-mem 发了新版本且配置格式有变化你可能没注意到就切换了。我更建议在配置里锁定具体版本号比如claude-mem0.7.4这种写法避免“昨天还好好的今天突然行为不一样”的情况。5.3 重复记忆如何产生如何清理重复是记忆库的通病。我遇到最多的重复来源有三个同一件事在不同会话里被反复讨论、自动提炼和主动记忆同时命中同一条信息、以及去重算法对同义表述无能为力。重复记忆的直接危害不是占空间而是检索时多条几乎相同的条目同时被注入上下文白白占用 token。清理重复我没有特别花哨的办法就是定期去 memory 目录里 grep 关键词。比如搜“日志”把表述不同但语义相同的几条合并成一条删掉其余。这个频率不需要太高两周一次就够。我实际感受是保持记忆库精简比无脑堆积重要得多因为最终注入上下文的条件是“相关”而不是“数量”。5.4 上下文膨胀怎么控制虽然 claude-mem 的设计是“按需召回”但如果你配置的召回数量过大或者记忆条目本身写得太长上下文膨胀依然会发生。我一开始把单次召回上限调得比较高结果发现 Claude 每次处理任务前都要先“读”一堆背景记忆反而拖慢了响应。这里我的建议是优先保证记忆条目本身精炼。主动记的时候一句话能说清的事不要写三段。其次如果某个项目的历史记忆特别多可以在配置里调低单次召回条数让“泛泛相关”的记忆不被加载真正相关的记忆才进入上下文。小马拉大车的道理在 AI 编程里同样成立。5.5 敏感信息的处理这是我最想提醒的一点。claude-mem 会把整个会话原文都存到本地磁盘包括你可能粘贴过的密钥、Token、内网地址等敏感信息。如果你开发的项目涉及生产环境凭据这些内容会长期留在 transcript 目录里。虽然它是本地存储不联网就相对安全但一旦你的机器被其他人使用、或者你把项目目录同步到云端磁盘这些信息就可能泄露。我的处理策略是涉及密钥的场景我一般不放进对话里或者明确要求 Claude 不要复述敏感内容同时利用 claude-mem 的忽略机制把包含敏感信息的会话从记忆处理中排除。这里也提醒你如果你不打算长期保留某个会话的原文最好先确认删除的方式是否彻底。6. 进阶玩法项目级隔离、团队同步与自定义目录6.1 项目级与全局记忆的边界默认情况下记忆是全局共享的全局配置的 claude-mem 会为所有项目积累记忆。好处是通用偏好跨项目可用坏处是项目 A 的架构决策可能会被错误地应用到项目 B。我建议一开始就明确边界涉及个人编码风格、语言偏好、习惯性做法这类通用信息放在全局记忆涉及某个仓库的架构选择、代码结构、技术栈细节只在项目级会话里记录并利用项目级配置或标签做隔离。如果你同时维护好几个风格完全不同的项目这个边界如果不划清楚Claude 很容易把 A 项目的约定带到 B 项目里。我在一个用微服务的仓库和一个单体仓库之间切换时就发现它把微服务的部署理念错误套到单体代码上根源就是记忆库里两类项目知识混在一起。6.2 忽略规则与隐私边界claude-mem 支持类似 .gitignore 风格的忽略规则你可以指定某些路径、某些模式的会话内容不被记录和提炼。这不仅是隐私需要也是记忆质量控制手段。比如依赖更新日志、自动化脚本产生的大量重复输出这些内容记下来只会稀释记忆库的质量不如直接忽略。我实际使用的配置里会对包含密钥关键词的目录、临时实验目录、以及一些自动化流水线产生的会话做忽略处理。这样可以保证所有进入记忆库的信息默认是“值得未来回顾”的而不是为了全面而全面。6.3 团队协作与 Git 同步记忆的另一个价值是团队共享。如果你和同事共用一个仓库可以把记忆库的关键目录纳入版本管理或通过 dotfiles 同步让大家在同一项目里共享“项目级记忆”。这样新同事加入时不需要从头翻文档Claude 会基于团队沉淀的共同记忆工作给出的建议从一开始就更贴合项目实际。但我会提醒一个边界全局级包含个人偏好的记忆不要盲目同步给团队。个人喜好未必是团队规范同步后反而可能让不同成员维护同一个记忆库时产生冲突。我的做法是团队只同步项目级记忆个人级记忆留在本机。6.4 和其他记忆方案的组合最后聊聊 claude-mem 与 CLAUDE.md 的搭配。有人觉得既然有了 claude-memCLAUDE.md 就可以不写了我不完全同意。CLAUDE.md 适合放那些“任何会话都必须知道、且长期不变”的基础约束比如项目简介、目录结构、构建命令而 claude-mem 适合放那些“不一定每次用到但用了就很有价值”的动态知识比如历史决策、踩坑记录、方案背调。两者不冲突反而是互补关系。我现在的固定组合是CLAUDE.md 只写最稳定的一页纸动态知识全交给 claude-mem每周抽时间去 memory 目录做一次清洗。这套组合跑了一个多月跨会话衔接顺畅了很多最明显的变化是以前周一上午都要花大半小时回忆上周进展现在新会话一开Claude 直接能接上上周的上下文我只需要补充当天的新目标就行。最后分享一个小技巧会话结束时不要直接关掉终端花十秒钟说一句“把这次的关键结论记录到记忆里”然后再退出。这个习惯的投入产出比极高——它让自动提炼的质量明显上了一个台阶也让下一次会话启动时的“接续感”强了很多。如果你也被 Claude Code 的失忆困扰我建议你今晚就装上试一轮先用三天你大概就回不去了。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑