S

Skill 详情

Session Memory Extractor

OpenClaw 版 Claude-Mem:自动扫描旧会话文件,AI 提炼决策、偏好、事实,追加写入 memory/;同步清理 .jsonl 和 .trajectory.jsonl,释放数百 MB 磁盘。先提炼后清理,记忆不丢失。

来源平台:SkillHub
来源标识:SkillHub/session-memory-extractor
源文件:原始说明
数据处理 高关注 SkillHub 中 风险 下载 292 SkillHubClaude
来源平台SkillHub
文档版本1.0.4
热度高关注
排名信号下载 292
概述 安装 文档 下载

快速判断

OpenClaw 版 Claude-Mem:自动扫描旧会话文件,AI 提炼决策、偏好、事实,追加写入 memory/;同步清理 .jsonl 和 .trajectory.jsonl,释放数百 MB 磁盘。先提炼后清理,记忆不丢失。

最后校验2026-05-27
来源平台SkillHub
安全提示
下载副本ZIP 可用

适合任务

  • 按 SkillHub 收录说明复用成熟任务流程。
  • 通过下载包离线阅读完整 Skill 内容。
  • 结合热度指标优先评估常用 Skill。

输入与输出

输入:任务目标、上下文材料、文件路径、约束条件或需要处理的内容。

输出:按 Skill 说明生成的文档、代码、检查结果、计划、建议或操作步骤。

示例任务

  • 使用 Session Memory Extractor 帮我处理当前任务,并说明需要准备哪些输入。
  • 根据 Session Memory Extractor 的说明,先列出使用前的安全检查项。

安装方式

  1. 下载本站提供的 Skill ZIP 并解压。
  2. 把解压后的 Skill 目录放入当前 AI 工具支持的 skills 目录。
  3. 如需在线查看原始内容,可打开 GitHub 的 SKILL.md

在线原始地址:skillhub-session-memory-extractor/SKILL.md

风险边界

SkillHub 提供了源站安全报告入口,但本站不替代人工审查。使用前仍需检查权限、外部依赖和敏感数据边界。

SKILL.md 文档介绍

Session Memory Extractor

> cn: OpenClaw 版 Claude-Mem:自动扫描旧 Session 文件,AI 提炼决策、偏好、事实,追加写入 memory/;同步清理 .jsonl + .trajectory.jsonl,释放数百 MB 磁盘。提炼比清理先跑,记忆不丢失。

>

> en: OpenClaw's answer to Claude-Mem (71k GitHub stars): AI-scans old .jsonl/.trajectory.jsonl files, extracts decisions and facts into memory/, then safely deletes raw files. Extract first, cleanup second — context preserved, disk freed.

---

When to Use

用户明确要求提炼 session 记忆时,触发本 skill:

| 用户说(中文) | 用户说(英文) | 含义 |

|---------------|---------------|------|

| 用 session-memory-extractor 提炼 session 记忆 | use session-memory-extractor to extract session memories | 运行提炼 |

| 提炼旧 session 记忆 | extract memories from old sessions | 运行提炼 |

| 运行 session-memory-extractor | run session-memory-extractor | 运行提炼 |

⚠️ 以下宽泛表达不触发技能(避免误触发导致数据丢失):

  • ❌「整理 session 记忆」
  • ❌「清理 session 文件」
  • ❌「整理记忆」
  • ❌「清理文件」
  • ❌「SME」单独使用

触发命令

识别到上述语句后,先运行预览,不直接执行删除:

bash ~/.openclaw/workspace/skills/session-memory-extractor/session-memory-extractor.sh --agent main --preview

这会快速扫描并显示:

  • 将处理多少个 session
  • 预计耗时
  • 最早/最新文件日期

⚠️ 确认步骤(必须严格执行):

1. 预览完成后,向用户展示扫描结果

2. 告知将执行的操作及风险:

  • 提炼内容:将提取到 memory/,供后续 session 查阅
  • 删除原始文件.jsonl 原始文件将被永久删除,无法恢复
  • 隐私风险:session 中可能包含密码、密钥、敏感对话等,提炼内容会写入 memory/,存在隐私泄露风险

