claude-mem 是一个为 Claude Code 设计的持久化记忆压缩系统。它通过一套 Hooks 自动记录你在 Claude Code 里的所有操作,并利用人工智能能力化繁为简,将这些记录提炼成对未来会话有价值的上下文。目前,这个项目在 GitHub 上已斩获 43,718 颗星,是 Claude Code 插件生态中备受瞩目的热门项目之一。
你是否也曾对传统 Claude Code 的“健忘症”感到头疼?典型的工作模式往往是这样的:
你:帮我实现登录模块
Claude:好的,开始写...
(你关掉窗口)
——下次打开——
Claude:你好!有什么可以帮你的?
你:……我上次那个登录模块写到哪了?
Claude:我不记得了。
每次会话都相互独立,AI 无法跨越会话记住关键信息,例如:
- 你项目的技术栈和架构选择。
- 哪些文件已经处理过,哪些不需要再碰。
- 你曾经踩过的坑和最终的解决方案。
- 团队的开发规范和代码风格偏好。
claude-mem 的核心思路非常巧妙:“既然上下文窗口有限,就用 AI 压缩它”。它并非简单粗暴地将所有历史对话塞进上下文,而是通过智能压缩和提炼,只保留对未来任务真正有用的信息。
✨ 核心设计:渐进式上下文披露
claude-mem 的记忆不是一次性全部注入的,而是按需渐进释放——就像一个熟悉项目的老同事,不会一股脑地把所有历史倒给你,而是在你需要的时候,精准地递上最相关的那块拼图。
五层 Hooks:记忆系统的骨架
claude-mem 的核心不是“插件 API”,而是一套精心设计的五层 Hooks 系统:
| Hooks |
触发时机 |
作用 |
SessionStart |
会话开始 |
加载历史记忆,注入上下文 |
UserPromptSubmit |
提交用户提示 |
记录当前任务方向 |
PostToolUse |
工具执行后 |
捕获文件变更和关键观察 |
Stop |
会话中断 |
保护现场,保存状态 |
SessionEnd |
会话结束 |
触发压缩流程 |
每次你使用 Read、Write、Bash 等工具时,PostToolUse Hook 就会自动记录:
- 哪个文件被修改了。
- 具体改动了什么。
- 上下文中的关键观察(observations)。
后端架构:不止是本地日志
Hooks 捕获的数据不会直接写入文件,而是发送给一个运行在 37777 端口 的独立 Worker 服务进行处理,形成了一个微型的完整系统:
Claude Code ←→ Hooks脚本 → Worker 服务(HTTP) → SQLite 数据库
→ Chroma 向量库
- SQLite:用于结构化存储会话、观察记录、摘要等数据。
- Chroma 向量库:实现混合语义与关键词搜索,为智能上下文检索提供支持。
- Web 查看器:在浏览器中打开
http://localhost:37777,即可实时查看流动的记忆数据流。
这套架构远比“简单记录日志”复杂,本质上是一个完整的前后端数据系统。
渐进式记忆释放与成本控制
这是 claude-mem 设计最为精妙的地方。压缩后的记忆会根据任务需要和 Token 成本进行渐进式释放:
会话开始 → 注入基础项目结构(轻量)
↓ 任务需要更多背景
注入近期决策记录(中量)
↓ 深入某个模块
注入详细技术细节(按需)
每一层记忆的注入都伴随着Token 成本可见性,让你清楚知道每多获取一层背景信息需要消耗多少 Token,真正做到成本可控。
mem-search:让AI主动查询历史
claude-mem 不仅提供被动的记忆注入,还赋予 Claude 一套 mem-search 技能,使其能够主动查询项目历史:
你:上次会话我们讨论过缓存方案吗?
→ Claude 自动调用 mem-search
→ 返回相关记忆上下文
该系统支持多达 10 种搜索模式,满足不同场景的查询需求:
| 搜索类型 |
功能 |
| 搜索观察 |
跨观察的全文搜索 |
| 搜索会话 |
跨会话摘要搜索 |
| 搜索提示 |
搜索原始用户请求 |
| 按概念搜索 |
按标签查找(如:发现/问题解决/模式) |
| 按文件搜索 |
查找引用特定文件的观察 |
| 按类型搜索 |
按类型查找(如:决策/bug修复/功能/重构) |
| 最近上下文 |
获取最近会话上下文 |
| 时间线 |
获取特定时间点周围的统一上下文 |
隐私保护与多平台支持
你可以通过 <private> 标签轻松排除敏感内容,确保它们不会被系统存储:
你:帮我查一下客户的支付密码是怎么存的
<private>这个项目涉及支付密码</private>
→ claude-mem 不会记录这条观察
更有趣的是,claude-mem 还可以作为 OpenClaw 的持久记忆插件使用,实现一套系统服务两个场景:
curl -fsSL https://install.cmem.ai/openclaw.sh | bash
快速安装与使用体验
安装过程极其简单,只需在 Claude Code 中执行两行命令:
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
重启 Claude Code 后,新的会话就会自动加载历史记忆。
场景对比:有记忆 vs 无记忆
让我们通过一个具体场景来感受 claude-mem 带来的根本性差异:
没有 claude-mem 的对话:
你:我想给这个项目加个缓存层
Claude:好的,我来先了解一下项目结构……(读取大量文件)……
(浪费了大量 token 在“了解项目”上,而且 Claude 可能还理解错了)
有 claude-mem 的对话:
你:我想给这个项目加个缓存层
Claude:[加载了项目记忆] 我看到你上周已经讨论过这个方案,当时决定先用 Redis 实现。这和你的技术选型一致。要我现在开始实现吗?
这就是持久记忆带来的差异——AI 不再是每次会话的“陌生人”,而是真正理解项目来龙去脉的“老同事”。
适用与不适用场景
✅ 非常适合:
- 长期维护同一项目的工程师。
- 需要并行多项目、频繁切换上下文的开发者。
- 团队协作使用 Claude Code,需要共享项目认知的场景。
- 追求“AI 真正懂我的代码库”而非每次都重复解释的开发者。
❌ 不太适合:
- 项目生命周期极短、频繁创建和丢弃的临时项目。
- 对数据隐私极度敏感(需注意记忆数据存储在本地)。
- 偏好每次会话都从“干净状态”开始的极简主义者。
优缺点总结
| ✅ 优点 |
❌ 缺点 |
| 自动运行,零摩擦集成 |
架构相对复杂,依赖独立的 Worker 服务 |
| 渐进式披露,Token 消耗可控 |
记忆存储在本地,跨设备工作需要手动同步 |
| mem-search 技能让 AI 可主动查询 |
大型项目的向量数据库会随时间逐渐膨胀 |
| Web 查看器实现记忆流可视化 |
|
| 同时支持 Claude Code 和 OpenClaw |
|
| 提供多语言文档,对中文用户友好 |
|
总结
claude-mem 精准地解决了 AI 编程中的上下文断裂 这一根本痛点。它并非简单地增加了一个功能,而是补全了 Claude Code 原生缺失的设计:让 AI 助手具备连续的项目记忆能力。43k 的 GitHub Stars 充分证明了开发者社区对此问题的强烈共鸣。如果你已经厌倦了每次与 AI 协作时都要重新解释项目背景,那么 claude-mem 绝对值得一试。对于想深入了解此类开源实战项目的开发者,也可以到云栈社区与其他同行交流探讨。
相关链接: