Session Memory (Workspace)

将每日会话摘要写入本地记忆文件,支持按日期和关键词搜索历史对话。

已扫描
适合谁
需要长期追踪对话历史的用户、希望实现会话记忆功能的开发者
不适合谁
无需历史会话追溯的简单问答用户、不使用 OpenClaw 平台的用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @breezezephyr/session-memory-workspace

Skill 说明

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

session-memory

当用户要求将昨日(或某日)的聊天内容记入记忆将某天的会话总结为记忆,或搜索过往对话(按关键词或日期)时,请使用此技能。该技能连接会话日志与记忆存储,使 OpenClaw 能够回答“我们那天聊了什么?”并利用会话上下文生成回复。

使用场景

  • 用户提问:“把昨天的聊天记到记忆里” / “总结一下 2 月 27 日的对话并写入 memory”
  • 用户提问:“查一下之前我们说过关于 XXX 的对话” / “搜索会话里关于 discord/股票 的内容”
  • 希望过去聊天内容可通过记忆/引用进行检索 → 需先对对应日期运行摘要脚本,之后常规记忆搜索即可包含该日内容

路径(默认代理)

  • 会话数据~/.openclaw/agents/main/sessions/

- sessions.json = 索引文件;<session-id>.jsonl = 完整对话记录

  • 记忆存储<workspace>/memory/

- 每日文件:memory/YYYY-MM-DD.md。创建文件或向其中追加 ## Session summary 小节

脚本需从工作区根目录运行(例如 ~/.openclaw/workspace),或通过 --workspace 参数指定路径,以确保 memory/ 路径正确解析。

1. 将某日会话摘要写入记忆(session-to-memory)

将指定日期的会话摘要写入 memory/YYYY-MM-DD.md 文件(若文件不存在则创建,存在则追加“Session summary”小节)。完成后,记忆引用和 RAG 检索将包含该日对话内容。

node skills/session-memory/scripts/session-to-memory.js --date YYYY-MM-DD

可选参数:

  • --date YYYY-MM-DD — 指定要摘要的日期(默认:本地时间的昨日)
  • --workspace /path/to/workspace — 工作区根目录;记忆目录为 <workspace>/memory(默认:当前目录或 ~/.openclaw/workspace
  • --sessions-dir /path — 覆盖会话目录路径(默认:~/.openclaw/agents/main/sessions
  • --append — 若文件已存在,则追加“Session summary”小节;否则覆盖(默认:追加)
  • --max-messages 200 — 构建摘要时每会话最多处理 200 条消息(默认:200)

示例:

cd ~/.openclaw/workspace
node skills/session-memory/scripts/session-to-memory.js --date 2026-02-27 --append

执行后可回复用户:“已把 2026-02-27 的会话摘要写入 memory/2026-02-27.md,之后你问当天的对话我就能通过记忆检索到。”

根据关键词和可选的日期范围,在会话 JSONL 文件中搜索,返回片段信息(会话 ID、日期、角色、内容片段),供代理在上下文中使用。此操作不写入记忆,适用于回答“之前我们说过 XXX 吗?”或在摘要前收集上下文。

node skills/session-memory/scripts/session-search.js --query "关键词" [--since YYYY-MM-DD] [--until YYYY-MM-DD] [--limit 20]

可选参数:

  • --query "..." — 搜索关键词(必填)
  • --since YYYY-MM-DD — 仅包含开始于该日期或之后的会话
  • --until YYYY-MM-DD — 仅包含开始于该日期或之前的会话
  • --limit N — 最多返回的片段数量(默认:20)
  • --sessions-dir /path — 覆盖会话目录路径

输出:标准输出的 JSON 数组,格式为 { sessionId, date, role, snippet, timestamp }。可用于回复用户,或判断是否需要对该日运行 session-to-memory

示例:

node skills/session-memory/scripts/session-search.js --query "discord 断联" --since 2026-02-26 --limit 10

3. 按日期列出会话(用于发现)

查看哪些日期有会话记录(例如在摘要或搜索前确认):

for f in ~/.openclaw/agents/main/sessions/*.jsonl; do
  [ -f "$f" ] && echo "$(head -1 "$f" | jq -r '.timestamp' | cut -dT -f1) $(basename "$f" .jsonl)"
done | sort -r

若未安装 jq,可使用 session-search 脚本配合宽泛查询和 --limit 1 每日方式,或直接对特定日期运行 session-to-memory 脚本(若无会话,会提示“无会话”)。

使用建议

  • 在一天结束(或用户提出请求)后进行摘要,确保 memory/YYYY-MM-DD.md 包含当日会话摘要,以便 OpenClaw 的记忆/引用搜索能识别。
  • 会话搜索为只读操作,不会修改记忆内容。适用于回答“有没有说过 XXX”或准备摘要前的上下文收集。
  • 摘要过程中,大容量会话将通过 --max-messages 限制消息数量,避免生成过大的记忆文件。
B
@breezezephyr

已收录 1 个 Skill

相关推荐