Skills memory-archiver

记忆管理技能 - 三层时间架构 + 自动搜索/提取/会话笔记统一 Hook + 记忆巩固(整合 auto-dream)

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/amd5/memory-archiver" ~/.claude/skills/clawdbot-skills-memory-archiver && rm -rf "$T"
manifest: skills/amd5/memory-archiver/SKILL.md
source content

Memory Archiver Skill - 记忆归档技能

版本: 10.3.0 (安全修复:execFile 杜绝命令注入)
创建日期: 2026-03-11
更新日期: 2026-04-14
作者: c32


📋 技能描述

二维记忆架构:时间分层 × 类型标签

  • 时间分层: daily (每天) → weekly (每周) → long-term (长期/MEMORY.md)
  • 类型标签: [episodic] 事件 / [semantic] 知识 / [procedural] 流程
  • 存储: 每日记忆 + 每周记忆 + 长期精选记忆
  • WAL 协议: Write-Ahead Log,写前日志防数据丢失
  • 统一 Hook (message:received): 自动搜索 + 自动提取 + 会话笔记追踪(整合原 auto-memory-extract + session-notes)

🎯 功能清单

时间分层任务

任务频率说明
记忆及时写入10 分钟检查并写入重要信息到 daily 文件
记忆归档 - Daily 层每天 23:00提炼当天内容到 daily 文件
记忆总结 - Weekly 层每周日 22:00提炼 weekly 到 MEMORY.md 长期记忆

记忆巩固(原 auto-dream)

任务频率说明
记忆巩固每 6 小时闸门检查(24h/5新会话) → 老化清理 → 数量限制 → 索引更新 → 去重
老化清理随巩固触发标记并清理超过 30 天的记忆文件
数量限制随巩固触发每类型最多 50 条,超出清理最旧的
索引更新随巩固触发重建 MEMORY.md 底部记忆索引
去重随巩固触发MEMORY.md 段落级去重(清理重复/无效内容)

自动搜索 Hook(多维度增强)

功能说明
消息类型检测疑问/修复/规范/特征/配置/命令/技术
关键词提取自动提取中英文关键词
维度 1: 关键词搜索在 SESSION-STATE.md 缓存中搜索
维度 2: 类型标签搜索按 [episodic]/[semantic]/[procedural] 标签搜索
维度 3: 时间维度搜索今日→昨日→长期记忆,优先最近
维度 4: 组合搜索多关键词 OR 关系,扩大匹配范围
上下文注入合并所有维度结果注入 prompt

自动记忆提取

功能说明
记忆分类基于关键词和模式自动分类为 user/feedback/project/reference
自动去重MD5 hash + 模糊匹配,防止重复写入
索引更新自动更新 MEMORY.md 底部记忆索引

会话笔记追踪

功能说明
自动初始化新会话自动创建笔记
会话归档会话结束自动生成摘要并归档

📂 文件结构

skills/memory-archiver/
├── SKILL.md                          # 本文件
├── skill.json                        # 技能元数据
├── _meta.json                        # ClawHub 元数据
├── .clawhub/                         # ClawHub 同步目录
│   └── origin.json                   # 来源信息
├── scripts/
│   ├── install.js                    # 安装脚本(含 hook 自动注册)
│   ├── auto-memory-search.js         # 自动记忆搜索(被 hook 调用)
│   ├── memory-loader.js              # 加载记忆到缓存
│   ├── memory-search.js              # 搜索记忆
│   ├── memory-refresh.js             # 智能刷新缓存
│   ├── memory-dedup.js               # MEMORY.md 段落级去重
│   ├── memory-extract.js             # 从对话提取记忆
│   ├── memory-classify.js            # 关键词分类器
│   ├── memory-dedup-extract.js       # 提取去重(MD5 hash)
│   ├── memory-aging.js               # 记忆老化与数量限制检查
│   ├── dream-consolidate.js          # 记忆巩固主程序(闸门+索引+编排,原 auto-dream)
│   ├── dream-lock.js                 # 文件锁(防止并发巩固)
│   ├── session-tracker.js            # 会话笔记追踪
│   └── README.md                     # 脚本说明文档
├── hooks/                            # Hook 源文件(安装时复制到 workspace/hooks/)
│   ├── handler.js                    # Hook 处理器(事件:message:received)
│   ├── HOOK.md                       # Hook 元数据
│   └── bootstrap-loader/             # 启动加载 Hook
│       ├── handler.js                # Hook 处理器(事件:agent:bootstrap)
│       └── HOOK.md                   # Hook 元数据
└── prompts/                          # 提示词
    └── consolidation.md              # 记忆巩固提示词

