
用过 Claude 的人应该都有同感它很强但记性很差。你在一个会话里喂给它的所有上下文、项目背景、你的偏好只要会话一关全部清零。第二天想接着搞又得从头讲一遍。这个痛点在我持续用 Claude 做项目之后越来越明显直到我找到了 claude-mem 这个开源项目才算真正给 Claude 补上了“长期记忆”。它不是一个插件脚本而是一个基于 MCP 协议的记忆服务器能在对话结束后自动提炼关键信息、跨会话语义检索让 Claude 在下一次对话里主动“想起来”。今天这篇就把这个东西从原理到部署、再到实际使用的坑一次性讲透。1. claude-mem 是什么给 Claude 安上“长期记忆”1.1 为什么需要 claude-memAI 对话工具的“失忆症”我先说说自己遇到的具体场景。当时我在做一个个人博客系统技术方案、数据库设计、页面风格和一个 Claude 会话里聊得清清楚楚连 TODO 都列好了。结果第二天打开新会话问它“我们昨天说的那个博客项目进展到哪了”它回我一句“我们没有讨论过这个项目”。我当时就意识到大语言模型的上下文窗口再长也解决不了跨会话持久化的问题。这个问题的本质在于LLM 本质上是一个“无状态”的函数每次对话都是从一个新的起点开始推理。虽然 Anthropic 后来把上下文窗口拉得很大但那只是让你在单次会话里能塞更多内容不代表它能记住上一次会话的任何东西。对于普通用户来说忘记也就忘了重新说一遍就好但对开发者、研究者、写作者这种重度用户每次重述上下文意味着大量 token 浪费而且说得越多细节丢失得越严重——你不可能把昨天整段对话的每一个结论都原样复述出来。claude-mem 解决的就是这件事。它并不是去修改 Claude 本身的模型而是在 Claude 外部搭了一个持久化的存储层通过 MCP 协议跟 Claude 通信。对话结束后它会在后台自动分析这段对话提取出值得长期记住的信息存入本地的记忆库下一次新会话开始时它又能根据当前对话的语义把相关的记忆检索出来、注入给 Claude。用一句通俗的话说它给 Claude 装了一个“潜意识”。1.2 claude-mem 能做什么自动记忆、语义检索、时间回放我梳理了一下 claude-mem 的核心能力大概有四块。第一是自动记忆提取。它不需要你在对话里手动说“请记住这一点”。每次对话结束后claude-mem 会异步地调用一个大模型来分析对话记录把里面的事实陈述、用户偏好、项目决策、任务状态这类信息抽取出来整理成结构化的记忆条目。整个过程完全在后台运行不打断主对话也不消耗你当前会话的上下文配额。第二是语义检索与注入。这是记忆真正发挥作用的地方。新对话开始后Claude 会根据用户的提问调用 claude-mem 暴露出来的检索工具把问题转成向量去记忆库里做相似度搜索取回相关度最高的几条记忆然后把这些记忆作为额外上下文来辅助回答。也就是说Claude 不是被动地“查档案”而是主动地“回忆”。第三是记忆管理。你可以用claude-mem命令行工具随时查看、搜索、添加、删除记忆。比如claude-mem list列出所有记忆claude-mem search 关键词做一次本地检索claude-mem add 内容手动往记忆库里塞一条信息。这样就算自动提取漏了什么你也能手动补上。我还特别喜欢它的“时间旅行”功能可以回放指定时间段内的历史对话相当于给 AI 对话加了日志回溯。第四是灵活的本地存储。记忆不是存在云端某个黑盒里而是存在你自己指定的本地目录里默认是~/.claude-mem。你可以随时打开文件看它到底记住了什么也可以整体备份、迁移完全掌握数据主权。1.3 谁适合用开发者、重度用户、内容创作者如果你只是偶尔用 Claude 问几个生活小问题那 claude-mem 对你的价值不大因为问题之间没有连续性记不记得无所谓。但如果你是下面这几类人我强烈建议试试。开发者是最直接的受益者。我们和 Claude 聊代码方案、调 Bug、设计系统架构这些讨论有很强的连续性。跨会话维护项目上下文让 Claude 永远记得你选型时的理由、代码风格约定、哪些坑已经踩过了这种体验用一次就回不去。研究者和分析师也很有用。比如我每天让 Claude 帮我读论文、整理资料会把每次提炼的核心观点自动存下来。坚持几周后这个记忆库就变成了你自己的私人知识库Claude 能从前几周的对话里“想起”你之前的研究结论给我的感觉是它真的在变聪明而不是每次从零开始。内容创作者同样适用。写文章的人经常需要保持风格统一你可以让 Claude 记住你的写作偏好——比如“段落要短、少用形容词、不要用套路化的总结句”。这些偏好一旦进入记忆之后所有对话里的文本生成都会自动带上你的风格。这个特性用在知乎回答、公众号文章、博客写作上特别香。2. 记忆系统核心原理从 MCP 到向量检索2.1 MCP 协议Claude 的功能扩展通道要理解 claude-mem 怎么工作先得明白 MCP 是什么。MCP 全称是 Model Context Protocol是 Anthropic 推出的开放协议专门用来让大语言模型连接外部工具和数据源。它的设计思路很像 USB-C 接口Claude 是主机MCP 服务器就是插在接口上的各种外设。你接一个文件系统 MCPClaude 就能读写本地文件接一个数据库 MCP它就能查询数据库接上 claude-mem 这个 MCP它就有了长期记忆。从协议层面看MCP 定义了客户端、服务器和工具三者的关系。Claude 这个客户端会连接到一个或多个 MCP 服务器服务器把自己持有的能力暴露成一个个可调用的工具。当对话中出现合适的时机Claude 会自主决定要不要调用这些工具、传什么参数。对 claude-mem 来说它在 MCP 层面对外暴露的工具通常包括 search_memories语义搜索记忆、add_memory手动添加记忆等Claude 在回答问题时如果觉得“这段信息我好像知道一点但记不清了”就会触发检索。这种设计最妙的地方在于记忆的读写对用户完全透明。你不需要在对话里写什么特殊指令也不用记住额外的 API 用法。Claude 自己会判断什么时候该去翻记忆库什么时候该把当前的结论写进记忆库。你要做的只是在最开始配置好 MCP 服务器。2.2 记忆提取的“潜意识写入”机制claude-mem 的记忆写入和读取走的是两条完全不同的路径。先说写入也就是记忆提取。每次会话结束后claude-mem 会拿到这段会话的完整记录然后在后台把它发给一个大模型通常就是 Anthropic 自家的模型做分析。这里面的提示词写得很有意思模型被要求像人睡觉时整理记忆那样从对话里判断哪些信息是“值得长期保存”的。我总结下来大概会提取这么几类东西用户陈述过的事实“我在杭州工作”“我用的是 FastAPI”、明确的偏好“我更喜欢简洁的代码风格”“回复不要太长”、项目级决策“这个模块采用消息队列方案”、以及待办事项“下周要完成登录模块”。提取出来的信息会被整理成一条条结构化记忆而不是把原始聊天记录原封不动存下来。这一步的好处很多。一是节省存储空间二是去掉了对话里的废话和临时性内容三是让后续检索的精度更高。如果直接把整个聊天记录丢进记忆里下次检索时会有太多噪声找什么都像大海捞针。这个设计还有一个关键优点完全不打扰主对话。记忆提取是在后台异步完成的不需要占用你当前会话的上下文窗口也不会因为提取动作而增加你在这个会话里的 token 消耗。你可以把对话时长拉满聊完直接关掉剩下的工作 claude-mem 自己处理。2.3 语义搜索向量化与相似度检索记忆存下来之后怎么在合适的时候被找到这里涉及 claude-mem 的读取路径核心是向量化检索。每条记忆在写入时都会被嵌入模型转成一个向量。你可以把向量理解为一串表示“语义坐标”的数字。比如“用户喜欢青灰色”和“用户最爱的颜色是青灰色”这两句话字面不完全一样但因为语义相近它们在向量空间里的距离会很近。查询的时候用户的提问也会被转成向量然后系统在记忆库里计算这个向量和所有记忆向量的相似度按分数从高到低返回最相关的记忆片段。这种检索方式和传统的关键词匹配完全不是一个量级。以前你可能会想“Claude 靠什么找到‘上次讨论的数据库设计’靠词频吗”实际上它靠的是语义相似度。哪怕你这次问的是“我们那个系统的表结构再理一下”跟记忆里存的“博客项目的数据库设计”字面差异很大语义上仍然能匹配上。嵌入模型的选择对检索质量影响很大。默认配置下claude-mem 会用本地嵌入模型不需要额外付费适合对隐私敏感的场景但嵌入质量中规中矩。如果你配了 OpenAI 或者 Anthropic 的嵌入 API Key并切换成云端模型检索的准确率通常会有明显提升代价就是每一次查询都有一点点外部 API 调用费用。我个人的建议是个人笔记级别的东西用本地模型够了但如果你的记忆库很大、信息密度很高可以试试云端嵌入模型效果提升能感知到。2.4 存储后端选型从 SQLite 到向量数据库聊到存储claude-mem 支持不止一种后端默认是 SQLite。很多读者可能会问SQLite 是关系型数据库怎么存向量其实 claude-mem 把向量和文本都存在同一张表里查询的时候直接在应用层做相似度计算。这种方案对个人场景完全够用毕竟记忆条目通常只有几千条性能瓶颈不存在。如果你的记忆规模上去了比如团队共享一个记忆库、条目上万条纯 SQLite 的线性扫描就会变慢。这时候可以切换成真正的向量数据库。claude-mem 支持 ChromaDB、LanceDB 等常见选择。LanceDB 是嵌入式向量库跑在本地不需要额外起服务性能比 SQLite 好很多ChromaDB 的生态更成熟也支持持久化和过滤查询。Mem0 也是可选项它更偏向个性化记忆服务功能更丰富一些。我自己的选择逻辑很简单能用默认就不折腾。默认 SQLite 跑了大半个月几千条记忆检索响应基本在毫秒级完全没感觉到性能压力。等哪天记忆库膨胀到需要优化的时候再切 LanceDB 也不迟反正配置里改一个参数就行。3. 实操指南从零部署 claude-mem3.1 安装与初始化一行命令起步部署 claude-mem 的门槛不高但有几个前置条件得先说清楚。首先机器上要有 Python 3.10 或更高的版本因为项目用到了比较新的语言特性。其次你要有一个可用的 Anthropic API Key记忆提取这一步会调用模型没有 Key 等于白搭。安装过程非常简单两条命令搞定pip install claude-mem claude-mem init第一条命令安装 claude-mem 本体第二条命令会做初始化。初始化的过程会创建默认数据目录~/.claude-mem然后引导你设置 API Key。这里我建议用环境变量而不是硬编码在配置里后续维护会方便很多。有一点要提醒Python 环境别搞太乱。我自己吃过亏直接在系统全局 Python 里 pip install结果跟系统自带的包冲突装了三次才成功。现在我都习惯先建一个虚拟环境python -m venv .venv source .venv/bin/activate pip install claude-mem这样即使以后要升级或者卸载也不会影响其他项目。如果你本机有多个 Python 版本记得检查python --version是不是 3.10 以上。装完之后可以跑一下claude-mem --help验证安装是否成功。3.2 接入 Claude Desktop 的完整配置安装好之后要让 Claude 用上 claude-mem得把它注册成 MCP 服务器。先讲 Claude Desktop 桌面版的配置方法。Claude Desktop 的 MCP 配置放在一个 JSON 文件里不同系统的路径不一样。macOS 上通常是~/Library/Application Support/Claude/claude_desktop_config.jsonWindows 上是%APPDATA%\Claude\claude_desktop_config.json。如果文件不存在自己新建一个就行。打开文件添加如下配置{ mcpServers: { claude-mem: { command: claude-mem, args: [mcp], env: { ANTHROPIC_API_KEY: 你的 API Key } } } }保存之后一定要完全退出 Claude Desktop再重新打开。注意是退出不是关窗口macOS 上要在菜单栏里 QuitWindows 上要确认托盘图标也退出了。重新启动后可以在 Claude 的设置或工具列表里看到 claude-mem 相关的工具就说明注册成功了。这里有个小坑我得提一下配置文件里的路径不要随手写~。虽然大多数情况下 Claude Desktop 能正确解析但我见过有人写command: ~/.venv/bin/claude-mem导致启动失败的案例而且错误日志还看不出来原因。遇到 MCP 启动失败时先把所有路径改成绝对路径试试。3.3 接入 Claude Code 的完整配置如果你用的是 Claude Code 这个偏开发场景的命令行工具配置方式更简单直接通过命令注册claude mcp add claude-mem --env ANTHROPIC_API_KEY你的APIKey -- claude-mem mcp这条命令执行完Claude Code 就能识别到 claude-mem 服务器了。你可以用claude mcp list验证状态看到列表里有 claude-mem 并且状态是 connected 就说明没问题。在 Claude Code 的会话里输入/mcp也能查看当前连接的服务器。团队场景下我更推荐把 MCP 配置写进项目级的.mcp.json文件这样同一个仓库里的同事拉下来就能用不用每个人手动敲一遍命令。文件内容跟 Claude Desktop 的配置结构差不多只是放在项目根目录。这样做的优点很明显配置跟着代码走团队协作时不需要各自倒腾环境。3.4 关键参数与环境变量说明claude-mem 的配置主要通过环境变量控制我列一个常用表方便你对照着设置环境变量作用默认值ANTHROPIC_API_KEY记忆提取时调用的模型 API Key必填OPENAI_API_KEY可选的嵌入模型 API Key不填CLAUDE_MEM_DIR记忆库存放目录~/.claude-memCLAUDE_MEM_EMBEDDING_MODEL嵌入模型标识本地模型CLAUDE_MEM_STORE存储后端类型sqlite实际使用中我一般只设置 ANTHROPIC_API_KEY 和 CLAUDE_MEM_DIR。后者是因为我想把记忆目录放到一个专门做备份的文件夹里而不是默认的家目录隐藏文件夹。比如我的配置是这样export ANTHROPIC_API_KEYsk-ant-... export CLAUDE_MEM_DIR/data/claude-memory如果你打算用 OpenAI 的嵌入模型还需要额外设置 OPENAI_API_KEY 并把 CLAUDE_MEM_EMBEDDING_MODEL 改成对应的模型名。这里提醒一句一旦切换到外部嵌入 API你的记忆内容会把文本发给第三方做向量化敏感信息就得自己掂量了。4. 实战场景记忆系统到底记住什么4.1 场景一跨会话维护项目上下文最典型的使用场景就是跨会话维护项目上下文。我之前做一个博客系统时第一天的会话里跟 Claude 聊清了架构后端用 FastAPI、数据库用 SQLite、前端模板用 HTMX还定了一个约定——所有 API 返回 JSON 而不是渲染 HTML。这些信息在 claude-mem 的自动提取下都变成了记忆条目。过了一个星期我开新会话说“帮我把上次定的博客系统的数据表建出来”Claude 没有反问“什么博客系统”而是直接把 FastAPI 的技术栈、数据库选型、API 返回格式的约定全部接上给出的建表语句一步到位。这种体验和之前那种“每次都像面对一个新同事”的感觉完全不同它真的能延续工作进度。这里有个实操技巧每个项目聊完之后我会主动执行一次claude-mem add 项目X的技术栈是xxx关键决策是xxx把最核心的结论手动固化一下。自动提取虽然靠谱但在一些信息密度极低的对话里可能漏掉重要结论。手动 add 几下相当于给重要记忆上了一道保险。4.2 场景二积累个人偏好与写作风格第二个我经常用的场景是让 Claude 记住我的写作偏好。经常写博客的人应该能理解让 AI 帮忙写东西最怕的就是风格不对通篇都是“首先其次最后”“总而言之”一看就是机器味。而 claude-mem 能让 Claude 越来越懂你。我在一次对话里跟 Claude 说“以后写文章注意三点第一段落别太长第二别用‘综上所述’这种套话第三多用具体例子支撑观点。”这些内容被提取成偏好记忆之后后续所有新会话里Claude 生成文本都会自动检查我的这些偏好。我再也不用每次写之前复制一大段“写作规范”到对话里了。对于内容创作者来说这等于让 AI 形成了一个稳定的“人设”。你只需要在最初的一两次对话里把风格校准好剩下的事情记忆系统会替你维护。4.3 场景三知识库式长期问答第三个场景更适合研究人员。我有个朋友用 Claude 读论文每天都会把几篇论文的要点丢给 Claude 做摘要。之前的问题是第二天问“昨天那篇讲注意力机制的论文几个核心公式是什么”Claude 完全想不起来。后来他配置了 claude-mem每天会话里产生的摘要、结论、术语解释都会被自动存进记忆库。两周之后他再做文献综述的时候问 Claude “我之前看过的关于位置编码的几篇论文它们的演进关系是什么”Claude 居然能根据记忆把不同论文的观点串联起来画出一条分析脉络。这已经不是简单的“记住”了而是把零散的对话积累成了结构化的知识网络。我自己的体会是这种用法要求记忆库有足够的信息密度。你喂给 Claude 的内容质量越高后面检索出来的价值就越大。如果每天只是闲聊记忆库里存了一堆“我今天吃了什么”那检索出来的东西自然对你没帮助。4.4 效果实测用一组问题验证记忆有些读者配置完之后不确定记忆功能到底有没有生效。我整理了一套快速验证流程十分钟就能测完。第一步在 Claude 里发起一个新对话随便聊一个它之前不知道的事实比如“我最喜欢的颜色是青灰色记住这一点”。等对话结束。第二步等几分钟让 claude-mem 有时间做后台提取。然后执行claude-mem search 青灰色如果能看到类似“用户喜欢的颜色是青灰色”这条记忆说明提取链路是通的。第三步开一个新会话直接问“你记得我喜欢的颜色是什么吗”。如果 Claude 能准确回答青灰色说明注入链路也没问题。如果它答不上来多半是配置有误或者记忆没被检索到按下一章的排查方法去查。这套验证方法我每次换新机器、重装环境之后都会跑一遍比较省心。它能把“记忆到底有没有生效”这个问题从玄学变成可验证的状态。5. 避坑指南常见问题与排查实录5.1 MCP 服务器连不上先说最让人头疼的 MCP 连接失败问题。表现是 Claude Desktop 启动后工具列表里没有 claude-mem或者在界面上直接显示连接失败。我的排查顺序是这样的。先在终端手动运行claude-mem mcp看看有没有报错。如果这一步就挂了那问题大概率出在 Python 环境或依赖上先解决本地运行问题。如果本地能跑再看配置文件。重点检查 JSON 语法是否合法、command 路径是不是绝对路径、env里有没有正确设置 ANTHROPIC_API_KEY。还有一类问题是配置没生效。Claude Desktop 对 MCP 配置有缓存不是改完立即生效的。我多次遇到这种情况配置文件改好了但发现还是连不上最后发现是没完全退出重启。记住在 macOS 上一定要 CmdQ 退出在 Windows 上要检查系统托盘图标完全退出否则配置不会重新加载。日志是最靠谱的定位手段。Claude Desktop 的日志文件在 macOS 的~/Library/Logs/Claude/目录下Windows 在%APPDATA%\Claude\logs。遇到连不上直接翻日志里面有 MCP 服务器的具体报错信息比瞎猜快得多。5.2 记忆没被提取或检索不到第二个高发问题是配置成功了但记忆就是没生效。分两种情况一种是往记忆库里写入失败一种是写入成功但检索不到。写入失败的常见原因是 API Key 无效或者余额不足。记忆提取要调用 Anthropic 的模型如果 Key 错了提取过程会静默失败不会弹窗告诉你。这时候可以用claude-mem stats看看记忆库有没有在增长如果一直是 0基本就是写入链路断了。还有一种可能你刚结束会话就立刻查提取是异步的还没跑完。耐心等几分钟再查。检索不到的情况更复杂一些。首先是相关度阈值的问题检索工具会对结果做过滤相关度低于阈值的不返回。你问的问题如果和记忆里的表述差异太大检索也可能为空。我建议多用claude-mem list看看记忆库里到底有什么再针对性调整提问方式。如果记忆库为空手动添加一条记忆再检索用来区分是写入问题还是检索问题。我踩过一个比较隐蔽的坑配置了两个 MCP 服务器一个 claude-mem另一个也提供了同名工具结果 Claude 在调用时优先用了后者导致记忆一直没生效。检查的办法是看 Claude 的实际调用日志确认它在调用的到底是哪个服务器。5.3 隐私与成本哪些信息不该进记忆聊到隐私这是用 claude-mem 避不开的话题尤其因为它默认会把记忆存成明文文件。虽然数据完全在本地算是相对安全但有两件事你必须知道。第一记忆提取的过程会把对话记录发给 Anthropic 的模型做分析。也就是说你在 Claude 里说的隐私内容会经过云端接口。如果你把银行账号、服务器密码、身份证号这些东西直接在对话里说了它们很可能被提取进记忆库还可能在后续对话里被 Claude 主动调用。我的习惯是凡是涉及密钥和密码的内容坚决不进 Claude 的对话自然也就不会进记忆。密码管理器该用就用别图方便让 AI 帮你记。第二记忆文件是本地明文存储。默认目录~/.claude-mem下的数据任何有权限访问你机器的人都能读。如果你对隐私要求高建议对记忆目录单独加密比如 macOS 上用磁盘镜像加密Linux 上用 ecryptfs 之类或者干脆把 CLAUDE_MEM_DIR 指向一个加密卷。成本方面记忆提取每次会调一次模型对话量大的人一天可能会有几十次请求好在单次提取的 token 量不大费用基本可以忽略。嵌入检索如果切到云端模型也是按量计费个人场景每月几块钱封顶。真正要注意的是团队重度使用几千条记忆反复检索时费用会线性上涨这种情况建议评估一下看是不是该换本地嵌入模型。5.4 性能调优与备份习惯用了一段时间之后记忆库会慢慢变大这时候该考虑性能和备份了。先说性能。默认 SQLite 在几千条记忆的快慢肉测感觉不出来但上了万条检索响应会逐渐变慢这是线性扫描的物理瓶颈。解决办法是切换到 LanceDB 或 ChromaDB这两个专门优化过向量检索性能差距会很明显。切换方式就是设置环境变量把 CLAUDE_MEM_STORE 改成对应后端再重启一下 MCP 服务。另外保持记忆库的整洁也很重要。我每隔一两周会跑一次claude-mem list把明显过时的记忆删掉。比如某个项目已经完结了那堆项目相关的记忆就可以清掉否则它们会一直参与语义检索干扰后续对话的准确性。记忆不是越多越好垃圾记忆比没有记忆更麻烦。备份是必须养成的习惯。我已经把~/.claude-mem整个目录纳入网盘同步每周还会额外导出一次。换电脑的时候直接把目录拷贝到新机器的对应位置再装好 claude-mem所有记忆就全部恢复了。如果记不住我可以直接告诉你记忆目录就是你的知识资产丢了的话之前所有让 Claude “记住你”的努力都白费。最后再分享一个小经验claude-mem 的实际效果高度依赖“你喂给它的内容”。如果对话本身就充满了模糊、零散、没营养的信息那它提取出来的记忆也不会好用到哪里去。反过来如果你养成了在对话里明确给出结论、说明偏好、强调关键决策的习惯记忆库就会越来越值钱。我自己用下来的体会是claude-mem 最让我惊喜的不是“记住了”而是“在正确的时机想起来”。很多次我在新对话里随口问一个之前聊过的话题Claude 能自然地衔接上那个瞬间的体验真的很像和一个记住你的老朋友聊天。这个项目后续其实还有不少扩展空间比如把记忆库做成团队共享、同步给其他 Agent 用或者配合自动化工具做定时清理和归档。至少对我来说装了 claude-mem 之后Claude 从“聪明的失忆者”变成了“真正能持续合作的搭档”。