1. 项目背景与痛点分析
作为一名长期使用AI助手的开发者,最让我头疼的问题莫过于会话状态的丢失。每次与OpenClaw交互时,它都像得了健忘症一样,上次对话中确认的偏好设置、进行到一半的任务状态、甚至是已经达成的共识,在下一次会话时都需要重新交代。这种"金鱼记忆"现象严重影响了工作效率,主要体现在三个方面:
- 配置重复劳动:昨天花半小时设置的开发环境参数,今天打开新会话时又要重新配置
- 任务连续性中断:多步骤任务执行到第三步时中断,下次必须从第一步重新开始
- 学习成本浪费:已经教会AI的个性化工作流,无法形成长期记忆积累
经过分析,这本质上是短期记忆(in-context memory)与长期记忆(long-term memory)的衔接问题。OpenClaw默认只维护当前会话的短期记忆,当会话结束时这些记忆就随风而逝了。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 解决方案设计思路
2.1 三层记忆架构设计
我设计的memclawz系统采用分层记忆架构,兼顾响应速度与记忆深度:
| 层级 | 存储介质 | 响应时间 | 容量 | 典型内容 |
|---|---|---|---|---|
| QMD工作记忆 | JSON文件 | <1ms | 10KB | 当前会话状态、临时变量 |
| Zvec语义记忆 | 向量数据库 | <10ms | 1GB | 决策记录、经验教训 |
| MEMORY.md | 文本文件 | ~50ms | 无限 | 完整历史记录 |
2.2 关键技术选型
向量数据库引擎:选用Zvec而非主流选项(如FAISS、Pinecone),因为:
- 专为对话记忆优化的小型引擎
- 支持实时增量更新
- 内存占用仅200MB左右
守护进程方案:在macOS环境下选择launchd,因为:
- 原生系统支持,无需额外依赖
- 崩溃后自动重启保障
- 完善的日志管理机制
记忆提取策略:采用自动检测+手动确认的双重机制:
- 自动捕获决策点(检测到"决定"、"选择"等关键词)
- 手动通过
@remember指令强制记忆重要内容
3. 详细实现步骤
3.1 环境准备与依赖安装
首先确保Python环境符合要
