Skip to content

Latest commit

 

History

History
137 lines (105 loc) · 4.49 KB

File metadata and controls

137 lines (105 loc) · 4.49 KB

记忆系统 V2 — 升级方案

借鉴 memU 的结构化思路,保持零额外 token 成本

核心变化

1. 五种记忆类型标签(来自 memU)

每条记忆写入时标注类型:

类型 标签 说明 示例
Profile [P] 用户身份、偏好、稳定特征 JJ 是 Web3 开发者,用 Mac Mini ARM
Event [E] 具体事件,有时间/地点/结果 2026-02-07 私钥泄露,钱包被盗
Knowledge [K] 客观知识、技术事实 BSC USDC 是 18 位小数
Behavior [B] 行为模式、工作习惯 JJ 经常深夜工作,喜欢一键脚本
Skill [S] 踩坑经验、技术方案、可复用技能 PS5 编码问题用 ASCII bootstrapper 解决

2. L1 文件重组(按 memU 分类思路)

旧结构 → 新结构:

memory/
├── profile.md          ← [P] 用户画像(合并旧 preferences.md + accounts.md 中的用户信息)
├── events.md           ← [E] 重要事件时间线(从日志蒸馏)
├── knowledge.md        ← [K] 技术知识(保留,扩充)
├── skills.md           ← [S] 踩坑经验+可复用方案(保留,标准化格式)
├── behaviors.md        ← [B] 行为模式+工作习惯(从 preferences 拆出)
├── projects.md         ← 保留不变(项目是独立维度)
├── security.md         ← 保留不变(安全是最高优先级)
├── accounts.md         ← 保留不变(纯账号信息)
├── environment.md      ← 保留不变
├── YYYY-MM-DD.md       ← L2 日志,写入时加类型标签

3. 记忆条目格式标准化

旧格式(散文式):

### Fastify
- DELETE 请求不能带 Content-Type...

新格式(结构化):

### [S] Fastify DELETE 空 body 报错
- **问题**: DELETE 请求带 Content-Type: application/json 但 body 为空,触发 FST_ERR_CTP_EMPTY_JSON_BODY
- **方案**: DELETE 只发 Authorization header,不带 Content-Type
- **关联**: → projects.md#ClawGate
- **日期**: 2026-02-XX

4. 交叉引用(来自 memU 的 cross-reference)

记忆条目之间用 链接:

  • → security.md#私钥泄露 — 指向安全教训
  • → projects.md#ClawGate — 指向项目
  • → skills.md#PS5编码 — 指向技术方案
  • → 2026-02-28.md — 指向原始日志

5. L2 日志写入规范

每条日志自动标注类型:

## 2026-02-28

- [E] 首笔充值成功:5524dage@gmail.com ¥5.00 → 5 Credits
- [S] 收钱吧海外不通:TLS 超时,解决方案是香港 Nginx 反代 → skills.md#收钱吧代理
- [K] `irm -OutFile` 无视 charset=utf-8,用系统编码保存 → knowledge.md
- [B] JJ 要求所有消息走 Telegram 通知 → behaviors.md#通知偏好

6. 分类摘要(来自 memU 的 category summary)

每个 L1 文件头部维护一段摘要(<200 字),供 MEMORY.md 索引引用:

# 技能记忆 (Skills)

> **摘要**: 覆盖 Fastify、Claude Code、OpenClaw、ethers v6、Windows PS5 编码、
> curl|bash 交互、浏览器自动化等领域。最常踩坑:编码问题和配置路径。
> 共 15 条技能记录,最后更新 2026-02-28。

---

### [S] Windows PS5 编码地狱
...

7. MEMORY.md 索引升级

# MEMORY.md - 长期记忆索引 V2

## 📊 记忆统计
| 类型 | 数量 | 最后更新 |
|------|------|----------|
| [P] Profile | 12 | 2026-02-28 |
| [E] Event | 8 | 2026-02-28 |
| [K] Knowledge | 15 | 2026-02-28 |
| [B] Behavior | 6 | 2026-02-27 |
| [S] Skill | 18 | 2026-02-28 |

## 📂 文件摘要
### profile.md
Web3 开发者 JJ,Base 链生态...
### skills.md
覆盖 Fastify、PS5 编码、OpenClaw 配置...
...

蒸馏规则(心跳时执行)

  1. 读最近 3 天的 L2 日志
  2. 按类型标签分拣到对应 L1 文件
  3. 合并重复条目(同一技能的多次记录合并为最新版本)
  4. 更新交叉引用
  5. 更新各 L1 文件的摘要
  6. 更新 MEMORY.md 统计和摘要
  7. 删除已蒸馏的 L2 中的冗余细节(保留骨架)

不做什么(省 token)

  • ❌ 不用 LLM 自动提取(我自己判断类型)
  • ❌ 不用 embedding 向量化(memory_search 已经够用)
  • ❌ 不用外部数据库(纯文件系统)
  • ❌ 不搞意图预测(当前需求不需要)

迁移计划

  1. 创建新的 L1 文件结构
  2. 把现有记忆按类型标签迁移
  3. 建立交叉引用
  4. 更新 MEMORY.md 为 V2 格式
  5. 更新 AGENTS.md 中的记忆规则
  6. 测试蒸馏流程