核心用法
session-log 是一套为 OpenClaw 代理设计的轻量级会话持久化方案,核心解决 /new 命令重置会话导致历史丢失的问题。
启动阶段:每次会话开始时自动创建 sessions/YYYY-MM-DD_HH-MM_{agent}.md 文件,可通过 Python 脚本 new_session.py 或手动初始化。
运行阶段:每个有意义的话题结束后,追加单行摘要([topic] one-line summary),保持极简风格。
日报集成:定时任务通过 glob 模式读取当日所有代理的日志文件,聚合生成跨代理会话回顾。
多代理支持:main、writer、coding 等代理各自写入独立工作区的 sessions/ 目录,避免冲突。
显著优点
- 抗重置:日志文件独立于会话上下文,执行
/new不会丢失历史记录 - 零依赖:纯 Markdown 文件 + 可选 Python 脚本,无需外部数据库或服务
- 审计友好:时间戳 + 主题标签结构清晰,便于人工查阅和自动化解析
- 横向扩展:天然支持多代理架构,文件系统隔离保障并发安全
潜在局限
- 无结构化查询:依赖文件 glob 和文本解析,复杂检索需额外工具
- 存储开销:长期运行产生大量小文件,需定期归档或清理策略
- 并发限制:同一代理并发会话可能产生文件名冲突(时间戳精度到分钟)
- 无加密:明文存储敏感话题内容,需配合文件系统权限控制
适合人群
- 需要跨
/new保留工作上下文的 OpenClaw 用户 - 运行多代理协作团队、需统一日报汇总的技术团队
- 对会话可追溯性有合规要求的个人或组织
- 偏好文件系统原生方案、避免外部依赖的极简主义者
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 敏感信息泄露 | 日志明文记录对话主题 | 避免在摘要中写入机密内容;设置目录权限 700 |
| 文件累积膨胀 | 每日产生多文件,长期占用存储 | 配置 30/90 天自动归档或删除策略 |
| 时区/时钟漂移 | 跨机器部署时时间戳不一致 | 统一使用 UTC 或配置 NTP 同步 |
| 误删风险 | 用户手动清理时误删活跃日志 | 添加 `.gitignore` 保护或备份到版本控制外 |