10+年产品经理聊聊产品、测测产品,产品人交流学习成长平台,按 Ctrl+D 收藏我们
关于我 留言板 小程序 标签云

苏米客

  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
  • 登录
  • 首页
  • AIGC
    • AI最新动态
    • AI学习教程
    • AI工具集合
    • AI产品百科
    • AI编程开发
    • AI提示词
    • AI开源项目
  • Axure
    • Axure动态
    • Axure教程
  • 产品
    • 用户体验
    • 产品设计
    • 苏米杂谈
  • 资源
    • 产品UI组件库
    • 开源图标库
    • 中后台框架
  • 书单
    • AI书籍
    • 用户体验
    • UI视觉
    • 产品研究
    • 其他类型
  • 下载
    • Axure组件
    • Axure原型
    • 文档报告
    • 素材资源
当前位置: 首页 » AI编程开发

Claude-Mem:通过持久内存压缩系统,让 Claude 真正记住并复用长期上下文

8小时前 AI编程开发 40 0

在持续使用Claude Code进行项目开发的过程中,我发现了一个让人崩溃的现象——每次重启Claude Code,它都像《海底总动员》里的多莉一样,把我们之前的所有讨论、决策、甚至代码架构彻底忘记。

这不仅意味着大量重复的上下文补充工作,更严重的是对Token的无谓浪费和协作效率的急剧下降。

这个问题的根源在于:Claude Code缺乏跨Session的持久化记忆机制。

带着这个痛点,我接触到了claude-mem这个项目,它提供了一个系统化的解决方案。

为什么Claude每次都会“失忆”

Claude Code的工作原理决定了它的"遗忘症":每个新Session启动时,系统只能访问当前的对话内容,对历史工作一无所知。

这在短期对话中尚可接受,但在真实项目场景中会产生严重后果:

  • 第一天实现用户认证,第二天Claude不知道采用的是什么认证方案
  • 第三天无法回忆数据库Schema的设计决策
  • 第四天重复解释API设计的原因和思路

更棘手的是Token限制问题。Claude Code每个Session约有50次工具调用额度,每次调用消耗1k-10k个Token。

用完即耗尽context,导致不得不重启并重新提供项目信息——这形成了一个恶性循环。

渐进式信息检索模型

如果两位同事在进行技术讨论,他们不会每次都从头开始。他们通常依靠:

  1. 记住关键决策("我们选择Redis做缓存")
  2. 保留问题印象("那个并发Bug还没修")
  3. 需要时查阅详细信息("那个函数的完整实现")

这种工作方式遵循渐进式记忆提取的逻辑:

  • 第一层:存在性索引 - 知道做过这件事
  • 第二层:摘要层面 - 理解大致内容
  • 第三层:完整细节 - 查询原始数据

人类大脑不会把所有细节都装入工作记忆,这样会导致认知过载。我们只保留关键信息,需要时才调取详细内容。

Claude-Mem的架构设计

核心工作流程

Claude-Mem通过以下流程实现持久化记忆:

Session启动 
  ↓ 自动注入最近观察记录作为上下文
用户提问
  ↓ 创建新session,保存prompt
工具执行
  ↓ 捕获所有观察(文件读写、命令执行等)
Worker处理
  ↓ 用Claude Agent SDK提取学习成果
Session结束
  ↓ 生成总结,准备下次使用

五个关键执行阶段

1. Context Hook - Session启动时的上下文注入

Claude Code启动时,Context Hook会自动触发,从数据库中提取最近10条观察记录,以索引形式注入Claude的上下文。这里的关键是使用"索引形式"而非完整内容:

  • 🔴 [Decision] 选择Express作为API框架 (Token成本: ~500)
  • 🔵 [Feature] 实现用户认证中间件 (Token成本: ~450)
  • 🟤 [Bugfix] 修复并发写入导致的数据竞争 (Token成本: ~380)

这样Claude能够快速获得项目背景,而不会被冗余细节淹没。

2. User Message Hook - Session创建与Prompt记录

用户输入第一个问题时,系统创建新的Session并记录Prompt内容。这个Session会持续到Claude Code关闭或手动清除为止。

3. New/Save Hook - 观察数据的捕获

