edit | blame | history | raw

---
name: memory-md-archive

description: 归档和体积控制技能,用于管理 MEMORY.md 文件大小。支持三项内容的归档:事件流水(8天前)、重要事件(超过30条时按重要性)、学习事件(超过30条时按重要性)。当文件超过4KB时自动进行额外归档。

memory-md-archive 技能

用于归档 MEMORY.md 中的旧内容,控制文件体积。

归档规则

1. 事件流水归档

触发条件:存在8天前或更久前的内容

归档策略
- 按日期判断,8天前的内容自动归档
- 归档位置:memory/archive-daily/YYYY-MM.md(每月一个新文件)
- 归档格式保持原样

示例
memory/archive-daily/ ├── 2026-02.md # 2026年2月的日常事件 ├── 2026-03.md # 2026年3月的日常事件

2. 重要事件归档

触发条件:累计超过30条

归档策略
- 按重要性评估,优先保留重要的
- 转移不那么重要的事件
- 归档位置:memory/archive-major/YYYY-MM.md(每月一个新文件)
- 注意:不是按时间,可能涉及多个归档文件

重要性评估
- 关键词权重:架构、决策、配置变更 = 高
- 描述长度:简短的可能重要性较低
- 关键词密度:关键词多的可能更重要

3. 学习事件归档

触发条件:累计超过30条

归档策略
- 同重要事件规则
- 归档位置:memory/archive-learning/YYYY-MM.md

体积控制

限制:4KB (4096 字节)

超限处理
1. 首先执行上述三项归档
2. 如果仍然超限,从事件流水中抽离不重要的内容
3. 选择标准:
- 日期最久的优先
- 关键词少的(描述简单的)
- 不含重要关键词的

文件定位

  • 归档脚本: ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py
  • 源文件: ~/.openclaw/workspace/MEMORY.md
  • 归档目录: ~/.openclaw/workspace/memory/
  • archive-daily/ - 日常事件归档
  • archive-major/ - 重要事件归档
  • archive-learning/ - 学习事件归档

使用方法

手动执行归档

# 执行所有归档检查
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py

# 仅检查事件流水
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --daily-only

# 仅检查重要事件
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --major-only

# 仅检查学习事件
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --learning-only

# 强制执行体积控制(即使未超限)
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --force-size-control

查看归档状态

# 查看当前 MEMORY.md 统计
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --stats

# 查看归档目录结构
python3 ~/.openclaw/workspace/skills/memory-md-archive/scripts/archive.py --list-archives

Python 调用

from skills.memory_md_archive.scripts.archive import archive_all, check_size

# 执行完整归档
result = archive_all()
print(f"归档完成:")
print(f"  - 日常事件归档: {result['daily_archived']} 条")
print(f"  - 重要事件归档: {result['major_archived']} 条")
print(f"  - 学习事件归档: {result['learning_archived']} 条")
print(f"  - 体积控制归档: {result['size_control_archived']} 条")
print(f"  - 当前文件大小: {result['current_size_kb']}KB")

# 仅检查大小
size_status = check_size()
if size_status['exceeded']:
    print(f"⚠️ 文件大小 {size_status['size_kb']}KB 超过限制")

归档文件格式

日常事件归档文件 (archive-daily/YYYY-MM.md)

# 日常事件归档 - 2026年2月

> 自动归档的日常事件记录
> 原文件: MEMORY.md
> 归档时间: 2026-03-01 10:00

---

## 2026-02-28

- 2026-02-28 10:30 | 测试脚本 | 开发,测试
- 2026-02-28 14:00 | 配置环境 | 配置,环境

## 2026-02-27

- 2026-02-27 09:00 | 代码审查 | 代码,审查

重要事件归档文件 (archive-major/YYYY-MM.md)

# 重要事件归档 - 2026年2月

> 自动归档的重要事件记录
> 原文件: MEMORY.md
> 归档时间: 2026-03-01 10:00

---

- 2026-02-15 10:00 | 升级依赖版本 | 依赖,升级
- 2026-02-10 14:00 | 调整配置文件 | 配置,调整

学习事件归档文件 (archive-learning/YYYY-MM.md)

# 学习事件归档 - 2026年2月

> 自动归档的学习记录
> 原文件: MEMORY.md
> 归档时间: 2026-03-01 10:00

---

- 2026-02-20 11:30 | 学习Docker网络配置 | 学习,Docker,网络
- 2026-02-18 09:00 | 掌握Python装饰器 | 学习,Python,装饰器

最佳实践

  1. 定期归档: 建议每周执行一次归档检查
  2. 手动触发: 当 MEMORY.md 明显变大时手动执行
  3. 备份重要事件: 归档前确认重要事件已评估正确
  4. 监控文件大小: 定期检查文件大小趋势

故障排查

归档失败

  • 检查 memory/ 目录是否存在且可写
  • 确认归档目录结构正确

重要事件评估错误

  • 手动检查归档文件,确认重要事件未被错误归档
  • 调整重要性评估关键词权重

文件仍然超限

  • 确认体积控制逻辑已执行
  • 手动删除非关键内容