Session Scribe

将 OpenClaw 会话记录自动总结为每日记忆文件,支持定时运行。

已扫描
适合谁
需要长期保存会话内容的开发者、使用 OpenClaw 进行持续对话的 AI 研究者
不适合谁
对数据隐私要求极高的敏感场景用户、无法访问外部 LLM API 的离线环境用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @kitsune/session-scribe-openclaw

Skill 说明

命令、参数、文件名以原文为准

session-scribe

读取 OpenClaw 会话转录文件,并将摘要要点自动写入每日记忆文件 —— 通过系统 cron 实现自动化。

无需网关参与。无上下文膨胀。仅需低成本、可靠的记录服务。

⚠️ 隐私提示

此技能会将会话转录内容发送至外部大模型(OpenAI 或 Anthropic)。如果您的会话包含秘密信息、API 密钥、个人身份信息(PII)或敏感数据,请注意相关内容将被发送至服务商进行摘要处理。建议使用权限较低的专用 API 密钥并设置使用限额,可先运行 --dry-run 查看实际发送的内容。

工作原理

  1. 读取 <sessions-dir>/<session-id>.jsonl 中自上次运行以来的新条目
  2. 提取用户与助手的对话轮次(跳过工具调用和系统事件)
  3. 将内容发送至 OpenAI 或 Anthropic API 进行摘要(默认使用 gpt-4o-mini,成本低廉)
  4. 将要点摘要追加至 <memory-dir>/YYYY-MM-DD.md(日期自动确定)
  5. .scribe-state.json 中保存进度,确保下次仅处理新增条目

安装配置

# 安装依赖(仅需一次,在技能目录中执行)
cd /path/to/skills/session-scribe && npm install

# 设置 API 密钥 —— OpenAI 或 Anthropic 均可使用
export OPENAI_API_KEY=sk-...
# 或
export ANTHROPIC_API_KEY=sk-ant-api03-...

# 查找您的会话 ID
python3 -c "
import json, os
sessions = json.load(open(os.path.expanduser('~/.openclaw/agents/main/sessions/sessions.json')))
for k, v in sessions.items():
    print(k, '->', v.get('sessionId'))
"

# 测试运行(干运行,仅打印摘要,不写入磁盘)
node scripts/scribe.js \
  --sessions ~/.openclaw/agents/main/sessions \
  --session-id <your-session-id> \
  --memory-dir ~/.openclaw/workspace/memory \
  --dry-run

# 或通过关键字后缀自动解析会话(例如您的 Discord 频道 ID)
node scripts/scribe.js \
  --sessions ~/.openclaw/agents/main/sessions \
  --auto-session "discord:channel:YOUR_CHANNEL_ID" \
  --memory-dir ~/.openclaw/workspace/memory \
  --dry-run

注意: OpenClaw 内部的 oat 令牌无法用于直接 API 调用。请使用来自 platform.openai.com 或 console.anthropic.com 的标准 API 密钥。

系统 cron 配置

将以下内容添加至 crontab(执行 crontab -e)以每小时运行一次:

# 将密钥存于受保护文件中(切勿在 crontab 中直接嵌入密钥)
echo "sk-your-key" > ~/.openclaw/secrets/scribe-key
chmod 600 ~/.openclaw/secrets/scribe-key

# 单一会话(通过密钥文件)
0 * * * * node /path/to/session-scribe/scripts/scribe.js \
  --sessions ~/.openclaw/agents/main/sessions \
  --auto-session "discord:channel:YOUR_CHANNEL_ID" \
  --memory-dir ~/.openclaw/workspace/memory \
  --api-key-file ~/.openclaw/secrets/scribe-key \
  >> /tmp/scribe.log 2>&1

# 所有代理下的所有会话
0 * * * * node /path/to/session-scribe/scripts/scribe.js \
  --agents-dir ~/.openclaw/agents \
  --all-sessions \
  --memory-dir ~/.openclaw/workspace/memory \
  --api-key-file ~/.openclaw/secrets/scribe-key \
  >> /tmp/scribe.log 2>&1

参数说明

标志描述默认值
--sessions <dir>OpenClaw 会话目录路径必填
--session-id <id>指定要记录的会话 UUID
--auto-session <key>通过 sessions.json 键名后缀自动解析会话 ID
--memory-dir <dir>写入每日记忆文件的目录必填
--provider <name>大模型提供商:openaianthropic根据环境变量自动检测
--model <model>使用的模型gpt-4o-mini
--api-key <key>API 密钥(替代环境变量)
--api-key-file <path>从文件读取 API 密钥
--agent <id>记忆文件标题中显示的代理标签agent
--dry-run仅打印摘要,不写入磁盘false
--min-turns <n>至少需要新轮次数量才触发记录3
--active-within-hours <n>仅记录在该时间窗口内活跃的会话(仅 --all-sessions 模式有效)1

与 supermemory 配合使用

实现全自动记忆流程:

  1. session-scribe 每小时运行 → 向 memory/YYYY-MM-DD.md 追加内容
  2. supermemory ingest 每两小时运行一次 → 将变更文件同步至 Supermemory
  3. supermemory recall 在会话开始时调用 → 从历史会话中获取丰富上下文

参考资料

  • [references/transcript-format.md](references/transcript-format.md) — OpenClaw JSONL 转录结构及 sessions.json 格式
K
@kitsune

已收录 1 个 Skill

相关推荐