--- name: hot-memory description: 管理 MEMORY.md 热记忆文件,维护最近7天事件流水和重要事件记录。当需要更新 memory.md、添加日常事件或重要事件、检查文件大小时使用。支持每日自动维护,移除8天前的旧记录,监控4KB大小限制。 --- # hot-memory 技能 管理 `MEMORY.md` 热记忆文件,让 agent 每次启动时被动了解最近发生的事情。 ## 文件定位 - **目标文件**: `~/.openclaw/workspace/MEMORY.md` - **维护脚本**: `scripts/daily_maintenance.py` ## 文件结构 `MEMORY.md` 包含三个部分: 1. **文件说明** - 说明本文件记录已发生的事情,详细信息可通过记忆检索获取 2. **🔔 重要事件** - 全局长期性影响的重要决策和事件(默认空,记录时需告知用户) 3. **📅 最近7天事件流水** - 按天分组的每日主要事情概要 ## 事件格式 所有事件遵循统一格式: ``` - YYYY-MM-DD HH:MM | 一句话概要 | 关键词1,关键词2 ``` 示例: ``` - 2026-03-16 10:30 | 创建hot-memory技能 | 技能,记忆系统 - 2026-03-16 14:00 | 配置LanceDB嵌入模型 | 配置,向量数据库 ``` ## 使用场景 ### 场景1: 每日维护(自动) 每天执行一次,从记忆检索中获取当日事件,更新流水: ```bash python3 ~/.openclaw/workspace/skills/hot-memory/scripts/daily_maintenance.py update ``` **功能**: - 扫描今日记忆,提取重要事件 - 添加新的日常事件到对应日期分组 - 自动移除8天前的旧记录 - 检查文件大小,超限则警告 ### 场景2: 添加日常事件 记录一般的日常活动: ```bash python3 scripts/daily_maintenance.py add-daily 2026-03-16 "10:30" "测试脚本" "开发,测试" ``` 或在 agent 会话中: ```python from skills.hot_memory.scripts.daily_maintenance import update_memory_file # 添加单个日常事件 event = ("2026-03-16", "10:30", "测试脚本", "开发,测试") result = update_memory_file(new_daily_events=[event]) ``` ### 场景3: 添加重要事件 记录具有全局长期性影响的事件(**必须告知用户**): ```bash python3 scripts/daily_maintenance.py add-important 2026-03-16 "14:00" "重构记忆系统" "架构,重要" ``` 或在 agent 会话中: ```python event = ("2026-03-16", "14:00", "重构记忆系统", "架构,重要") result = update_memory_file(important_event=event) if result['added_important']: print("已记录重要事件,请告知用户") ``` ### 场景4: 检查文件大小 ```bash python3 scripts/daily_maintenance.py check-size ``` 或在 agent 会话中: ```python from skills.hot_memory.scripts.daily_maintenance import check_size status = check_size() if status['exceeded']: print(f"⚠️ 文件大小 {status['size_kb']}KB 超过 4KB 限制") ``` ## 重要事件判断标准 什么应该记录为重要事件: | 类型 | 示例 | |------|------| | 架构变更 | 记忆系统重构、技能体系升级 | | 配置变更 | API Key 更换、模型切换 | | 重要决策 | 采用新工作流、确立规范 | | 关键里程碑 | 项目完成、重要功能上线 | 什么只记录为日常事件: | 类型 | 示例 | |------|------| | 常规查询 | 天气查询、网页搜索 | | 临时任务 | 单次文件处理、数据分析 | | 日常对话 | 问答、简单讨论 | ## 文件大小管理 **限制**: 4KB (4096 字节) **超限处理**: 1. 首先检查是否有过期的日常事件未清理 2. 考虑将较早的重要事件归档到 L1 层 3. 与用户讨论瘦身方案 **瘦身策略**: - 保留最近7天流水(已自动维护) - 将旧的重要事件移动到 `memory/milestones/` 归档 - 简化事件描述的详细程度 ## 与其他组件的关系 ``` ┌─────────────────────────────────────────────────────────┐ │ LanceDB-Pro 向量记忆 │ │ - 存储所有详细记忆 │ │ - 支持语义检索 │ └────────────────────┬────────────────────────────────────┘ │ 检索 ▼ ┌─────────────────────────────────────────────────────────┐ │ MEMORY.md 热记忆 (本技能管理) │ │ - 最近7天流水(摘要) │ │ - 重要事件(全局影响) │ │ - 4KB 精简索引 │ └────────────────────┬────────────────────────────────────┘ │ 启动注入 ▼ ┌─────────────────────────────────────────────────────────┐ │ Agent 启动上下文 │ │ - 快速了解最近发生了什么 │ │ - 无需查询即可感知活跃记忆 │ └─────────────────────────────────────────────────────────┘ ``` ## 最佳实践 1. **每日更新**: 建议设置定时任务每天执行 `update` 命令 2. **即时记录**: 重要事件发生后立即记录,不要累积 3. **简洁描述**: 一句话概要,关键词用逗号分隔 4. **主动告知**: 添加重要事件时必须告知用户 5. **定期检查**: 每周检查一次文件大小 ## 故障排查 ### 文件未更新 - 检查脚本路径是否正确 - 确认 `MEMORY.md` 存在且可写 ### 大小超限警告 - 执行 `check-size` 确认实际大小 - 考虑手动归档旧的重要事件 - 与用户讨论清理策略 ### 日期解析错误 - 确保日期格式为 `YYYY-MM-DD` - 时间格式建议为 `HH:MM` 或 `--:--`