3. 等待用户明确输入 YES(大写)后,才执行提炼

4. 提炼完成后,询问是否删除原始文件,需用户再次输入 YES(大写)确认删除

用户确认后,再跑实际提炼:

bash ~/.openclaw/workspace/skills/session-memory-extractor/session-memory-extractor.sh --agent main --parallel 3

可选参数:

  • --preview 快速预览(不执行)
  • --parallel 3 并行数(默认 1,建议 3-5)
  • --min-age 14 自定义保留天数
  • --dry-run 只提炼不删除(需确认后执行)

---

版本历史

v1.0.4 (2026-05-26) — 安全修复

安全问题修复(来自 ClawHub 安全审计):

  • 收窄触发词:删除宽泛触发词(「整理 session 记忆」「清理 session 文件」),避免用户无意图时误触发导致数据丢失
  • 删除歧义别名:移除「SME skill」等歧义触发词,减少意外激活概率
  • 强化确认步骤:明确要求在预览后、执行前、执行后三次确认,确保用户全程知情

v1.0.3 (2026-05-24)

Bug 修复:

  • 飞书通知显示"(无提炼内容)"——实际提取了 300 条,原因是 JSON 报告 key 名是 results 但代码读的是 extractions,现已修复
  • 预览 total_size=0B——原因是 macOS 上 stat -f %s 返回的是 512 字节块数量而非文件大小,现改用 stat -f %z

体验改进:

  • 飞书通知新增 3 条提取内容示例(snippet),不只显示数字统计
  • 飞书通知现在会显示所有类型计数(DECISION/PREFERENCE/FACT/TODO),即使某类为 0 也会显示

v1.0.2 (2026-05-21)

改进:

  • 支持 config.env 配置文件,所有参数可通过配置文件修改,无需触碰代码
  • 模型选择从硬编码改为可配置(默认 MiniMax-M2)
  • API Key 来源可选择(auth-profiles.json / 环境变量)
  • 新增自然语言触发:用户可通过"用 sme 整理 session 记忆"等语句调用

---

痛点

OpenClaw 的 Session 文件(.jsonl / .trajectory.jsonl)越积越多,用了几个月轻松达到数百 MB。

问题是:

  • 内置 Compaction 只在上下文快满时触发,不清理历史文件
  • 内置 Dreaming 不会从旧 .jsonl 里提取内容
  • 手动删除 .jsonl = 直接丢失所有上下文

---

解决思路

扫描 session 目录 → AI 提炼关键内容 → 写入 memory/ → 删除原始文件
  • 提炼:用 AI 从原始对话中提取决策、偏好、事实、待办,标注置信度
  • 写入:追加到 memory/YYYY-MM-DD.md,永久保留
  • 删除:同时清理 sessions.json 和磁盘上的 .jsonl / .trajectory.jsonl
  • 通知:完成后发送飞书报告(需配置)

---

快速开始

1. 安装

下载 skill 后,复制配置示例文件:

cd ~/.openclaw/workspace/skills/session-memory-extractor
cp config.env.example config.env

2. 配置

编辑 config.env,修改以下必填项:

# 模型(默认 MiniMax-M2)
EXTRACTION_MODEL=MiniMax-M2

# API Key 来源:auth_profiles(默认,从 auth-profiles.json 自动读)
API_KEY_SOURCE=auth_profiles

# 保留天数
MIN_AGE_DAYS=7

# 飞书通知(可选)
NOTIFY_TARGET=ou_your_open_id_here
NOTIFY_ENABLED=false

3. 运行

# 完整提取 + 清理
bash session-memory-extractor.sh --agent main

# 预览模式(只提炼,不删除)
bash session-memory-extractor.sh --agent main --dry-run

# 自定义保留天数
bash session-memory-extractor.sh --agent main --min-age 14

---

配置文件详解

| 配置项 | 默认值 | 说明 |

|--------|--------|------|

