# 第六章:记忆系统
> 💾 本章详细介绍 MiniClaw 的双层记忆系统和记忆蒸馏机制。
---
## 6.1 记忆系统概述
### 6.1.1 什么是双层记忆系统?
MiniClaw 采用 **双层记忆系统**,模仿人类的短期记忆和长期记忆机制。
```
┌─────────────────────────────────────────────────────────────────────┐
│ 双层记忆系统设计 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 人类记忆 MiniClaw 记忆系统 │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ │ │ │ │
│ │ 短期记忆 │ │ 每日日志 │ │
│ │ (工作记忆) │ │ memory/YYYY-MM- │ │
│ │ 容量有限 │ │ DD.md │ │
│ │ 易遗忘 │ │ 原始对话记录 │ │
│ │ │ │ │ │
│ ├───────────────────┤ ├───────────────────┤ │
│ │ │ │ │ │
│ │ 长期记忆 │ │ MEMORY.md │ │
│ │ (永久记忆) │ │ 蒸馏后的高价值 │ │
│ │ 容量大 │ │ 事实和决策 │ │
│ │ 需要巩固 │ │ 跨会话持久 │ │
│ │ │ │ │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ 🔄 记忆巩固过程 = 记忆蒸馏 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 6.1.2 记忆系统架构
```
┌─────────────────────────────────────────────────────────────────────┐
│ 记忆系统架构 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ 用户对话 │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 短期记忆层 │ │
│ │ memory/YYYY-MM-DD.md │ │
│ │ │ │
│ │ • 原始对话记录 │ │
│ │ • 临时信息 │ │
│ │ • 详细过程 │ │
│ │ │ │
│ └────────────────────────────┬───────────────────────────────┘ │
│ │ │
│ │ 记忆蒸馏 │
│ │ (miniclaw_growup) │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 长期记忆层 │ │
│ │ MEMORY.md │ │
│ │ │ │
│ │ • 高价值事实 │ │
│ │ • 重要决策 │ │
│ │ • 经验教训 │ │
│ │ • 用户偏好 │ │
│ │ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 6.2 短期记忆(每日日志)
### 6.2.1 日志文件结构
```markdown
# 📅 2026-02-12 - Wednesday
## 🌅 Morning Session
**09:30** - 项目讨论
- 用户询问 MiniClaw 架构设计
- 讨论了 ACE 引擎的时间模式系统
- 用户偏好:喜欢简洁的回答
## 🌞 Afternoon Session
**14:00** - 代码审查
- 审查了 PR #42
- 发现性能问题:缓存未生效
- 建议:添加 TTL 检查
## 📊 Summary
- 工具调用:miniclaw_note (3), miniclaw_update (2)
- 关键实体:ACE引擎, 时间模式, MD5哈希
```
### 6.2.2 日志写入机制
```
┌─────────────────────────────────────────────────────────────────────┐
│ 日志写入机制 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ miniclaw_note 工具 │
│ │
│ 触发场景: │
│ • 用户说"记住这个" │
│ • 重要事件发生 │
│ • 用户明确要求记录 │
│ │
│ 写入流程: │
│ 1. 获取当前日期 → 2026-02-12 │
│ 2. 构建文件路径 → ~/.miniclaw/memory/2026-02-12.md │
│ 3. 追加内容到文件 │
│ 4. 添加时间戳和分类标签 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 6.3 长期记忆(MEMORY.md)
### 6.3.1 记忆结构
```markdown
# 💾 MEMORY
## 📝 The Vault
### 用户偏好
- 偏好简洁的回答
- 使用 pnpm 而非 npm
- 喜欢 TypeScript 严格模式
### 项目知识
- MiniClaw 使用 ACE 引擎管理上下文
- Token 预算默认 8000
- 技能缓存 TTL 为 5 秒
### 重要决策
- 2026-02-10: 决定采用微内核架构
- 2026-02-11: 选择 MD5 进行内容哈希
### 经验教训
- 并行 I/O 比顺序 I/O 快 60-80%
- 缓存能显著减少文件系统扫描
```
---
## 6.4 记忆蒸馏机制
### 6.4.1 蒸馏触发条件
```
┌─────────────────────────────────────────────────────────────────────┐
│ 蒸馏触发条件 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 自动触发条件(满足任一即触发): │
│ │
│ 1. 条目数量 > 20 │
│ 当日志条目超过 20 条时触发 │
│ │
│ 2. 日志占用预算 > 40% │
│ 当日志内容占用超过 Token 预算的 40% 时触发 │
│ │
│ 3. 最旧条目 > 8 小时 且 条目 > 5 │
│ 当最早记录的条目超过 8 小时且总条目超过 5 条时触发 │
│ │
│ 4. 日志大小 > 8KB │
│ 当日志文件大小超过 8KB 时触发 │
│ │
│ 手动触发: │
│ • 使用 miniclaw_growup 工具 │
│ • 用户说"整理一下记忆" │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
### 6.4.2 蒸馏流程
```
┌─────────────────────────────────────────────────────────────────────┐
│ 记忆蒸馏流程 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 步骤 1: 读取日志文件 │
│ └─► 加载 memory/YYYY-MM-DD.md │
│ │
│ 步骤 2: 分析内容 │
│ └─► 提取关键信息 │
│ └─► 识别用户偏好 │
│ └─► 总结重要决策 │
│ │
│ 步骤 3: 更新 MEMORY.md │
│ └─► 追加到长期记忆 │
│ └─► 去重合并 │
│ │
│ 步骤 4: 归档原始日志 │
│ └─► 移动到 archived/ 目录 │
│ └─► 可选压缩 │
│ │
│ 压缩比:约 10:1(原始日志 : 蒸馏后记忆) │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
## 本章小结
```
┌─────────────────────────────────────────────────────────────────────┐
│ 第六章 核心要点 │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ 💾 双层记忆系统 │
│ • 短期记忆:每日日志 (memory/YYYY-MM-DD.md) │
│ • 长期记忆:MEMORY.md │
│ │
│ 📝 日志结构 │
│ • 按时间分段 │
│ • 包含会话摘要 │
│ • 记录工具调用 │
│ │
│ 🔄 记忆蒸馏 │
│ • 自动触发条件(4种) │
│ • 手动触发(miniclaw_growup) │
│ • 压缩比约 10:1 │
│ │
│ 🎯 最佳实践 │
│ • 定期整理记忆 │
│ • 手动维护 MEMORY.md │
│ • 删除过时信息 │
│ │
└─────────────────────────────────────────────────────────────────────┘
```
---
*本文档是《MiniClaw 深度解析》系列的第六章,下一章将详细介绍技能系统。*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!