Install
openclaw skills install session-memory-flushClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
在 OpenClaw session 即将因 idle/reset 释放前,扫描 `openclaw sessions --json` 可见会话,读取 transcript,提炼高价值上下文并写入 workspace memory 文件,降低新 session 的失忆感。用于 main、native subagent、cron、dreaming 等会话的 idle 前摘要回收;当需要安装、验证、调试、交付这个 skill,或需要解释它与 builtin memory / per-agent SQLite index / workspace 共享范围的关系时使用。
openclaw skills install session-memory-flush在 OpenClaw session 因 idle 自动释放前,读取当前 session transcript,优先调用 openclaw.json 中 agents.defaults.model.primary 对应提供者做 LLM 摘要,并把值得后续继续工作的上下文写入短期记忆文件。
默认写入 ~/.openclaw/workspace/memory/YYYY-MM-DD.md;也可用 SESSION_MEMORY_OUTPUT_DIR 或 openclaw.json > sessionMemoryFlush.outputDir 覆盖输出目录。
openclaw sessions --json 当前可见的 sessionsession.agentId 感知 transcript 与模型配置,不再把所有 session 偷偷当成 main~/.openclaw/memory/<agentId>.sqlitememory/*.md 读取链路如果 openclaw sessions --json 里看到的 session 都是同一个 agentId(比如全是 main),那你的实际运行效果通常可以近似理解为:
但这依然是因为它们实际落在同一个 agent scope,不是因为这个 skill 神奇地跨 agent 统一了 builtin memory。
/new/reset这些场景视为用户主动重置,不做旧会话回收。
## YYYY-MM-DD HH:mm 会话摘要
来源:agent=<agentId> / channel / type / sessionId=xxx
- 本轮目标:
- 已完成事项:
- 重要决策:
- 用户偏好:
- 待办事项:
- 风险和未完成上下文:
agentId:sessionId 记录,避免不同 agent 误判为同一条 session定时运行:
bash install.sh
默认行为不再写死在 skill 里,而是按下面顺序取值:
openclaw.json > sessionMemoryFlushopenclaw.json > session.reset/session.resetByType其中:
session.resetByType.direct.idleMinutessession.resetByType.group.idleMinutessessionMemoryFlush.timerMinutessessionMemoryFlush.scanWindowMinutes推荐在 openclaw.json 里显式加一段:
{
"sessionMemoryFlush": {
"timerMinutes": 1,
"idleMinutes": {
"direct": 5,
"group": 30
},
"scanWindowMinutes": {
"direct": 1,
"group": 5
},
"outputDir": "$HOME/.openclaw/workspace/memory"
}
}
仍可通过环境变量覆盖:
SESSION_MEMORY_TIMER_MINUTES=1 \
SESSION_MEMORY_DM_IDLE_MINUTES=5 \
SESSION_MEMORY_GROUP_IDLE_MINUTES=30 \
SESSION_MEMORY_SCAN_WINDOW_DM=1 \
SESSION_MEMORY_SCAN_WINDOW_GROUP=5 \
SESSION_MEMORY_OUTPUT_DIR="$HOME/.openclaw/workspace/memory" \
bash install.sh
如果什么都不传,install.sh 会直接读 ~/.openclaw/openclaw.json 生成 timer/service。
手动试跑:
python3 watcher.py --once --dry-run
强制处理指定 session:
python3 watcher.py --once --force-session <sessionId>
state/flushed_sessions.json 为空状态:{"flushed_sessions": {}}。openclaw.json、session jsonl、memory markdown、SQLite 数据库、日志、缓存目录或任何本地运行产物。openclaw.json 中配置的模型提供商生成摘要;这意味着 transcript 可能会发送给用户自己配置的 LLM provider。watcher.py 只在运行时读取本机 openclaw.json 或环境变量中的 API key 用于请求模型,不会把 API key 写入 state、memory markdown 或日志。SESSION_MEMORY_LLM_* 配置,或依赖本地规则摘要兜底。如果要做成更稳的标准交付,建议把外部描述统一写成下面这句:
该 skill 会在 session 即将 idle/reset 释放前,把 transcript 摘要写入 memory 文件,降低后续新 session 的失忆感;它对当前
openclaw sessions --json可见的 session 普遍适用,但不同agentId是否能共享后续记忆效果,仍取决于 workspace、memory 文件加载链路以及 builtin memory 的 per-agent 索引边界。