| EXTRACTION_MODEL | MiniMax-M2 | AI 提炼使用的模型 |

| API_KEY_SOURCE | auth_profiles | API Key 从哪读:auth_profiles=从 auth-profiles.json,env=从环境变量 |

| MIN_AGE_DAYS | 7 | 超过此天数的 session 文件才会被处理 |

| CLEAN_TRAJECTORY | true | 是否清理 .trajectory.jsonl 文件 |

| NOTIFY_TARGET | (空) | 飞书 DM 目标(用户 open_id 或群 chat_id) |

| NOTIFY_ENABLED | false | 是否启用飞书通知 |

| DRY_RUN | false | dry-run 模式(只提炼不删除) |

---

输出格式

控制台摘要

Sessions processed:   12
Entries extracted:    31
Total bytes freed:   47.3 MB
Memory written:       memory/2026-05-20.md

memory/ 写入格式

## Extracted from session: {session-id}

- **[DECISION]** 用户选择了航天赛道作为主要内容方向
  Confidence: HIGH

- **[PREFERENCE]** 用户喜欢先给结论再展开
  Confidence: HIGH

---

多 Agent 支持

bash session-memory-extractor.sh --agent main      # ~/.openclaw/workspace/memory/
bash session-memory-extractor.sh --agent space      # ~/.openclaw/agents/space/workspace/memory/
bash session-memory-extractor.sh --agent math-tutor # ~/.openclaw/agents/math-tutor/workspace/memory/

---

触发调度

Skill 本身不内置定时,由用户自行配置:

<!-- macOS LaunchAgent: 每周一 10:00 -->
<key>Label</key>
<string>com.user.session-memory-extractor</string>
<key>ProgramArguments</key>
<array>
    <string>/bin/bash</string>
    <string>/path/to/session-memory-extractor.sh</string>
    <string>--agent</string>
    <string>main</string>
</array>
<key>StartCalendarInterval</key>
<dict>
    <key>Weekday</key><integer>1</integer>
    <key>Hour</key><integer>10</integer>
    <key>Minute</key><integer>0</integer>
</dict>

---

功能对比

| 功能 | 内置 Compaction | 内置 Dreaming | 本 Skill |

|------|:---:|:---:|:---:|

| 从 .jsonl 提炼内容 | ❌ | ❌ | ✅ |

| 写入 memory/ | 仅 compaction 时 | 仅 light 阶段 | ✅ |

| 提炼后删除原始文件 | ❌ | ❌ | ✅ |

| 释放磁盘空间 | ❌ | ❌ | ✅ |

| 支持 dry-run 预览 | ❌ | ❌ | ✅ |

| 配置文件化 | ❌ | ❌ | ✅ |

---

文件结构

session-memory-extractor/
├── SKILL.md                    ← 本文件
├── config.env.example           ← 配置示例(下载后复制为 config.env)
├── config.env                   ← 用户配置(下载更新时保留)
├── session-memory-extractor.sh  ← 主入口
├── run_extractor.py            ← Python 处理器
├── extract_session.py          ← AI 提炼
├── feishu_notify.py            ← 飞书通知
└── reports/                    ← 运行报告目录

---

安全说明

  • API Key 不写入日志:API Key 只在内存中使用,不写入任何输出文件
  • auth-profiles.json 读取:默认从 ~/.openclaw/agents/main/agent/auth-profiles.json 读取,无需手动配置
  • 环境变量回退:如果 auth-profiles.json 读取失败,回退到 MINIMAX_API_KEY 环境变量

---

故障排除

API 调用失败

检查项:

1. config.envAPI_KEY_SOURCE 是否正确

2. auth-profiles.json 是否存在且包含有效的 API Key

3. 网络是否正常

提炼结果为空

可能原因:

  • session 文件内容已被压缩/加密
  • session 主要是闲聊无实质内容
  • 文件日期未超过 MIN_AGE_DAYS

磁盘空间未释放

检查项:

1. 是否有其他进程正在读取 .jsonl 文件

2. sessions.json 是否有写权限

建议反馈