Skip to main content

OpenClaw 自动记忆系统完整设计方案 v1.1

·2642 words·6 mins

背景
#

在使用 OpenClaw 作为个人数字助理的过程中,我发现了一个核心问题:对话记忆无法持久化

每次会话结束后,关键信息就丢失了。下次打开新会话,AI 完全不记得之前发生了什么。这导致:

  • 配置信息需要反复告知
  • 项目进度无法连续追踪
  • 用户偏好每次都要重新说明
  • 重要决策没有记录可查

为了解决这个问题,我设计并落地了一套自动记忆系统


设计目标
#

  1. 自动记录 - 用户无需手动操作,AI 自动捕捉关键信息
  2. 自动加载 - 每次会话启动,自动加载相关记忆
  3. 记忆持久 - 重启不丢,切换会话不丢
  4. 不膨胀上下文 - 分层存储,控制 Token 使用
  5. 用户无感 - 不改变使用习惯,只是增强功能

分层存储架构
#

四层记忆结构
#

层级 文件位置 用途 更新频率 加载优先级
元记忆 IDENTITY.md / USER.md / SOUL.md 固定身份、用户信息、全局配置 很少更新 🥉
短期记忆 memory/YYYY-MM-DD.md 当日对话关键信息、操作记录 每日自动更新 🥇
中期记忆 memory/YYYY-WW.md 本周关键信息汇总 每周自动更新 🥈
长期记忆 MEMORY.md 永久重要结论、决策、偏好 每周自动同步精华 🥈

目录结构
#

~/.openclaw/workspace/
├── IDENTITY.md          # AI 身份信息
├── USER.md              # 用户信息
├── SOUL.md              # 风格人设
├── MEMORY.md            # 长期记忆(精华)
├── TOOLS.md             # 本地工具配置
├── memory/
│   ├── 2026-03-12.md    # 每日记忆
│   ├── 2026-03-13.md    # 每日记忆
│   └── 2026-11.md       # 每周记忆 (2026 年第 11 周)
└── docs/
    └── AUTO_MEMORY_SYSTEM_COMPLETE.md

自动工作机制
#

3.1 自动记录
#

触发时机
#

  1. 预压缩刷新(主要):系统触发 Pre-compaction memory flush 时自动执行
  2. 用户明确要求:用户说「记住这个」「记下来」时立即追加
  3. 每周汇总:周日最后一次记录时自动汇总本周

记录规则
#

✅ 必须记录:

  • 用户明确要求记住的任何信息
  • 新建/修改的配置、服务、实例信息
  • Bug 修复记录、重要结论、决策
  • 用户偏好、习惯、个人信息变更
  • 项目进度里程碑、完成状态
  • 错误解决方法(下次可直接复用)
  • 架构变更、设计方案最终版

❌ 不记录:

  • 重复的日常对话废话
  • 工具执行的完整输出(只记录结论)
  • 临时调试信息(除非用户要求)
  • 敏感信息(密码、密钥、私密内容)

记录格式规范
#

## 2026-03-13 记忆记录

### [USER] 用户明确要求
- 10:30 记住:TTS 偏好改为 "Nova" 声音

### [AUTO] 自动记录关键信息
- 11:00 新建服务:agent-home,端口 8080,用途:家庭控制
- 11:15 Bug 修复:Feishu 消息发送失败,原因:token 过期

### [SYNC] 已同步长期记忆
- ✅ 用户时区确认为 Asia/Shanghai
- ✅ 偏好:不使用 markdown 表格,用列表代替

标记说明:

  • [USER] - 用户明确要求记住的(高优先级)
  • [AUTO] - AI 自动判断记录的(中优先级)
  • [SYNC] - 已同步到长期记忆的(永久保存)

3.2 自动加载
#

加载顺序(每次会话启动)
#

1. 🥇 今日短期记忆 → memory/YYYY-MM-DD.md(今天)
2. 🥈 最近 3 天记忆 → memory/YYYY-MM-DD.md(前 3 天)
3. 🥈 长期记忆 → MEMORY.md
4. 🥉 元记忆 → IDENTITY.md / USER.md / SOUL.md

Token 预算控制
#

文件类型 目标大小 最大行数 超限处理
每日记忆 < 2KB 50 行 自动压缩,只保留关键
每周记忆 < 5KB 100 行 摘要合并
长期记忆 < 10KB 200 行 定期清理过时内容
总计 < 20KB - 动态调整加载天数

3.3 自动汇总
#

触发时机
#

  • 每周日 23:59 或最后一次预压缩刷新时

汇总流程
#

1. 读取本周所有每日记忆文件 (7 个)
2. 提取关键信息,去重合并
3. 生成周汇总文件 memory/YYYY-WW.md
4. 筛选永久重要内容,同步到 MEMORY.md
5. 标记已同步的内容 [SYNC]

