核心用法
session-memory 是 OpenClaw 生态中的会话归档与检索工具,解决 AI 助手跨会话"失忆"的痛点。它提供两条核心工作流:
1. session-to-memory:将指定日期的完整会话转录(JSONL)自动摘要并写入 memory/YYYY-MM-DD.md,使历史对话可被标准的记忆检索(RAG/引用)捕获。支持 --date 指定日期、--append 追加模式、--max-messages 截断长会话等参数。
2. session-search:在原始会话日志中执行关键词全文检索,返回包含会话ID、时间戳、角色的结构化片段(JSON)。支持日期范围过滤(--since/--until)和结果数量限制,用于快速定位历史讨论内容而不污染记忆文件。
此外提供 shell 片段用于发现哪些日期存在会话记录。
显著优点
- 零侵入集成:作为 Node.js 脚本运行,不修改核心代理架构,通过标准
memory/目录与现有 RAG 管道对接 - 精准追溯:保留原始会话的完整元数据(sessionId、timestamp、role),支持细粒度引用
- 灵活控制:支持追加/覆盖模式、消息数量截断、自定义路径,适应不同存储策略
- 双语友好:中文指令描述,降低中文用户配置成本
潜在缺点与局限性
- 外部依赖:强制要求 Node.js 运行时,纯 Python 环境需额外安装
- 无内置加密:会话日志与记忆文件以明文 JSONL/Markdown 存储,敏感对话需自行加密文件系统
- 摘要质量不可控:依赖简单的消息截断(
--max-messages)而非语义摘要,长会话可能丢失关键上下文 - 单代理设计:默认路径硬编码
agents/main/sessions,多代理并行场景需手动指定--sessions-dir
适合人群
- 需要长期维护项目上下文的开发者(如跨周/月的代码审查追踪)
- 将 OpenClaw 作为个人知识管理工具的重度用户
- 需要审计合规、保留完整对话可追溯性的团队
常规风险
- 数据残留:即使删除记忆文件,原始
sessions/*.jsonl仍保留完整对话,需配套日志清理策略 - 路径遍历:若用户可控的
--workspace或--sessions-dir未做校验,可能读取系统任意路径(需依赖调用方沙箱) - 并发写入:同一日期的多会话同时归档可能触发竞态条件(建议按日期串行执行)