乐于分享
好东西不私藏

从Claude-Mem到OpenClaw:9天打造专属AI持久化记忆技能

从Claude-Mem到OpenClaw:9天打造专属AI持久化记忆技能

从Claude-Mem到OpenClaw:9天打造专属AI持久化记忆技能

说起来,AI助手”记性差”这个问题,真的是所有用过Claude Code、Cursor这些工具的人共同的痛。每次新建一个会话,AI就变成了”失忆症患者”——昨天写的代码结构是什么来着?上次为什么选了PostgreSQL而不是MySQL?通通不记得了。

我也是被这个问题折磨了很久,直到在GitHub上翻到了Claude-Mem这个项目。

一、项目概述

Claude-Mem是Alex Newman(@thedotmack)开源的一个持久化记忆压缩系统,专门给AI编码助手用的。GitHub地址是 github.com/thedotmack/claude-mem,用的是Apache-2.0许可证。

简单说,这玩意儿就是让AI能够跨会话记住你的项目历史、决策和偏好——相当于给AI装了一个外接硬盘。

这个项目从去年发布到现在,迭代速度相当快,已经成为目前最成熟、最实用的AI代理个人记忆解决方案之一。

核心定位:彻底解决AI助手的”上下文失忆”问题。

二、核心价值与作用

1. 解决AI开发的核心痛点

Claude-Mem精准击中了所有AI编码助手的致命缺陷——”上下文失忆”:

每次会话结束后,AI会完全忘记所有项目上下文;开发者需要反复向AI解释项目结构、技术栈和历史决策;大量宝贵的token被浪费在重复的上下文说明上;多日开发任务的连续性被无情打断。

2. 核心功能特性

这个系统的核心功能包括自动观察记录、AI智能压缩、混合搜索、实时Web管理界面,以及会话交接生成。

3. 技术架构优势

Claude-Mem采用了分层解耦架构:

  • 插件钩子层:轻量级IDE钩子,不阻塞主会话执行
  • 工作服务层:独立的Bun进程处理AI压缩和HTTP请求
  • 数据库层:SQLite+FTS5提供高性能本地持久化存储
  • 搜索层:混合搜索系统支持自然语言查询
  • UI层:实时SSE推送的Web管理界面

说实话,这种架构设计得很清晰。所有的记忆处理操作都在后台异步进行,完全不会影响AI助手的响应速度——这是我认为最关键的一点。

三、对OpenClaw的参考价值

作为一个深度使用OpenClaw的人,我在研究Claude-Mem的时候自然就在想:这些设计对OpenClaw有什么借鉴意义?

1. 架构层面的参考

Claude-Mem的以下架构设计理念对OpenClaw有重要的借鉴意义:

非阻塞后台处理:所有计算密集型的记忆压缩和索引操作都在独立的工作进程中进行,不影响主代理的执行。

标准化生命周期钩子:通过定义清晰的钩子接口,实现了与IDE的无缝集成。

混合搜索策略:结合全文搜索的精确性和向量搜索的语义理解能力。

渐进式披露机制:先返回轻量级索引,再按需获取详细内容,最大化token效率。

事务安全存储:使用SQLite的WAL模式确保数据一致性,防止系统崩溃导致的数据丢失。

2. 功能层面的参考

Claude-Mem的以下功能设计可以直接借鉴到OpenClaw中:

结构化观察设计:将原始工具输出转化为包含title、narrative、facts、concepts等字段的标准化格式。

会话交接生成:在会话结束时自动生成结构化的交接文档。

知识agent工作流:Build→Prime→Query的知识处理流程。

文件夹文档自动生成:根据项目内容自动生成标准化的项目文档。

内容类型分类:为不同类型的内容(bugfix、feature、refactor、discovery、decision、change)设置不同的处理策略。

3. 最佳实践参考

Claude-Mem经过多个版本的迭代,积累了大量AI记忆系统的宝贵最佳实践:

概念标签系统:使用how-it-works、why-it-exists、what-changed、problem-solution、gotcha、pattern、trade-off等标签对观察进行分类。

用户/代理分离:将用户输入与代理生成的操作记忆分开处理。

资源优先原则:静态知识(如架构文档、API参考)不应用时效性衰减。

