你是否经历过这样的场景:和Claude Code协作一整天,完成了一个复杂的功能开发,第二天重新打开终端时,却发现AI完全不记得昨天的工作内容?这种”AI失忆症”让每次会话都要重新解释项目背景,严重影响开发效率。
现在,一个名为claude-mem的开源项目为Claude Code构建了完整的持久化记忆系统,让AI真正拥有了”长期记忆”能力。
什么是claude-mem?
claude-mem是一个专门为Claude Code打造的持久化记忆压缩系统,能够自动捕获开发会话中的所有操作,通过AI进行智能压缩,并将相关上下文注入到未来的会话中。
简单来说,它就像给Claude配备了一个”私人秘书”——这个秘书会默默记录每次对话中的重要事件,当你下次开始新对话时,秘书会把相关的历史信息重新告诉Claude,让它能够”记起”之前的工作内容。

Claude-Mem 项目介绍
核心特性
1. 持久化记忆
上下文会在会话之间自动保存,无需手动操作。每次结束编程会话,claude-mem都会自动生成语义摘要,为下次会话做好准备。
2. 渐进式披露(Progressive Disclosure)
这是claude-mem的核心设计哲学。它采用分层记忆检索策略,模拟人类的记忆模式:
- 首先加载轻量级的”索引”——标题、类型、时间戳
- 只有在需要深入细节时,才获取完整的观察记录
- 这种方式既节省Token,又不会在需要时显得”浅薄”
3. 智能搜索
可以通过自然语言搜索项目历史。比如你可以直接问Claude:
- “上次我们修复了什么Bug?”
- “我们之前是怎么实现用户认证的?”
- “这个Bug之前修过吗?”
4. 可视化管理界面
claude-mem提供一个实时Web界面(运行在http://localhost:37777),你可以:
- 查看记忆流
- 浏览所有记忆内容
- 按类型过滤(决策、Bug修复、功能实现等)
- 切换不同项目
- 调整各种设置
5. 隐私控制
你可以排除敏感内容,完全掌控哪些信息被存储。通过<private>标签包裹的内容不会被记录。
技术架构深度解析
claude-mem的设计理念是:它不会中断或修改Claude Code的行为,而是从外部观察,通过生命周期钩子提供价值。
整个系统由以下几个核心组件构成:
代码语言:javascript
AI代码解释
┌─────────────────────────────────────────────────────────────┐
│ Claude Code 会话 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 生命周期钩子 (Lifecycle Hooks) │
│ SessionStart → UserPromptSubmit → PostToolUse → Stop │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ Worker 服务 (后台处理) │
│ 通过 Claude Agent SDK 提取学习内容 │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 双数据库存储系统 │
│ SQLite (结构化) + ChromaDB (向量化) │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ 下次会话开始时自动注入相关上下文 │
└─────────────────────────────────────────────────────────────┘
五大生命周期钩子
1. SessionStart(会话开始)
- 触发时机:Claude Code启动时
- 执行内容:启动Worker服务,检索最近的观察记录,注入相关上下文
2. UserPromptSubmit(用户提交提示)
- 触发时机:用户发送消息给Claude时
- 执行内容:记录用户的原始提示
3. PostToolUse(工具使用后)
- 触发时机:Claude执行任何工具操作后
- 执行内容:捕获工具执行的详细信息,包括文件操作、Shell命令、代码搜索等
4. Stop(会话停止)
- 触发时机:Claude停止当前任务时
- 执行内容:生成当前会话的AI驱动摘要
5. SessionEnd(会话结束)
- 触发时机:Claude Code会话完全结束时
- 执行内容:标记会话为已完成,确保所有数据持久化
双数据库存储系统
claude-mem使用两个数据库来存储记忆:
SQLite数据库(结构化存储)
- 位置:
~/.claude-mem/claude-mem.db - 用途:存储观察记录、会话信息、摘要,支持全文搜索(FTS5)
ChromaDB(向量数据库)
- 位置:
~/.claude-mem/chroma/ - 用途:存储向量嵌入,支持语义搜索,根据含义(而非关键词)查找相关内容
安装配置指南
系统要求
- Node.js 18.0.0或更高版本
- Claude Code最新版本(需支持插件功能)
- Bun JavaScript运行时(会自动安装)
- SQLite 3(已打包)
- 至少4GB RAM
- 至少100MB可用磁盘空间
安装步骤
方式一:通过插件市场安装(推荐)
代码语言:javascript
AI代码解释
# 第一步:启动Claude Code
claude
# 第二步:添加插件市场并安装
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
# 第三步:重启Claude Code
方式二:从源码安装(进阶)
代码语言:javascript
AI代码解释
git clone https://github.com/thedotmack/claude-mem.git
cd claude-mem
npm install
npm run build
npm run worker:start
配置文件
claude-mem的配置文件位于~/.claude-mem/settings.json,首次运行时会自动创建默认配置:
代码语言:javascript
AI代码解释
{
"provider": "claude",
"model": "claude-sonnet-4-5-20250929",
"workerPort": 37777,
"dataDir": "~/.claude-mem",
"logLevel": "info",
"contextObservations": 10
}
实战体验
第一次对话:创建项目
代码语言:javascript
AI代码解释
# 启动新的Claude Code会话
claude
# 让Claude创建一个项目
请帮我创建一个美发预约网站,需要包含以下功能:
1. 用户注册和登录
2. 服务项目展示
3. 在线预约功能
4. 个人中心
在Claude工作的同时,打开浏览器访问http://localhost:37777,你会看到Web界面开始记录各种信息:项目初始化过程、文件创建记录、代码编写过程、目录结构搭建等。
第二次对话:见证记忆的力量
代码语言:javascript
AI代码解释
# 开启全新的Claude Code会话
claude
# 询问之前的工作
上次我们做了一个什么项目?都实现了哪些功能?
你会看到Claude开始查找之前的项目记录,并回答:”根据历史记录,我们上次一起做了一个美发预约网站,实现了以下功能:用户认证系统、导航栏组件、首页展示、预约功能、个人中心…”
这就是claude-mem的神奇之处——新的对话中,Claude依然能够”记住”之前的工作!
高级功能
智能搜索
claude-mem支持多种搜索方式:
自然语言搜索
代码语言:javascript
AI代码解释
上次会话我们修复了什么Bug?
我们是怎么实现用户认证的?
最近对worker-service.ts做了什么修改?
结构化搜索
代码语言:javascript
AI代码解释
search(query="authentication bug", type="bugfix", limit=10)
无尽模式(Endless Mode)
claude-mem提供了一个实验性功能叫无尽模式,这是一种仿生记忆架构,用于大幅延长会话长度。
问题背景: 标准的Claude Code会话在大约50次工具使用后就会触及上下文限制。
解决方案:
- 分离工作记忆(Working Memory)和归档记忆(Archive Memory)
- 工作记忆:当前活跃的观察
- 归档记忆:存储在磁盘上的完整输出,可快速调用
- 复杂度从O(N²)降低到接近线性
隐私保护
claude-mem提供了完善的隐私保护机制:
使用Private标签
代码语言:javascript
AI代码解释
<private>这里的内容不会被claude-mem记录
API_KEY="sk-xxxxx"
</private>
配置跳过的工具
代码语言:javascript
AI代码解释
export CLAUDE_MEM_SKIP_TOOLS="ListMcpResourcesTool,SlashCommand,AskUserQuestion"
项目信息
- 项目名称: claude-mem
- GitHub仓库: https://github.com/thedotmack/claude-mem
- 官方网站: https://claude-mem.ai
- 开源协议: AGPL-3.0
- 系统支持: Windows、macOS、Linux
- Star数: 17k+
- Fork数: 1.2k+
总结
claude-mem的出现,标志着AI编程助手的一个重要突破。它解决了AI在跨会话中容易遗忘的痛点,通过自动存储和管理会话中的关键信息,实现了真正的长期记忆能力。
无论是继续之前的工作、排查历史Bug,还是查看决策历史,claude-mem都能让Claude”记住”之前的工作内容,大大提升了开发效率。
对于经常使用Claude Code进行开发的程序员来说,claude-mem无疑是一个值得尝试的必备工具。它不仅解决了”AI失忆症”的问题,更为AI辅助编程开辟了新的可能性。
参考资料:
- claude-mem官方GitHub仓库
- Claude-Mem 介绍:为 Claude Code 添加持久化记忆的完整指南
- Claude Code 持久化记忆插件 claude-mem 完全指南
- 给 Claude 装上「长期记忆」:claude-mem 实战体验与使用建议