安装后的工作区文件

~/.openclaw/workspace/
├── MEMORY.md                         # 长期精选记忆
├── hooks/
│   └── memory-archiver-hook/           # Hook(由 install.js 自动部署)
│       ├── handler.js
│       └── HOOK.md
└── memory/
    ├── daily/                        # 每日记忆
    ├── weekly/                       # 每周记忆
    ├── auto/                         # 自动分类记忆 (user/feedback/project/reference)
    ├── .dream-state.json             # 巩固状态(自动维护)
    └── .dream.lock                   # 巩固文件锁

🔧 安装

方法 1: 通过 ClawHub 安装(推荐 ⭐)

clawhub install memory-archiver

安装后自动执行

  1. 创建
    memory/daily/
    memory/weekly/
    目录
  2. 部署 hook 到
    workspace/hooks/memory-archiver-hook/
  3. 执行
    openclaw hooks install --link
    注册 hook
  4. 自动添加 3 个 cron 任务
  5. 提示重启 gateway

方法 2: 本地技能目录(开发调试)

如果技能已在

~/.openclaw/workspace/skills/memory-archiver/

node ~/.openclaw/workspace/skills/memory-archiver/scripts/install.js

验证安装

openclaw hooks list
# 应看到 memory-archiver-hook (✓ ready)

openclaw cron list
# 应看到 3 个记忆相关任务

📝 记忆写入规范

三类记忆标签

标签说明例子
[episodic]
事件/经历"用户今天完成了模板重设计"
[semantic]
知识/事实"用户喜欢 Tailwind CSS"
[procedural]
流程/方法"部署步骤:1. 构建 2. 上传 3. 重启"

记录原则

✅ 应该记录:

  • 关键决策和教训
  • 新发现的有价值内容
  • 技术栈使用经验
  • 工作习惯调整
  • 用户偏好

❌ 不应该记录:

  • 重复的上下文 — 已有记录的内容不再重复
  • 毫无意义的日常 — 无事发生就不记
  • 重复的任务进度提示 — 避免刷屏
  • 私密细节 — 保护隐私
  • 短期易变想法 — 临时念头不持久

核心判断: 这条信息在未来回顾时是否有价值?


🔍 记忆搜索

自动加载(OpenClaw 启动时)

每次 OpenClaw 启动时,通过

agent:bootstrap
Hook 自动加载记忆到缓存,无需手动触发。

加载内容:今日 + 昨日 + 最近 3 天 daily + MEMORY.md + 最近 weekly

交互式搜索

node ~/.openclaw/workspace/skills/memory-archiver/scripts/memory-search.js "搜索内容"

在对话中使用

  • 直接提问,Hook 会自动检测并搜索相关记忆

使用 grep 搜索

# 搜索所有记忆文件
grep -ri "CSS" ~/.openclaw/workspace/memory/

# 带上下文显示
grep -riC 3 "CSS" ~/.openclaw/workspace/memory/daily/*.md

📊 版本历史

版本日期变更
10.12026-04-14全部 .sh 转为 .js: install/memory-search/memory-loader/memory-refresh/memory-dedup/dream-lock 全部纯 JS
10.02026-04-14整合 auto-memory-extract + session-notes: 统一 Hook (message:received) 包含搜索/提取/会话笔记三模块
9.02026-04-14完全整合 auto-dream: dream-consolidate.js(闸门+索引+编排)、dream-lock.js(文件锁)、prompts/consolidation.md 全部迁入,auto-dream 技能移除
8.02026-04-13整合 auto-dream 去重功能: memory-dedup.js 现在负责 MEMORY.md 段落去重,auto-dream 仅负责触发
7.02026-03-23Hook 安装自动化:
skill.json
添加
postinstall
脚本,
clawhub install
自动部署 hook + cron
6.02026-03-20整合 Auto Memory Search Hook: 将独立 Hook 合并到技能内
5.02026-03-20三层精简架构: 移除 monthly/yearly 层,保留 daily/weekly/long-term
4.02026-03-20精简版: 移除向量搜索依赖,简化架构
3.02026-03-19向量增强版:整合 Qdrant + Transformers.js
2.02026-03-19五层时间架构 (hourly/daily/weekly/monthly/yearly)
1.02026-03-11初始版本

🛠️ 维护命令

# 检查记忆文件总量
du -sh ~/.openclaw/workspace/memory/

# 查看每日记忆文件
ls -lh ~/.openclaw/workspace/memory/daily/

# 搜索记忆内容
grep -ri "CSS" ~/.openclaw/workspace/memory/

文档最后更新:2026-04-14