| name | claude-mem |
| description | 跨会话持久记忆系统:自动捕获、压缩和检索项目历史上下文,解决AI助手'失忆'问题。当用户说'之前我们做了什么'、'上次怎么解决的'、'记住这个'、'搜索历史记录'、'mem-search'、'查找之前的决策'、'之前修过的bug'时触发此Skill。核心特点:自动捕获无需手动、AI语义压缩、向量+全文检索、渐进式披露、支持敏感内容排除。 |
来源: thedotmack/claude-mem ⭐ 65K+(单周 +12K,GitHub Trending #3)
发布时间: 2026-04-29
理念: "AI 不应该每次对话都从零开始。记忆是智能的基石。"
🧠 Claude 记忆系统
让 AI 记住你们一起做过的一切。跨会话、跨项目、跨时间。
🎯 核心能力
| 能力 | 说明 |
|---|
| 自动捕获 | 无需手动记录,自动保存会话中的关键信息 |
| AI 压缩 | 将冗长对话压缩为语义摘要,节省存储 |
| 双向检索 | 向量语义搜索 + 全文关键词搜索 |
| 渐进披露 | 按相关性分层注入上下文,控制 Token 成本 |
| 隐私保护 | <private> 标签排除敏感内容 |
| Web 查看器 | 实时查看记忆流(http://localhost:37777) |
🏗️ 技术架构
用户对话 → 捕获层 → 压缩层 → 存储层 → 检索层 → 注入层
↓ ↓ ↓ ↓ ↓
钩子系统 Claude SQLite Chroma 渐进式
自动触发 Agent SDK + FTS5 向量库 披露
| 组件 | 技术 | 用途 |
|---|
| 捕获 | Claude Code Hooks | 会话开始/结束/工具调用时自动触发 |
| 压缩 | Claude Agent SDK | 将观察记录压缩为语义摘要 |
| 结构化存储 | SQLite + FTS5 | 全文搜索、时间线查询 |
| 语义存储 | Chroma | 向量相似度搜索 |
| 查看器 | Web UI | 实时查看和管理记忆 |
🚀 使用方式
方式一:自然语言查询
用户:上次我们怎么解决那个登录超时问题的?
→ 自动搜索记忆 → 找到相关 session → 注入上下文
用户:我之前让你记住的 API 设计原则是什么?
→ 语义搜索 "API 设计" → 返回之前确认的决策
方式二:结构化搜索(mem-search)
用户:搜索所有和 "支付" 相关的决策
→ 按类型过滤: decision + 概念: 支付
用户:找一下上周修过的 bug
→ 按时间线 + 类型: bugfix
方式三:查看时间线
用户:这个项目我们做过什么?
→ 按时间线展示所有 session 摘要
Session 1: 项目初始化 + 架构决策
Session 2: 用户模块开发 + JWT 方案选择
Session 3: 支付接口调试 + 超时问题修复
🔍 搜索语法
按内容搜索
"如何实现缓存" → 语义搜索
"cache implementation" → 英文语义搜索
"关键词: Redis" → 全文搜索
按类型过滤
| 类型 | 用途 |
|---|
decision | 架构决策、技术选型 |
bugfix | 问题修复记录 |
feature | 新功能开发 |
refactor | 重构记录 |
discovery | 新发现、踩坑记录 |
按时间范围
"上周做的" → 最近 7 天
"上个月" → 最近 30 天
"2026-04" → 指定月份
按文件关联
"和 auth.js 相关的改动"
"谁修改了这个文件"
📝 记忆记录格式
每次自动捕获的记忆包含:
{
"id": "obs_123456",
"session_id": "sess_abc",
"timestamp": "2026-04-29T10:30:00Z",
"type": "decision",
"content": "采用 Redis + Lua 脚本实现分布式锁",
"context": "用户认证模块的并发控制",
"files": ["src/auth/lock.js", "config/redis.js"],
"tags": ["redis", "concurrency", "auth"]
}
🔒 隐私控制
排除敏感内容
在对话中使用 <private> 标签:
用户:我们的数据库密码是 <private>secret123</private>,帮我配置连接
→ 密码不会被记录到记忆中
手动标记
用户:这个信息不要记录 [PRIVATE]
→ 该段对话跳过捕获
🌐 Web 查看器
启动后访问 http://localhost:37777:
| 功能 | 说明 |
|---|
| 实时流 | 当前会话的记忆捕获实时显示 |
| 搜索 | 全局搜索所有历史记忆 |
| 时间线 | 按 session 查看历史 |
| 管理 | 删除、编辑、标记记忆 |
| 统计 | Token 使用量、存储占用 |
🆚 与现有记忆方案对比
| claude-mem | memory-system | memory-bank |
|---|
| 自动化程度 | ⭐⭐⭐ 全自动 | ⭐⭐ 半自动 | ⭐ 手动维护 |
| 存储位置 | 本地 SQLite | 概念性指南 | 项目目录文件 |
| 检索方式 | 向量+全文 | 分类浏览 | 文件读取 |
| 跨项目 | ✅ | ❌ | ❌ |
| Token 控制 | 渐进式披露 | ❌ | ❌ |
| 隐私保护 | ✅ | ❌ | ❌ |
| 安装复杂度 | 中等(插件) | 低 | 低 |
最佳实践:
claude-mem 用于自动捕获和检索项目历史
memory-bank 用于手动维护项目核心文档(ADR、规范)
memory-system 作为概念参考,了解记忆系统设计原理
💡 使用示例
示例1:找回之前的决策
用户:之前我们选的是 JWT 还是 Session?
助手:→ 搜索记忆(类型: decision, 关键词: auth)
找到 2026-04-20 的记录:
"采用 JWT + Refresh Token 方案,
原因:无状态、适合微服务、减少 DB 查询"
示例2:避免重复踩坑
用户:这个 MySQL 锁表问题怎么解决?
助手:→ 搜索记忆(类型: bugfix, 关键词: MySQL lock)
找到之前记录:
"2026-04-15 遇到过类似问题,
原因是事务隔离级别设置不当,
解决方案:改为 READ COMMITTED + 索引优化"
示例3:项目 onboarding
用户:我刚加入这个项目,之前做过什么?
助手:→ 时间线展示所有 session 摘要
Session 1-5: 项目初始化(技术栈、架构)
Session 6-12: 核心模块开发
Session 13-20: 测试和部署
⚙️ 安装说明
Claude Code 插件
/plugin marketplace add thedotmack/claude-mem
/plugin install claude-mem
独立安装
npx claude-mem install
配置
mem status
mem search "Redis 缓存"
mem timeline
mem config exclude_dirs "node_modules,dist,.git"
🔗 相关 Skill
| Skill | 用途 |
|---|
| memory-system | 记忆系统设计原理(缓存/Session/消息队列) |
| memory-bank | 项目文档化记忆(ADR/规范/模板) |
| systematic-debugging | 结合历史记录进行调试 |
"最好的记忆不是记住所有事情,而是在需要的时候想起正确的事情。"