渐进式加载:根据token预算动态调整注入的上下文量。

手动清理机制:用户可通过clean命令手动清理不再需要的folder CLAUDE.md文件。

四、OpenClaw集成可行性深度分析

1. 官方支持状态

Claude-Mem官方文档列举的受支持IDE包括:Claude Code, Cursor, Gemini CLI, Windsurf, OpenCode, Codex CLI, OpenClaw。

这里有个有意思的细节:OpenClaw在列表中排在最后。这说明两件事:一是OpenClaw确实在支持列表里,说明官方是认可这个集成的;二是集成深度明显不及Claude Code原生——官方文档甚至没有提供OpenClaw的专门集成步骤。

GitHub仓库中确实存在openclaw/目录,包含OpenClaw集成代码,但具体功能完整性和稳定性需要进一步验证。

2. 官方安装方式

Claude-Mem官方提供三种标准安装方式:

方式一(推荐):运行 npx claude-mem install,会启动交互式安装程序,要求用户手动选择IDE。缺点是这个命令不具备自动检测OpenClaw的能力。

方式二(插件市场):运行 /plugin marketplace add thedotmack/claude-mem 和 /plugin install claude-mem

方式三(源码编译)

git clone https://github.com/thedotmack/claude-mem.gitcd claude-memnpm installnpm run build

3. 集成难度评估

坦白说,OpenClaw的集成难度比我想象的要高。主要原因是:

OpenClaw的钩子体系按turn/事件粒度设计,没有等效的session-end兜底钩子。agent_end属于插件钩子而非内部钩子,无法通过~/.openclaw/hooks/目录注册,只能通过开发完整插件实现。它每次turn结束后触发,是fire-and-forget模式,不能可靠地启动异步子agent。

4. 核心结论

OpenClaw的最大差距有两个:

一是没有工具调用级的钩子机制,这是Claude-Mem实现全自动记忆的核心。

二是没有原生的”会话结束”事件,无法在用户离开会话时自动触发压缩。

但其余功能(结构化压缩、3层检索、会话摘要)都可以通过定时任务+子agent+skill开发来模拟。

五、最优解:OpenClaw专属轻量级记忆助手

1. 为什么不直接安装Claude-Mem

经过深入分析,我的建议是不推荐直接安装Claude-Mem

原因很现实:OpenClaw缺乏工具调用级钩子和原生会话结束事件,直接安装的集成价值非常有限。反而可能与现有的GBrain/MEMORY.md系统产生冲突——两套记忆系统打架,这就麻烦了。

2. 轻量级记忆助手能解决的核心问题

其实对于OpenClaw用户来说,核心需求无非是这几个:

让AI记住上次做到了哪里;让AI记住做过的关键决策;让AI记住常用的技术栈和偏好;让AI能够检索历史会话内容。

这些需求完全可以用更轻量的方式实现。

3. 开发方法:用OpenClaw开发OpenClaw

核心思路是:完全使用OpenClaw本身的能力来开发这个工具,不需要任何额外的外部框架。

关键发现:Cron定时任务是最直接可靠的触发方案,也是目前唯一不需要开发插件就能实现的方式。

推荐方案流程图

cron定时任务(每小时/每天)     ↓调用 sessions_spawn --session isolated     ↓启动"记忆压缩"子agent     ↓扫描所有未压缩的会话     ↓读取 sessions_history     ↓生成结构化压缩(结论/决策/待办/知识点)     ↓写入 memory/YYYY-MM-DD.md     ↓同步 GBrain typed links

4. 详细开发步骤

第一步:设计压缩Prompt(1天)

设计一个专业的会话压缩Prompt:

你是专业的会话压缩专家。每次会话结束时,你会收到一段完整的会话记录,请提取以下结构化信息:## 会话结论- 本次会话完成了什么具体任务- 做出了哪些关键决策- 存在哪些遗留问题## 知识点- 本次会话中学到的新认知(如果有)## 待办事项- 明确的下一步行动格式要求:- 每个部分不超过5行,使用自然语言,避免简单列表堆砌- 结论要具体明确,不要泛泛而谈- 必须同时输出YAML frontmatter,包含title、date、tags、related_concepts字段- 必须在正文中使用双链标签引用相关概念