精华提取规则
#

同步到长期记忆的条件(满足任一即可):

  • 用户明确要求「永远记住」
  • 被引用复用 ≥ 3 次(高质量记忆)
  • 涉及核心配置/偏好/身份
  • 重要项目最终结论

不同步的内容:

  • 临时性信息(有明确过期时间)
  • 重复的日常操作记录
  • 已过时的配置/状态

特殊场景处理
#

4.1 多会话并发
#

场景: 同时打开多个会话,都写入同一天的记忆文件

处理方案:

  • 所有会话写入同一个 memory/YYYY-MM-DD.md
  • 使用时间戳 + 会话 ID 标记来源
  • 写入前读取最新内容,避免覆盖
  • 采用追加模式,不修改已有内容

4.2 隐私保护
#

场景: 敏感对话不应被记录

处理方案:

  • 用户说「不要记住」「别记这个」时,跳过本次记录
  • 涉及密码、密钥、隐私的内容,AI 主动不记录
  • 提供手动清理命令:/memory clear [日期]

4.3 记忆冲突
#

场景: 同一信息在不同时间被多次记录,内容不一致

处理方案:

  • 时间优先:最新记录覆盖旧记录
  • 用户优先:[USER] 标记的内容优先级最高
  • 在长期记忆中只保留最新状态,旧状态归档

落地步骤
#

第一步:创建目录
#

mkdir -p ~/.openclaw/workspace/memory

第二步:确认现有文件
#

确保以下文件存在(OpenClaw 默认已有):

  • IDENTITY.md
  • USER.md
  • SOUL.md
  • MEMORY.md

第三步:初始化今日记忆
#

# 创建今日记忆文件(如果不存在)
touch ~/.openclaw/workspace/memory/$(date +%Y-%m-%d).md

第四步:开始自动运行
#

无需额外配置,AI 按规则自动执行:

  • ✅ 每次预压缩时自动记录
  • ✅ 每次会话启动自动加载
  • ✅ 每周日自动汇总

优势总结
#

优势 说明
完全自动 用户无需手动操作,AI 自动记录加载
记忆持久 重启不丢,切换会话不丢,任何新会话都记得
不膨胀上下文 分层存储,只加载必要信息,token 控制良好
兼容原有习惯 不改变使用方式,只是增强功能
支持多会话 切换会话记忆不中断,关键信息自动同步
可追溯 每条记忆有来源标记,方便排查
可清理 定期清理机制,避免无限增长

效果示例
#

场景:今天部署了两个 agent
#

对话过程:

用户:帮我部署一个 home-agent,端口 8080
AI:已部署完成,服务运行在 http://localhost:8080

用户:再部署一个 work-agent,端口 8081
AI:已部署完成

用户:记住这两个 agent 的配置
AI:已记录到今日记忆,并同步到长期记忆

自动记录内容:

### [USER] 10:30
- 部署 agent:home-agent (端口 8080)
- 部署 agent:work-agent (端口 8081)

### [SYNC] 已同步长期记忆
- ✅ 常驻服务:home-agent (:8080), work-agent (:8081)

下次会话自动加载:

📚 记忆已加载:
  - 长期记忆:常驻服务配置已就绪
  - 今日记忆:2 条新记录

用户:work-agent 端口是多少?
AI:work-agent 运行在 8081 端口(今天部署的)

风险与应对
#

风险 影响 应对措施
自动记录误判 废话太多或漏记重要信息 保留用户手动标记通道,定期回顾调整
记忆文件膨胀 token 超限,加载缓慢 设置大小上限,定期清理,动态调整加载天数
隐私泄露 敏感信息被记录 AI 主动识别不记录,提供手动清理命令
多会话冲突 写入覆盖或混乱 追加模式 + 时间戳标记,读取最新内容
记忆过时 旧配置与新配置冲突 时间优先原则,最新记录覆盖,旧内容归档

待优化方向
#

  1. 智能判断优化 - 通过反馈循环提升自动记录准确率
  2. 记忆检索增强 - 配合 memory_search 工具,支持语义搜索
  3. 过期自动清理 - 给临时记忆加过期时间,自动删除
  4. 记忆可视化 - 生成记忆时间线/图谱,便于浏览
  5. 导出备份 - 支持记忆导出为 JSON/Markdown 备份

总结
#

自动记忆系统是 OpenClaw 的核心增强功能之一。它解决了 AI 助理记忆无法持久化的痛点,让对话关键信息能够自动记录、自动加载、长期保存。

通过分层存储架构和 Token 预算控制,系统在保证记忆连续性的同时,避免了上下文膨胀问题。多会话并发处理和隐私保护机制,让系统更加健壮和安全。

设计者: 老黄 (Ali) ⚙️
版本: v1.1
日期: 2026-03-13


参考资料
#