核心用法
Mema 是一套为开发者设计的个人记忆管理系统,采用双存储架构:
SQLite 元数据索引 —— 持久化存储文件路径、标题与标签,构建可检索的个人知识库索引。注意:仅索引元数据,不进行全文内容检索。
Redis 短期记忆 —— 跨会话状态管理,默认6小时TTL,适合暂存任务上下文、中间结果或会话标记。
典型工作流
1. 初始化:mema.py init 创建本地数据库
2. 索引文档:mema.py index <路径> --tag <标签> 建立知识图谱
3. 检索定位:mema.py list --tag <标签> 快速筛选相关文件
4. 状态传递:mental set/get 在会话间保持 ephemeral 上下文
显著优点
- 架构清晰:分层设计区分持久知识与临时状态,避免数据混杂
- 本地优先:所有数据存储于
~/.openclaw/memory,隐私可控 - 轻量集成:Python3 + pip 依赖,Redis 可复用现有实例
- 跨会话连续性:Redis 层解决 CLI/脚本环境的上下文断层问题
潜在局限
- 非全文搜索:仅索引路径与标签,内容检索需配合其他工具(如 ripgrep、Recoll)
- 单用户设计:无多用户隔离或权限控制
- Redis 依赖:短期记忆功能需要外部 Redis 服务,离线场景受限
- TTL 硬编码:默认6小时不可动态调整(需改源码或手动覆盖)
适合人群
- 频繁切换项目目录的开发者,需要快速定位历史文档
- 构建自动化工作流的工程师,需跨脚本传递临时状态
- 重视数据本地化的隐私敏感用户
常规风险
- Redis 暴露风险:若指向公网/共享 Redis 实例,
mema:mental:*键空间可被他人读取 - 路径遍历:虽限定
~/.openclaw/memory目录,但索引记录本身可能包含敏感路径信息 - 无加密:SQLite 数据库与 Redis 数据均以明文存储