6314518166013289c2185564882dce3fff595d0d
memory/\350\256\260\345\277\206\347\263\273\347\273\237\346\220\255\345\273\272\346\212\245\345\221\212.md
| ... | ... | @@ -0,0 +1,233 @@ |
| 1 | +# 记忆系统搭建完成报告 |
|
| 2 | + |
|
| 3 | +**搭建时间**:2026-03-05 14:00-14:30 |
|
| 4 | +**参考文档**:[OpenClaw 记忆系统搭建指南](https://zcnjtmi927ef.feishu.cn/docx/LxaQdCGw1otXXWx8TNkc4rwZnce) |
|
| 5 | +**维护者**:Travel Agent |
|
| 6 | + |
|
| 7 | +--- |
|
| 8 | + |
|
| 9 | +## ✅ 已完成的工作 |
|
| 10 | + |
|
| 11 | +### 1. 文件结构创建 |
|
| 12 | + |
|
| 13 | +``` |
|
| 14 | +~/.openclaw/workspace/travel/ |
|
| 15 | +├── AGENTS.md ✅ 已添加记忆系统规则 |
|
| 16 | +├── MEMORY.md ✅ 已添加写入/清理/召回规则 |
|
| 17 | +├── HEARTBEAT.md ✅ 已添加日志兜底和每周蒸馏 |
|
| 18 | +├── openclaw.json ✅ 已配置心跳间隔 60 分钟 |
|
| 19 | +└── memory/ |
|
| 20 | + ├── heartbeat-state.json ✅ 心跳状态追踪 |
|
| 21 | + ├── 2026-03-05.md ✅ 今日日志(已有) |
|
| 22 | + └── 2026-03-05-test.md ✅ 测试日志(新建) |
|
| 23 | +``` |
|
| 24 | + |
|
| 25 | +--- |
|
| 26 | + |
|
| 27 | +### 2. AGENTS.md 记忆规则 |
|
| 28 | + |
|
| 29 | +**已添加的核心规则:** |
|
| 30 | + |
|
| 31 | +#### 每次 Session 启动必做 |
|
| 32 | +1. 读取 MEMORY.md(长期记忆) |
|
| 33 | +2. 读取 memory/YYYY-MM-DD.md(今天 + 昨天) |
|
| 34 | +3. 如果是 session 第一条消息,主动告知用户"上次到哪" |
|
| 35 | + |
|
| 36 | +#### 语义触发写日志 |
|
| 37 | +- ✅ 确认了某件事 |
|
| 38 | +- ✅ 完成了实质性操作 |
|
| 39 | +- ✅ 话题明显切换 |
|
| 40 | + |
|
| 41 | +**写日志标准:** |
|
| 42 | +- 已完成:标注"已完成,结论:X" |
|
| 43 | +- 进行中:写明"进行中。已知约束:X" |
|
| 44 | +- 修正:写"修正:之前 X 有误,正确是 Y" |
|
| 45 | + |
|
| 46 | +#### 三层防御机制 |
|
| 47 | +1. **预防**:写进行中任务时,约束与状态同行 |
|
| 48 | +2. **侦测**:恢复高风险任务时,先搜记忆找约束 |
|
| 49 | +3. **兜底**:执行不可逆操作前,当场确认约束 |
|
| 50 | + |
|
| 51 | +#### 不存在"心理笔记" |
|
| 52 | +- "记住这个" = 立刻写入文件 |
|
| 53 | +- session 内记忆不持久化 |
|
| 54 | + |
|
| 55 | +#### memory_search 使用规范 |
|
| 56 | +- 标注来源并确认 |
|
| 57 | +- 不直接当事实用 |
|
| 58 | + |
|
| 59 | +--- |
|
| 60 | + |
|
| 61 | +### 3. HEARTBEAT.md 自动维护 |
|
| 62 | + |
|
| 63 | +**已添加的功能:** |
|
| 64 | + |
|
| 65 | +#### 日志兜底写入(每 15 分钟检查) |
|
| 66 | +- 读取 `heartbeat-state.json` 的 `lastLogWrite` |
|
| 67 | +- 超过 15 分钟 + 有实质性内容 → 写入日志 |
|
| 68 | +- 写完后更新时间戳 |
|
| 69 | + |
|
| 70 | +#### 每周记忆蒸馏 |
|
| 71 | +- 读取 `lastWeeklyTasks` |
|
| 72 | +- 不是当前周 → 执行蒸馏 |
|
| 73 | +- 提炼近 7 天日志中有价值的内容到 MEMORY.md |
|
| 74 | + |
|
| 75 | +--- |
|
| 76 | + |
|
| 77 | +### 4. MEMORY.md 规则 |
|
| 78 | + |
|
| 79 | +**已添加的规则说明:** |
|
| 80 | + |
|
| 81 | +```markdown |
|
| 82 | +> 写入规则:只写 3 个月后仍有效的事实、决策、偏好。写入时标注日期。 |
|
| 83 | +> |
|
| 84 | +> 清理规则:每周蒸馏时清理过期条目。 |
|
| 85 | +> |
|
| 86 | +> 召回规则:搜到内容后标注来源确认,不直接当事实用。 |
|
| 87 | +> |
|
| 88 | +> 有效期标注: |
|
| 89 | +> - ✅ 长期有效(无特殊说明) |
|
| 90 | +> - ⏰ 有效期至:YYYY-MM-DD |
|
| 91 | +> - 📅 创建日期:YYYY-MM-DD |
|
| 92 | +``` |
|
| 93 | + |
|
| 94 | +--- |
|
| 95 | + |
|
| 96 | +### 5. openclaw.json 配置 |
|
| 97 | + |
|
| 98 | +```json |
|
| 99 | +{ |
|
| 100 | + "agents": { |
|
| 101 | + "main": { |
|
| 102 | + "heartbeat": { |
|
| 103 | + "intervalMinutes": 60 |
|
| 104 | + } |
|
| 105 | + } |
|
| 106 | + }, |
|
| 107 | + "memory": { |
|
| 108 | + "embedding": { |
|
| 109 | + "provider": "qmd", |
|
| 110 | + "model": "qmd" |
|
| 111 | + } |
|
| 112 | + } |
|
| 113 | +} |
|
| 114 | +``` |
|
| 115 | + |
|
| 116 | +**配置说明:** |
|
| 117 | +- 心跳间隔:60 分钟(避免 token 浪费) |
|
| 118 | +- 语义搜索:使用 qmd embedding(无需额外 API) |
|
| 119 | + |
|
| 120 | +--- |
|
| 121 | + |
|
| 122 | +### 6. heartbeat-state.json 状态追踪 |
|
| 123 | + |
|
| 124 | +```json |
|
| 125 | +{ |
|
| 126 | + "lastLogWrite": "2026-03-05T14:35:00+08:00", |
|
| 127 | + "lastMorningBriefing": "", |
|
| 128 | + "lastWeeklyTasks": "" |
|
| 129 | +} |
|
| 130 | +``` |
|
| 131 | + |
|
| 132 | +**字段说明:** |
|
| 133 | +- `lastLogWrite`:上次日志写入时间 |
|
| 134 | +- `lastMorningBriefing`:上次晨间汇报日期 |
|
| 135 | +- `lastWeeklyTasks`:上次蒸馏周次 |
|
| 136 | + |
|
| 137 | +--- |
|
| 138 | + |
|
| 139 | +## 🎯 记忆系统架构 |
|
| 140 | + |
|
| 141 | +``` |
|
| 142 | +┌─────────────────────────────────────────┐ |
|
| 143 | +│ Session Context(热) │ |
|
| 144 | +│ 当前对话的上下文窗口 │ |
|
| 145 | +│ 生命周期:单次 session │ |
|
| 146 | +├─────────────────────────────────────────┤ |
|
| 147 | +│ Daily Log(温) │ |
|
| 148 | +│ memory/YYYY-MM-DD.md │ |
|
| 149 | +│ 当天发生的事,原始记录 │ |
|
| 150 | +│ 生命周期:日 │ |
|
| 151 | +├─────────────────────────────────────────┤ |
|
| 152 | +│ Long-term Memory(冷) │ |
|
| 153 | +│ MEMORY.md │ |
|
| 154 | +│ 蒸馏后的长期记忆,精简有效 │ |
|
| 155 | +│ 生命周期:月 - 永久 │ |
|
| 156 | +└─────────────────────────────────────────┘ |
|
| 157 | +``` |
|
| 158 | + |
|
| 159 | +**数据流向:** |
|
| 160 | +``` |
|
| 161 | +Session Context → 写入 Daily Log → 定期蒸馏到 MEMORY.md |
|
| 162 | +``` |
|
| 163 | + |
|
| 164 | +--- |
|
| 165 | + |
|
| 166 | +## 📋 检查清单(逐项验证) |
|
| 167 | + |
|
| 168 | +- [x] memory/ 目录已创建 |
|
| 169 | +- [x] MEMORY.md 已创建并添加规则 |
|
| 170 | +- [x] memory/heartbeat-state.json 已创建 |
|
| 171 | +- [x] AGENTS.md 中已添加 session 启动读取规则 |
|
| 172 | +- [x] AGENTS.md 中已添加语义触发写日志规则(含约束同行要求) |
|
| 173 | +- [x] AGENTS.md 中已添加三层防御规则 |
|
| 174 | +- [x] AGENTS.md 中已添加"心理笔记不存在"规则 |
|
| 175 | +- [x] openclaw.json 中已配置心跳(intervalMinutes: 60) |
|
| 176 | +- [x] HEARTBEAT.md 中已添加日志兜底检查 |
|
| 177 | +- [x] HEARTBEAT.md 中已添加每周蒸馏规则 |
|
| 178 | +- [x] 测试日志已创建(2026-03-05-test.md) |
|
| 179 | +- [ ] ~~发一条消息测试~~(待下次 session 验证) |
|
| 180 | +- [ ] ~~重启 session 测试~~(待下次 session 验证) |
|
| 181 | + |
|
| 182 | +--- |
|
| 183 | + |
|
| 184 | +## 🚀 下一步 |
|
| 185 | + |
|
| 186 | +### 待测试项目(下次 session) |
|
| 187 | + |
|
| 188 | +1. **Session 启动读取测试** |
|
| 189 | + - 启动新 session |
|
| 190 | + - 观察是否主动读取 MEMORY.md 和今日日志 |
|
| 191 | + - 观察是否汇报"上次到哪" |
|
| 192 | + |
|
| 193 | +2. **语义触发写日志测试** |
|
| 194 | + - 完成一个操作 |
|
| 195 | + - 观察是否自动写入 memory/YYYY-MM-DD.md |
|
| 196 | + |
|
| 197 | +3. **心跳兜底测试** |
|
| 198 | + - 等待 15 分钟 |
|
| 199 | + - 观察心跳是否检查并写入日志 |
|
| 200 | + |
|
| 201 | +--- |
|
| 202 | + |
|
| 203 | +## 📊 与原文对比 |
|
| 204 | + |
|
| 205 | +| 要求 | 状态 | 说明 | |
|
| 206 | +|------|------|------| |
|
| 207 | +| 文件结构创建 | ✅ 完成 | memory/、MEMORY.md、heartbeat-state.json | |
|
| 208 | +| AGENTS.md 规则 | ✅ 完成 | 所有记忆规则已添加 | |
|
| 209 | +| 心跳配置 | ✅ 完成 | 60 分钟间隔 | |
|
| 210 | +| HEARTBEAT.md | ✅ 完成 | 日志兜底 + 每周蒸馏 | |
|
| 211 | +| 三层防御 | ✅ 完成 | 预防、侦测、兜底 | |
|
| 212 | +| 语义搜索 | ✅ 完成 | qmd embedding | |
|
| 213 | +| 测试验证 | ⏳ 待测 | 下次 session 验证 | |
|
| 214 | + |
|
| 215 | +--- |
|
| 216 | + |
|
| 217 | +## 🎉 总结 |
|
| 218 | + |
|
| 219 | +**记忆系统已完整搭建!** |
|
| 220 | + |
|
| 221 | +- ✅ 文件结构完整 |
|
| 222 | +- ✅ 规则配置完善 |
|
| 223 | +- ✅ 心跳自动维护 |
|
| 224 | +- ✅ 三层防御机制 |
|
| 225 | +- ⏳ 待下次 session 验证实际效果 |
|
| 226 | + |
|
| 227 | +**Git 提交**:`168b06e` |
|
| 228 | +**同步状态**:✅ 已推送到远程仓库 |
|
| 229 | + |
|
| 230 | +--- |
|
| 231 | + |
|
| 232 | +*搭建完成时间:2026-03-05 14:30* |
|
| 233 | +*维护者:Travel Agent* |