记忆系统搭建完成报告

搭建时间:2026-03-05 14:00-14:30 参考文档OpenClaw 记忆系统搭建指南 维护者:Travel Agent


✅ 已完成的工作

1. 文件结构创建

~/.openclaw/workspace/travel/
├── AGENTS.md              ✅ 已添加记忆系统规则
├── MEMORY.md              ✅ 已添加写入/清理/召回规则
├── HEARTBEAT.md           ✅ 已添加日志兜底和每周蒸馏
├── openclaw.json          ✅ 已配置心跳间隔 60 分钟
└── memory/
    ├── heartbeat-state.json ✅ 心跳状态追踪
    ├── 2026-03-05.md        ✅ 今日日志(已有)
    └── 2026-03-05-test.md   ✅ 测试日志(新建)

2. AGENTS.md 记忆规则

已添加的核心规则:

每次 Session 启动必做

  1. 读取 MEMORY.md(长期记忆)
  2. 读取 memory/YYYY-MM-DD.md(今天 + 昨天)
  3. 如果是 session 第一条消息,主动告知用户"上次到哪"

语义触发写日志

  • ✅ 确认了某件事
  • ✅ 完成了实质性操作
  • ✅ 话题明显切换

写日志标准:

  • 已完成:标注"已完成,结论:X"
  • 进行中:写明"进行中。已知约束:X"
  • 修正:写"修正:之前 X 有误,正确是 Y"

三层防御机制

  1. 预防:写进行中任务时,约束与状态同行
  2. 侦测:恢复高风险任务时,先搜记忆找约束
  3. 兜底:执行不可逆操作前,当场确认约束

不存在"心理笔记"

  • "记住这个" = 立刻写入文件
  • session 内记忆不持久化

memory_search 使用规范

  • 标注来源并确认
  • 不直接当事实用

3. HEARTBEAT.md 自动维护

已添加的功能:

日志兜底写入(每 15 分钟检查)

  • 读取 heartbeat-state.jsonlastLogWrite
  • 超过 15 分钟 + 有实质性内容 → 写入日志
  • 写完后更新时间戳

每周记忆蒸馏

  • 读取 lastWeeklyTasks
  • 不是当前周 → 执行蒸馏
  • 提炼近 7 天日志中有价值的内容到 MEMORY.md

4. MEMORY.md 规则

已添加的规则说明:

> 写入规则:只写 3 个月后仍有效的事实、决策、偏好。写入时标注日期。
> 
> 清理规则:每周蒸馏时清理过期条目。
> 
> 召回规则:搜到内容后标注来源确认,不直接当事实用。
> 
> 有效期标注:
> - ✅ 长期有效(无特殊说明)
> - ⏰ 有效期至:YYYY-MM-DD
> - 📅 创建日期:YYYY-MM-DD

5. openclaw.json 配置

{
  "agents": {
    "main": {
      "heartbeat": {
        "intervalMinutes": 60
      }
    }
  },
  "memory": {
    "embedding": {
      "provider": "qmd",
      "model": "qmd"
    }
  }
}

配置说明:

  • 心跳间隔:60 分钟(避免 token 浪费)
  • 语义搜索:使用 qmd embedding(无需额外 API)

6. heartbeat-state.json 状态追踪

{
  "lastLogWrite": "2026-03-05T14:35:00+08:00",
  "lastMorningBriefing": "",
  "lastWeeklyTasks": ""
}

字段说明:

  • lastLogWrite:上次日志写入时间
  • lastMorningBriefing:上次晨间汇报日期
  • lastWeeklyTasks:上次蒸馏周次

🎯 记忆系统架构

┌─────────────────────────────────────────┐
│  Session Context(热)                    │
│  当前对话的上下文窗口                     │
│  生命周期:单次 session                    │
├─────────────────────────────────────────┤
│  Daily Log(温)                          │
│  memory/YYYY-MM-DD.md                     │
│  当天发生的事,原始记录                    │
│  生命周期:日                              │
├─────────────────────────────────────────┤
│  Long-term Memory(冷)                   │
│  MEMORY.md                                │
│  蒸馏后的长期记忆,精简有效                │
│  生命周期:月 - 永久                        │
└─────────────────────────────────────────┘

数据流向:

Session Context → 写入 Daily Log → 定期蒸馏到 MEMORY.md

📋 检查清单(逐项验证)

  • memory/ 目录已创建
  • MEMORY.md 已创建并添加规则
  • memory/heartbeat-state.json 已创建
  • AGENTS.md 中已添加 session 启动读取规则
  • AGENTS.md 中已添加语义触发写日志规则(含约束同行要求)
  • AGENTS.md 中已添加三层防御规则
  • AGENTS.md 中已添加"心理笔记不存在"规则
  • openclaw.json 中已配置心跳(intervalMinutes: 60)
  • HEARTBEAT.md 中已添加日志兜底检查
  • HEARTBEAT.md 中已添加每周蒸馏规则
  • 测试日志已创建(2026-03-05-test.md)
  • 发一条消息测试(待下次 session 验证)
  • 重启 session 测试(待下次 session 验证)

🚀 下一步

待测试项目(下次 session)

  1. Session 启动读取测试
    • 启动新 session
    • 观察是否主动读取 MEMORY.md 和今日日志
    • 观察是否汇报"上次到哪"
  2. 语义触发写日志测试
    • 完成一个操作
    • 观察是否自动写入 memory/YYYY-MM-DD.md
  3. 心跳兜底测试
    • 等待 15 分钟
    • 观察心跳是否检查并写入日志

📊 与原文对比

要求 状态 说明
文件结构创建 ✅ 完成 memory/、MEMORY.md、heartbeat-state.json
AGENTS.md 规则 ✅ 完成 所有记忆规则已添加
心跳配置 ✅ 完成 60 分钟间隔
HEARTBEAT.md ✅ 完成 日志兜底 + 每周蒸馏
三层防御 ✅ 完成 预防、侦测、兜底
语义搜索 ✅ 完成 qmd embedding
测试验证 ⏳ 待测 下次 session 验证

🎉 总结

记忆系统已完整搭建!

  • ✅ 文件结构完整
  • ✅ 规则配置完善
  • ✅ 心跳自动维护
  • ✅ 三层防御机制
  • ⏳ 待下次 session 验证实际效果

Git 提交168b06e 同步状态:✅ 已推送到远程仓库


搭建完成时间:2026-03-05 14:30 维护者:Travel Agent