
上周在做一个用户认证模块,遇到了一堆问题,翻了半天文档,试了各种方案,最后终于跑通了。今天想继续开发,打开 Claude Code,准备加个权限管理功能。
然后 Claude 问你:"这个项目是做什么的?"
你愣了一下。上周那个认证模块的实现细节、你做的技术选型、踩过的坑——全忘了。你只能重新描述一遍项目背景,告诉它用的是什么框架、数据库怎么连的、为什么选了 JWT 而不是 Session。
这种感觉就像,你有个助手,每次对话都像失忆了一样,什么都要从头教。
今天要介绍的 claude-mem,就是来解决这个问题的。
GitHub:

Claude Code 的"记忆断裂"问题
在说 claude-mem 之前,我们先聊聊 Claude Code 本身的设计。
Claude Code 是一个无状态会话工具。你开始一个会话,它就是一张白纸。你告诉它要做什么,它就做什么。但只要你关闭会话,或者开一个新会话,之前积累的所有上下文——你做过的技术决策、踩过的坑、积累的经验——全部丢失。
这在短周期任务里没问题。但软件开发的特点是什么?周期长、上下文多、需要积累。
一个功能做完,可能下周要继续完善。你可能同时在做多个项目,每个项目有自己的技术栈和规范。你会在开发过程中积累出一些"最佳实践",比如"这个模块用依赖注入比较好"、"这个场景适合用事件驱动"。
但 Claude Code 记不住这些。每次都是新的开始。
claude-mem 的思路很简单:既然 Claude Code 本身不保存记忆,那就在外面给它加一个记忆层。
它是怎么工作的
claude-mem 的工作流程可以分为三层:捕获、压缩、检索。
第一层:自动捕获
你在用 Claude Code 写代码的时候,claude-mem 在后台默默记录。它会捕捉几类信息:
Claude 用了哪些工具——是写文件、运行命令、还是搜索代码。它观察到了什么——调试时的错误信息、代码的运行结果、文件的修改内容。你提交了什么提示——你让 Claude 做什么,它理解了什么。
这些信息平时就存在数据库里,但不会一股脑塞给新会话。claude-mem 有个"智能安装"机制,会先检查依赖是否完整,然后按需加载。
第二层:AI 压缩
捕获的信息很多,如果全部塞给 Claude,新会话的上下文会爆掉,token 费用也会飞涨。
所以 claude-mem 做了语义压缩。它用 AI 分析这些观察记录,提取出真正有价值的信息:这是什么功能、用的是什么技术、遇到了什么问题、怎么解决的。
压缩后的内容更精简,但保留核心上下文。就像一张照片被压缩成缩略图,文件变小了,但关键信息还在。
而且 claude-mem 支持渐进式披露。意思是,它不会一次性把所有记忆都塞给你,而是分层展示。你可以先看到摘要,觉得不够再展开详情。每个层级的 token 消耗都显示出来,让你心里有数。
第三层:智能检索
新会话开始时,claude-mem 会分析当前任务的上下文,从历史记忆里找到相关的内容。
这个检索不是简单的关键词匹配,而是混合搜索。它同时用向量数据库做语义理解(理解你问的是什么意思),和传统全文搜索做精确匹配(找到包含特定词的内容)。
结果是,即使你用"用户登录那块"来描述,claude-mem 也能找到上周做的认证模块的相关记忆。
技术架构:五个钩子和两个服务
如果你对技术细节感兴趣,我们可以深入看看 claude-mem 的架构。
它的核心是五个生命周期钩子,分别对应 Claude Code 会话的五个关键节点:
SessionStart —— 新会话开始时触发。这时 claude-mem 会检索相关历史记忆,生成"开场白",让 Claude 一上来就知道项目背景。
UserPromptSubmit —— 你提交提示时触发。claude-mem 会分析你的提示,决定是否需要注入相关记忆。
PostToolUse —— Claude 使用工具后触发。这是捕获的主要入口,claude-mem 会记录工具调用和观察结果。
Stop —— Claude 停止工作时触发。这时会做一次总结,把这个片段的关键信息提炼出来。
SessionEnd —— 会话结束时触发。完整保存这次会话的所有记录,做最终压缩归档。
除了钩子,还有一个Worker 服务在后台运行。它在本地起了个 HTTP 服务,端口是 37777,提供 Web 界面和 10 个搜索接口。
这个 Worker 是用 Bun 跑的,一个比 Node.js 更快的 JavaScript 运行时。它管理数据库连接、处理检索请求、生成压缩摘要。
数据库层面,claude-mem 用的是 SQLite + FTS5 存储结构化数据,用 Chroma 向量数据库做语义搜索。这套组合兼顾了可靠性和智能性。
渐进式披露:让上下文更可控
这里重点聊聊渐进式披露这个设计,非常有意思。
传统的 AI 记忆方案有个问题:要么记忆太少(什么都记不住),要么记忆太多(上下文爆炸)。
claude-mem 的解决思路是分层。它把记忆分成三层:
第一层:摘要 —— 一句话概括这个项目是什么、现在做到什么阶段。token 消耗最少。
第二层:关键事件 —— 重要的时间节点、重大决策、踩过的坑。token 消耗中等。
第三层:完整记录 —— 所有观察记录、工具调用、详细上下文。token 消耗最高。
新会话开始时,claude-mem 默认只加载第一层。如果你问更深入的问题,才会加载第二层、第三层。
而且每个层级的 token 消耗都显示出来。你可以在加载更多上下文和节省 token 之间做权衡。
这种设计背后的哲学是:上下文是资产,但也是有成本的。你不需要记住所有事,只需要记住最重要的事。
隐私控制:敏感内容自己说了算
既然 claude-mem 会记录你在 Claude Code 里做的一切,隐私是个必须考虑的问题。
项目提供了**<private> 标签**。只要你把敏感内容用这个标签包起来,claude-mem 就不会把它存入记忆。
比如你在一段代码里写了个测试用的数据库密码:
连接字符串: <private>postgresql://admin:123456@localhost/test</private>
这部分内容会被自动过滤,不存入记忆。
另外,所有数据都存在你本地,不会上传到任何云端。Worker 服务跑在你自己的机器上,Web 界面也是 localhost 访问,外部根本接触不到。
快速开始
安装 claude-mem 只需要一条命令:
npx claude-mem install
如果你用的是其他 AI 编程工具,也有对应版本:
# Gemini CLI
npx claude-mem install --ide gemini-cli
# OpenCode
npx claude-mem install --ide opencode
或者直接在 Claude Code 里用插件命令安装:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
安装完成后重启 Claude Code,新会话就会自动带上历史记忆了。
Web 界面:可视化记忆流
claude-mem 带了一个 Web 界面,地址是 http://localhost:37777。
打开之后,你可以:
查看记忆流 —— 实时看到 claude-mem 在捕获什么、压缩了什么。
浏览观察记录 —— 回顾之前会话的详细记录,每个记录都有 ID,可以直接引用。
手动搜索 —— 不用开 Claude Code,直接在 Web 界面里搜索历史记忆。
查看引用 —— 通过 ID 访问特定观察记录: http://localhost:37777/api/observation/{id}
这个 Web 界面对于审计和回顾特别有用。比如你想知道"上周做那个功能时遇到了什么问题",直接翻记录就行,比在代码里翻注释更直观。
OpenClaw 集成:不止是记忆
claude-mem 还支持集成到 OpenClaw Gateway。OpenClaw 是一个消息网关,可以把 Claude Code 接入 Telegram、Discord、Slack 等平台。
集成方式是:
curl -fsSL https://install.cmem.ai/openclaw.sh | bash
安装脚本会自动处理依赖、插件配置、AI 提供商设置、Worker 启动,还有可选的实时观察功能——把记忆流推到 Telegram 或 Discord。
这样你就可以在聊天工具里问 Claude:"上周那个登录模块是怎么实现的?"它会基于 claude-mem 的记忆回答你。
使用场景
场景一:长周期项目
你在做一个电商系统,已经开发了一个月。之前做了商品模块、订单模块,现在要做支付模块。新会话开始,claude-mem 自动注入项目背景:用的什么框架、数据库设计、之前的模块是怎么组织的。Claude 直接上手,不用你重新介绍。
场景二:团队知识传承
你做完了一个功能模块,交给同事继续开发。你的会话记忆被 claude-mem 保存下来。同事开新会话时,Claude 基于你的记忆,知道你为什么这么设计、踩过什么坑、有什么注意事项。
场景三:代码审查准备
你想审查自己上周写的代码。打开 Claude Code,用 mem-search 技能搜索:"上周改了哪些文件",Claude 基于记忆告诉你:"改了用户认证模块,主要是加了 OAuth 支持,遇到的问题是 token 过期处理..."比你自己回忆快多了。
适合谁用
频繁使用 Claude Code 的人 —— 如果你每天都在用 Claude Code 做开发,claude-mem 能让你的工作流更连续。
长周期项目开发者 —— 周期超过一周的项目,上下文积累很重要。
技术团队 —— 可以建立团队级别的记忆库,新成员快速上手。
代码审查者 —— 需要快速了解代码演进历史和决策过程。
GitHub:
写在最后
claude-mem 解决的是一个很具体的问题:AI 编程工具的记忆断裂。
我们习惯了人类的连续记忆,却忘了 AI 工具每次都是"新人"。claude-mem 在 Claude Code 外面加了一层记忆系统,让它能够积累经验、传承知识。
它的设计很克制——不是记录一切,而是选择性记忆。渐进式披露、token 消耗可视化、隐私标签,这些细节都指向同一个目标:让记忆有价值,而不是让记忆成负担。
如果你也受够了每次开新会话都要重新介绍项目,claude-mem 值得试试。
关注
如果这篇文章对你有帮助,欢迎点赞、收藏、转发。我会持续分享实用的 AI 编程工具和技术深度解析,关注我,一起探索 AI 开发的无限可能。