| New file |
| | |
| | | --- |
| | | 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` 或 `--:--` |