cover

每次重启 Claude Code 就忘记之前的工作?Claude-Mem 帮你解决这个问题。

你是否遇到过这样的情况:

  • 重启会话后,Claude 完全忘记了之前讨论的内容
  • 需要反复解释项目背景和上下文
  • 无法引用上次会话的决策和代码变更
  • 团队成员接手项目时,上下文难以传递

Claude-Mem 是一个开源插件(作者 @thedotmack),通过自动捕获和压缩工具使用记录,实现真正的跨会话记忆能力。

核心功能

1. 持久化内存

Claude-Mem 通过 5 个生命周期钩子自动捕获上下文:

SessionStart → UserPromptSubmit → PostToolUse → Stop → SessionEnd

每次工具使用、代码变更、决策过程都会被自动记录,无需手动保存。

2. 智能搜索

mem-search 技能 提供 10 种搜索方式:

搜索类型 用途
搜索观察 全文搜索工具使用记录
搜索会话 查找会话摘要
按文件搜索 查找特定文件的变更
按类型搜索 按决策/bug修复/功能分类
时间线查询 获取特定时间点的上下文

自然语言查询示例:

"上次会话我们做了什么?"
"我们是怎么实现用户认证的?"
"worker-service.ts 最近有什么改动?"

3. Web 查看器

访问 http://localhost:37777 可以:

  • 实时查看内存流
  • 浏览所有观察记录
  • 查看会话摘要
  • 管理配置设置

4. 渐进式披露

根据相关性分层展示记忆内容,控制令牌消耗:

第一层:最相关的 3-5 条观察(高优先级)
第二层:相关的 5-10 条观察(中优先级)
第三层:背景信息(低优先级)

快速安装

在 Claude Code 终端中执行:

# 1. 添加插件市场
/plugin marketplace add thedotmack/claude-mem

# 2. 安装插件
/plugin install claude-mem

# 3. 重启 Claude Code

重启后自动开始工作,无需额外配置。

系统架构

┌─────────────────────────────────────┐
│   Claude Code (主进程)              │
│   └── 5 个生命周期钩子              │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│   Worker Service (HTTP API)         │
│   ├── 端口: 37777                   │
│   ├── Web 查看器界面                │
│   └── 10 个搜索端点                 │
└──────────────┬──────────────────────┘
               │
               ▼
┌─────────────────────────────────────┐
│   数据存储层                         │
│   ├── SQLite 数据库                 │
│   └── Chroma 向量数据库             │
└─────────────────────────────────────┘

混合搜索策略:

  • 60% 语义搜索(理解查询意图)
  • 40% 关键词搜索(精确匹配)

实战场景

场景 1:长期项目开发

查询历史决策:

"我们为什么选择 PostgreSQL 而不是 MongoDB?"

场景 2:Bug 修复追踪

查找修复方法:

"之前是怎么修复登录超时问题的?"

场景 3:团队协作

新成员快速了解项目:

"项目的核心架构是什么?"
"这个模块最近有什么变更?"

配置优化

配置文件位置:~/.claude-mem/settings.json

常用配置:

{
  "ai_model": "claude-sonnet-4-5",
  "worker_port": 37777,
  "context_injection": {
    "enabled": true,
    "max_observations": 10,
    "progressive_disclosure": true
  }
}

性能优化建议:

  1. 控制观察数量:

    "max_observations": 5  // 减少令牌消耗
    
  2. 定期清理旧数据:

    cd ~/.claude-mem
    sqlite3 claude-mem.db "DELETE FROM observations WHERE created_at < date('now', '-90 days');"
    

常见问题

Q: 如何排除敏感信息?

A: 使用 <private> 标签:

<private>
API_KEY=sk-xxxxxxxxxxxxx
</private>

Q: 会影响性能吗?

A: 影响很小。钩子脚本异步执行,Worker 服务独立运行。

Q: 如何备份数据?

A: 备份整个目录:

cp -r ~/.claude-mem ~/claude-mem-backup-$(date +%Y%m%d)

总结

核心优势:

  • ✅ 自动捕获上下文,无需手动保存
  • ✅ 自然语言搜索,快速查找历史工作
  • ✅ 混合搜索架构,确保检索准确性
  • ✅ 渐进式披露,控制令牌成本
  • ✅ Web 界面,可视化管理

适用场景:

  • 长期项目开发
  • Bug 修复追踪
  • 团队协作
  • 知识沉淀

相关推荐


关于订阅选项

如果你需要使用 Claude Code,有几种订阅方式:官方订阅(直接从 Anthropic)、拼车服务(如 Easy Claude Code 等,价格更经济)、或企业方案。Easy Claude Code 是拼车服务之一,提供经济实惠的订阅方案。了解更多