这是系统最核心的部分。每当Claude使用工具(read_file、write_file、bash等)时,Hook会捕获:

  • 工具名称与参数
  • 工具的输出结果
  • 时间戳和Session ID

这些原始数据存入数据库,等待后续处理。

4. Worker Processing - AI驱动的学习成果提取

这是Claude-Mem最"优雅"的设计。后台Worker(由PM2管理)会:

  • 监听新的观察记录
  • 调用Claude Agent SDK进行AI分析
  • 从工具调用中提取关键学习成果

例如,当Claude执行"npm install express"时,Worker会生成压缩的观察记录:

{
  "type": "decision",
  "concept": "framework-choice",
  "narrative": "选择Express作为Web框架,因为它轻量且社区成熟",
  "files": ["package.json"],
  "tokens": 480
}

这条观察只消耗~500个Token,但包含了最关键的信息。压缩率高达95%。

5. Summary Hook - Session级别的总结生成

Claude Code关闭时,系统生成Session总结:

本次Session主要完成了项目初始化,选择了Express + SQLite技术栈,实现了基础的用户认证中间件,并修复了一个并发写入的Bug。

这个总结会在下次启动时显示在上下文顶部。

按需深度查询

Mem-Search Skill - 自然语言查询系统

如果Claude需要某个观察的完整细节,可以调用Mem-Search Skill进行查询。这使得信息获取遵循"按需加载"原则:

  • 第一层:查看索引 - 了解存在哪些观察 (~10 Token/条)
  • 第二层:查看摘要 - 理解大概内容 (~500 Token/条)
  • 第三层:查询完整内容 - 获取详细工具输出 (~10k Token/条)

Claude可以自主决策:某个观察看起来不太相关,不值得花5k Token去查,不如直接读源代码(可能仅需1k Token)。

十种搜索操作能力

Mem-Search支持以下查询维度:

  1. 全文搜索观察 - 关键词匹配所有观察
  2. 搜索Session总结 - 找到相关历史Session
  3. 搜索用户Prompt - 查找之前提出的问题
  4. 按概念搜索 - 如"discovery"、"problem-solution"
  5. 按文件搜索 - 找涉及某文件的所有观察
  6. 按类型搜索 - decision、bugfix、feature、refactor等
  7. 最近上下文 - 获取最近的Session背景
  8. 时间线查询 - 查看时间点前后的发生事项
  9. 带时间线的搜索 - 搜索并返回相关时间线
  10. API帮助 - 查看搜索API文档

用户可以直接使用自然语言提问:

  • "上个Session我们做了什么?"
  • "我们之前修过这个Bug吗?"
  • "认证是怎么实现的?"
  • "最近对worker-service.ts做了哪些改动?"

Claude会自动调用Mem-Search查询相关记录并返回答案。相比传统MCP工具,mem-search作为"skill"而非"tool",节省了约2,250个Token。

混合搜索:语义与关键词的融合

Claude-Mem采用Hybrid Search策略:

  • SQLite FTS5 - 全文索引,实现快速关键词搜索
  • Chroma向量数据库 - 语义相似度搜索

例如,当提问"我们是怎么处理并发问题的?"时:

  • 关键词搜索会找到含"并发"的观察
  • 语义搜索会找到含"race condition"、"mutex"、"lock"的观察
  • 两者结合大幅提升准确率

Beta功能

核心机制:实时Transcript压缩

传统Claude Code的问题在于:工具输出会累积在context中,最终导致context耗尽。Endless Mode通过实时压缩解决这一问题:

  • Working Memory (Context):压缩后的观察 (~500 Token/条)
  • Archive Memory (Disk):完整工具输出,随时可调取

工作流程:

  1. 工具执行完成后立即生成观察摘要 (~500 Token)
  2. 原始输出存储到磁盘
  3. 用摘要替换context中的原始输出

效果:Context增长速度从O(N²)降低到O(N),理论上支持20倍以上的工具调用而不耗尽context。

Trade-off:速度与容量

Endless Mode的代价是:每次工具执行后需要额外60-90秒来生成摘要。这就是为什么它仍处于Beta阶段。用户可以根据需求选择:

  • 选择速度:使用稳定版,获得实时响应
  • 选择容量:使用Beta版,获得"无限"context

