关于 rem-sleep
rem-sleep 是面向使用会话日志和记忆文件的 AI Agent 的记忆整理工作流,适用于 OpenClaw、Claude Code 等。它提供记忆提炼与清理两种模式,帮助将重要经历整理到长期记忆文件中。
主要功能
- 01从会话日志提取重要信息
- 02将经历整理到长期记忆文件
- 03清理过时、重复和冗长内容
- 04支持 consolidate、defrag 和 full 模式
- 05可手动或定期触发整理
适用场景
- 01定期从近期会话提炼决策和经验
- 02清理 MEMORY.md 中的旧条目与重复项
- 03在 Agent 重启前整理长期记忆
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ stewnight/ rem-sleep-skill --skill rem-sleep安装后在 Claude Code 中输入/rem-sleep确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEREADME.mdscripts/gather-sessions.sh详细介绍
REM Sleep - AI Agent 的记忆整合
与生物的 REM 睡眠类似,此技能会将原始经验(会话日志)处理为整合后的长期记忆。
适用于: OpenClaw、Claude Code,或任何拥有会话日志和记忆文件的 Agent。
问题
- 会话日志不断累积,但重新阅读的成本很高
- 重要见解被埋没在噪声中
- “心理笔记”无法在上下文压缩后保留下来
- 重启后,如果没有把内容写下来,就得从头开始
解决方案
定期执行“睡眠周期”:
- 搜索会话日志,查找重要模式
- 提取值得记住的内容
- 整合到持久化的记忆文件中
模式
1. 整合
处理近期会话日志 → 提取重要事件 → 更新 MEMORY.md
2. 碎片整理
检查 MEMORY.md → 删除过时内容 → 合并重复项 → 压缩内容
3. 完整
先运行整合,再运行碎片整理。
整合工作流
步骤 1:收集近期会话
选项 A:使用 grep/jq(无需额外软件)
# OpenClaw session logs location
SESSIONS_DIR="$HOME/.openclaw/agents/main/sessions"
# Search for patterns in recent sessions
grep -r "decision\|learned\|important\|remember\|TODO" "$SESSIONS_DIR" --include="*.jsonl" | head -100
# Parse JSONL and search content
find "$SESSIONS_DIR" -name "*.jsonl" -mtime -3 -exec cat {} \; | \
jq -r 'select(.content) | .content' 2>/dev/null | \
grep -i "decision\|learned\|important"
选项 B:使用 Repo Prompt(如果已安装)
# More powerful semantic search
rp -e 'search "decision" --context-lines 2'
rp -e 'search "learned" --context-lines 2'
rp -e 'search "important" --context-lines 2'
选项 C:使用 memory_search(OpenClaw 内置)
如果你的 Agent 有 memory_search 工具,可用它语义搜索记忆文件:
memory_search("decisions made this week")
memory_search("lessons learned")
步骤 2:确定整合候选内容
在搜索结果中查找:
- 已做出的决定 — 选择、偏好、结论
- 已了解的事实 — 关于人员、项目、系统的新信息
- 经验教训 — 有效或无效的方法、需要避免的错误
- 待办事项/承诺 — 已承诺或计划的事项
- 关系背景 — 与他人的互动及其偏好
步骤 3:更新记忆文件
两层系统:
- 每日文件(
memory/YYYY-MM-DD.md):原始事件、具体细节 - MEMORY.md:提炼后的持久知识,值得长期保留
整合提示词:
查看这些会话摘录。提取值得长期记住的重要信息。重点关注:决定、有关人员/项目的事实、经验教训和偏好。整理为适合放入 MEMORY.md 的项目符号列表。
碎片整理工作流
步骤 1:分析当前记忆
阅读 MEMORY.md 并找出:
- 过时条目 — 已过时的信息、已完成的待办事项、旧日期
- 重复项 — 在不同章节重复出现的相同信息
- 不一致之处 — 相互冲突的信息
- 冗余内容 — 可以压缩的冗长条目
步骤 2:对问题分类
STALE: [entry] — reason it's outdated
DUPLICATE: [entry A] ≈ [entry B]
INCONSISTENT: [entry A] vs [entry B]
BLOAT: [verbose entry] → [compressed version]
步骤 3:应用修正
- 删除过时条目(或在不确定时移至归档章节)
- 将重复项合并为一条权威记录
- 解决不一致之处(必要时检查会话日志)
- 压缩冗长条目
步骤 4:重新整理
确保 MEMORY.md 包含逻辑清晰的章节:
- 关于[用户]
- 我的设置
- 项目
- 人员
- 偏好
- 经验教训
计划安排
建议频率:
- 整合:每隔几天一次,或在忙碌时期之后
- 碎片整理:每周或每两周一次
- 完整:每月进行一次深度清理
触发方式:
- 手动:“运行 REM sleep” / “整合我的记忆”
- 心跳:将任务添加到 HEARTBEAT.md,定期运行
- Cron:安排在非工作时间运行的独立任务
快速参考
# Native search (no dependencies)
grep -r "pattern" ~/.openclaw/agents/main/sessions --include="*.jsonl"
# With Repo Prompt
rp -e 'search "PATTERN" --context-lines 2'
# Helper script (if using Repo Prompt)
./scripts/gather-sessions.sh [days_back]
文件结构
rem-sleep/
├── SKILL.md # This file
├── README.md # GitHub readme
└── scripts/
└── gather-sessions.sh # Helper script (requires Repo Prompt)
说明
- 会话日志采用 JSONL 格式,内容封装在 JSON 中
- 如果不确定某项内容是否过时,请予以保留(采取保守做法)
- MEMORY.md 会在主会话中加载,因此请保持内容精简且相关
- 此技能是一套工作流,而非二进制程序——请根据你的设置灵活调整
贡献
欢迎提交 PR!改进建议:
- 更好的“哪些内容值得记住”判断启发式方法
- 替代搜索方法
- 适用于不同平台的自动化脚本
- 集成向量数据库以支持语义搜索
评论
支持 Markdown