核心用法
mema 是 Agent 的中央记忆系统,提供双层记忆架构:长期记忆层使用 SQLite 数据库存储文档索引(路径、标题、标签)和技能使用记录,数据持久化于 ~/.openclaw/memory/main.sqlite;短期记忆层通过 Redis 缓存临时上下文,以 mema:mental:: 为命名空间前缀,默认 6 小时 TTL 与 Agent 会话周期对齐。
主要操作包括:
mema.py init:初始化数据库表结构mema.py index <file> --tag <tag>>:将知识文档编入长期索引mema.py list --tag <tag>>:按标签检索相关文档mema.py mental set/get <key>>:读写短期会话状态
显著优点
1. 架构清晰:双存储引擎各司其职,SQLite 保证持久可靠,Redis 提供高性能临时缓存
2. 零外部依赖风险:纯本地文件操作,无网络 API 调用,数据完全自主可控
3. 安全实现:全参数化 SQL 查询杜绝注入,路径处理使用 os.path.expanduser 避免遍历攻击
4. 生态整合:深度嵌入 OpenClaw Agent 核心,与官方技能体系无缝协作
潜在缺点与局限性
- Redis 依赖:需独立部署 Redis 服务,增加运维复杂度
- 无分布式能力:SQLite 单文件架构限制高并发写入场景
- 功能边界明确:仅做索引与键值存储,不支持向量检索或语义搜索
- 配置简陋:缺少日志审计、数据库加密等企业级特性
适合的目标群体
- 个人开发者构建长期运行的 Agent 助手
- 需要跨会话记忆保持的自动化工作流
- OpenClaw 生态用户寻求官方推荐的原生存储方案
- 对数据本地化有强要求的隐私敏感场景
使用风险
- Redis 暴露风险:若 Redis 未设密码且监听公网,可能导致未授权数据访问
- 目录权限:需确保
~/.openclaw/memory//权限为 700,防止其他用户读取索引内容 - 数据备份:SQLite 单文件虽便于备份,但误删或损坏将导致记忆丢失,建议定期备份