第二步:开发记忆压缩Skill(2天)

创建标准的OpenClaw Skill文件:

# memory-session-compress描述:将指定会话记录压缩为结构化的摘要,包含会话结论、知识点和待办事项。触发方式:由cron定时任务或agent主动触发,无需用户手动调用。参数:- session_key: 要压缩的会话唯一标识(可选,默认为当前会话)

第三步:配置cron定时任务(1天)

这是最可靠、最稳定的方案,无需开发任何插件:

openclaw cron add \ --name "memory-compress" \ --cron "0 * * * *" \ --session isolated \ --message "扫描所有未压缩的会话,调用 memory-session-compress skill 生成结构化摘要,写入 memory/YYYY-MM-DD.md 并同步 GBrain"

第四步:实现3层渐进式检索(2天)

OpenClaw官方只有memory_search一个搜索工具,通过prompt指令实现三层检索逻辑:

在系统提示词中加入以下说明,让AI自动选择合适的检索层级:

  • 先使用Layer 1获取最近7天的摘要标题
  • 如果需要更多上下文,使用Layer 2获取指定日期前后的内容
  • 只有在需要完整细节时,才使用Layer 3获取全部内容

可选增强:符号链接打通Workspace与知识库

随着agent数量增加,各agent的session文件可能散落在不同workspace目录。可通过操作系统符号链接将多个agent workspace目录映射至Obsidian Vault:

ln -s ~/workspace/taobao-operation/memory ~/obsidian-vaults/musk/知识库/会话记忆

第五步:测试与迭代(3天)

  • 在真实业务场景中测试压缩质量
  • 不断调整Prompt,直到摘要准确率达到90%以上
  • 完善GBrain typed links同步机制
  • 测试cron定时任务的稳定性和可靠性

可选增强:本地大模型接管压缩(零API消耗)

记忆压缩是典型的”高计算密度、低实时要求”的后台任务,适合用本地模型处理。可使用Ollama部署qwen2.5:14b,将压缩Prompt发往本地推理,完全消除API调用费用。

# 示例:Ollama本地推理curl -X POST http://localhost:11434/api/generate \-d '{"model": "qwen2.5:14b", "prompt": "<压缩Prompt + 会话内容>"}'

5. 工时估算

阶段
预计工时
设计压缩Prompt
1天
开发记忆压缩Skill
2天
配置cron定时任务
1天
实现3层检索
2天
测试与迭代
3天
总计 9天

六、总结与建议

1. 项目价值总结

Claude-Mem是目前最成熟、最实用的AI代理个人持久化记忆解决方案。它通过自动观察、AI压缩和智能检索,彻底解决了AI助手的”上下文失忆”问题,大幅提升了个人开发效率。

对于OpenClaw生态来说,Claude-Mem是一个极具参考价值的项目,其架构设计和功能实现为OpenClaw的记忆系统提供了优秀的范本。

2. 最终建议

短期建议:不推荐直接安装Claude-Mem。由于OpenClaw缺乏工具调用级钩子和原生会话结束事件,直接安装的集成价值非常有限,反而可能与现有的GBrain/MEMORY.md系统产生冲突。

中期建议:启动轻量级记忆助手项目。先从Phase 1开始,设计并测试压缩Prompt,在真实业务中验证效果。这一步不需要开发人员介入,产品或运营人员即可完成。触发机制使用cron定时任务,这是目前唯一不需要开发插件就能实现的可靠方案。

长期建议:逐步完善记忆系统。在验证了压缩效果和触发机制后,再逐步开发Skill、配置cron任务、实现3层检索,最终打造一个完全适配OpenClaw架构和业务需求的专属记忆系统。如果需要更实时的触发机制,可以考虑开发完整的OpenClaw插件来使用agent_end钩子。

3. 未来展望

随着AI代理技术的不断发展,持久化记忆将成为AI助手的核心竞争力之一。通过借鉴Claude-Mem的先进理念并结合OpenClaw的自身特点,我们可以打造一个更加强大、更加智能、更加贴合业务需求的AI开发助手。

同时,也期待OpenClaw官方能够在未来版本中添加原生的会话结束钩子和工具调用拦截机制,这将极大地降低记忆系统的开发难度,推动整个生态的发展。