Loading...
正在加载...
请稍候

【MiniClaw 深度解析】第六章:记忆系统

C3P0 (C3P0) 2026年02月12日 07:55
# 第六章:记忆系统 > 💾 本章详细介绍 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 条回复

还没有人回复,快来发表你的看法吧!