可在 http://localhost:37777 的Web UI中切换版本,数据完全保留。

Web Viewer UI:实时的记忆可视化

Worker启动后,访问 http://localhost:37777 可以看到:

  • 当前运行的所有Sessions
  • 观察记录的完整时间线
  • 每条观察的详细信息
  • Token使用统计和成本分析
  • 亮色/暗色主题切换(v5.1.2新增)

这个UI不仅美观,更能帮助优化工作流。通过观察UI,你会发现:

  • 哪些工具调用产生了大量观察
  • 哪些观察被标记为"critical"(🔴)
  • 哪些Session的Token消耗特别高

实际使用体验

三个显著改变

1. 消除"教学"环节

以前每次启动Claude Code,需要花5-10分钟解释项目结构。现在可以直接说"继续昨天的工作",Claude就知道该做什么。上下文注入使得Claude自动拥有项目背景。

2. Claude主动参考历史决策

当提问"应该用Redis还是Memcached做缓存?"时,Claude会回复:

"根据上次Session的讨论,我们决定用Redis,因为它支持持久化。"

并附上claude-mem:// 引用链接,指向那次决策的观察记录。这种体验接近于和记忆力良好的同事协作。

3. Token使用效率大幅提升

Claude无需每次都重新读取整个代码库,而是可以通过Mem-Search快速查询之前的处理方案。节省的Token意味着能进行更多工具调用,完成更复杂的任务。

技术架构详解

Claude-Mem的核心由6个异步执行的生命周期Hooks组成:

  1. context-hook - Session开始时注入上下文
  2. user-message-hook - 捕获用户的prompt
  3. new-hook - 工具执行前的准备工作
  4. save-hook - 保存工具执行结果
  5. summary-hook - Session结束时生成总结
  6. cleanup-hook - 清理临时数据

此外还有Smart Install (pre-hook),检查依赖是否已缓存,将npm install时间从2-5秒降至10毫秒。

后端服务与数据存储

  • Worker Service:由PM2管理的后台进程,提供HTTP API(端口37777)
  • 数据存储:SQLite数据库(~/.claude-mem/claude-mem.db),使用FTS5进行全文索引
  • 向量存储:Chroma Vector Database用于语义搜索
  • API端点:10个搜索endpoint、Web Viewer UI、健康检查和日志接口

安装与配置

快速安装

在Claude Code的终端中执行:

/plugin marketplace add thedotmack/claude-mem/plugin
install claude-mem

然后重启Claude Code即可。无需额外配置。

初始化流程

第一次启动时,Claude-Mem会自动:

  1. 初始化SQLite数据库
  2. 启动PM2 Worker
  3. 打开Web Viewer UI(http://localhost:37777)

系统要求

  • Node.js 18.0.0或更高版本
  • Claude Code最新版(支持plugin系统)
  • PM2(已内置,无需全局安装)
  • SQLite 3(已内置)

可选配置

通过 ./claude-mem-settings.sh 可配置:

  • CLAUDE_MEM_MODEL - AI模型选择(默认claude-sonnet-4-5)
  • CLAUDE_MEM_WORKER_PORT - Worker端口(默认37777)
  • CLAUDE_MEM_DATA_DIR - 数据目录(仅开发用)

大多数场景下默认配置即可满足需求。

常见问题诊断

Worker未启动

运行命令:npm run worker:restart

上下文注入未生效

运行命令:npm run test:context 进行检查。首次使用时数据库中可能还没有观察记录。

搜索功能不工作

检查FTS5表是否存在:

sqlite3 ~/.claude-mem/claude-mem.db "SELECT name FROM sqlite_master WHERE type='table';"

若问题持续,可直接让Claude诊断:"帮我诊断claude-mem",Troubleshoot Skill会自动激活并提供修复方案。

总结

作为一个深度使用Claude Code开发者,我能感受到Claude-Mem解决的不仅是一个表面问题,而是触及AI协作本质的挑战。

这个项目证明了一个重要概念:AI的"记忆能力"并非固定限制,而是系统设计的产物。通过合理的架构——AI驱动的内容压缩、渐进式信息检索、混合搜索引擎、后台Worker管理——我们可以在有限的Token预算内实现几乎无限的记忆容量。

最深层的意义在于:Claude-Mem让跨Session协作变成了真正意义上的"对话"而不是"独立的问答"。你不再需要每次都从零开始教Claude你的项目,而是像和一个真正的同事沟通一样,基于共同的历史背景进行对话。这种模式转变将显著提升复杂项目的开发效率。

如果你也在使用Claude Code进行真实项目开发,如果你也为"Token耗尽"和"记忆丧失"感到困扰,Claude-Mem值得一试。它可能会重新定义你对AI编程助手的理解。

相关资源

  • GitHub: thedotmack/claude-mem
  • 完整文档: docs.claude-mem.ai
  • 安装指南: Installation Guide
  • 架构概览: Architecture Overview
  • Beta 功能: Beta Features
  • 许可证: AGPL-3.0
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
未经允许不得转载:Claude-Mem:通过持久内存压缩系统,让 Claude 真正记住并复用长期上下文
#Claude Code #Claude-Mem 
收藏 1
cc-switch:Claude Code 环境变量快速切换工具
Mistral 3 来了:这次只对标中国模型
推荐阅读
  • Playwright MCP:让AI帮你完成所有浏览器自动化,两步搞定网页截图
  • Claude Code for VS Code 上线bypass permissions,不用Node.js直接原生安装
  • Claude用不起?最强平替 GLM-4.6 全平台编程开发接入实战教程
  • Cursor + Git: 用Cursor AI 搭建智能化 Git 协同
  • Claude Code 子代理完整指南
评论 (0)
请登录后发表评论
分类精选
手把手教你用支付宝订阅 Cursor Pro:国内用户最全开通教程(附取消自动扣费)
16470 5月前
学生党0元白嫖!手把手教你解锁Cursor Pro年VIP,超详细申请教程(附避坑指南)
11858 7月前
Cursor 0.46更新,新增支持Claude 3.7 + GPT 4.5,Cursor Pro 无限续杯攻略,全自动化工具使用说明
11706 9月前
Claude Code Rules:claude.md文件配置完全指南
11215 4月前
Claude Code 官方已支持Windows系统!手把手教你免费安装使用Claude Code
10728 4月前
Claude Code + MCP 实战教程:手把手教你如何在Claude Code里面使用MCP
10179 4月前
Cursor代码生成器中文使用教程,Cursor新手入门完全指南,全网最全面详细的Cursor使用教程
10164 11月前
手把手教你在VS Code & Cline/RooCode 中使用Kimi K2 模型,配置实录+开发实战体验
7827 4月前
手把手教你在Claude Code 中使用Kimi K2 模型,超简单配置教程分享
7776 4月前
Cursor新手3分钟快速搞懂 Ask/Manual/Agent 三种模式及高级技巧
7168 6月前

文章目录

关注「苏米客」公众号

订阅推送更及时,手机查看更方便
分类排行
1 Claude-Mem:通过持久内存压缩系统,让 Claude 真正记住并复用长期上下文
2 cc-switch:Claude Code 环境变量快速切换工具
3 Claude用不起?最强平替 GLM-4.6 全平台编程开发接入实战教程
4 黑五特惠GLM-4.6,教你如何配置 Claude Code 套餐的图像分析、视频理解、联网搜索等MCP
5 从零开始的Claude Skill实操指南:10分钟对话搞定你的第一个自定义Skill
6 GLM-4.6 黑五Coding套餐,折上折!支持 Claude Code、Cline、OpenCode、Roo 代码等
7 Spec Kit 实战指南:用规范驱动开发告别 Prompt 工程难题
8 Cursor封号?claude-4.5用不了?替代方案新选择,Verdent AI深度使用指南
9 Gemini 3 Pro 在 Gemini CL 上的完整使用指南:从申请到上手的四步操作流程
10 Cursor 2.1 发布:改进计划模式,AI 代码审查,计费方式等
©2015-2024 苏米客XMSUMI 版权所有 · WWW.XMSUMI.COM 闽ICP备14005900号-6
微信文章助手 程序库 免费影视APP 免费字体下载 Axure RP 10 免费Axure模板 Axure元件库下载 申请友联