核心用法
Memory Cache 是一个标准化的 Redis 后端缓存系统,专为 OpenClaw Agent 设计。通过命令行工具 cache_manager.py 实现键值存储与检索,支持 set/get/scan/ping 等操作,并内置 TTL 过期机制。
主要功能场景:
1. Agent 状态保存 —— 使用 mema:context:* 命名空间存储会话状态
2. API 结果缓存 —— 通过 mema:cache:* 缓存易失性数据,可配置 --ttl 参数
3. 跨代理数据共享 —— 利用 mema:state:* 命名空间实现持久化状态同步
使用示例
# 存储带 1 小时过期的缓存
python3 cache_manager.py set mema:cache:user_profile '{"id":123}' --ttl 3600
# 检索数据
python3 cache_manager.py get mema:cache:user_profile
# 扫描匹配键
python3 cache_manager.py scan "mema:cache:*"显著优点
- 高性能:基于 Redis 内存存储,读写延迟极低
- 命名空间隔离:强制
mema:前缀,避免键值冲突 - TTL 自动过期:支持精细化缓存生命周期管理
- 标准化接口:统一 CLI 工具,降低多 Agent 集成成本
- 环境友好:仅需
REDIS_URL环境变量即可运行
潜在缺点与局限性
- 外部依赖强:必须部署并维护 Redis 服务,增加运维复杂度
- 无内置加密:Redis 默认明文传输,敏感数据需额外 TLS 配置
- 内存成本:大量缓存数据会消耗服务器内存资源
- 网络单点故障:Redis 宕机将直接导致缓存功能失效
- CLI 仅支持基础类型:复杂对象需手动序列化为 JSON 字符串
适合人群
- 需要跨多个 Sub-agent 共享状态的 OpenClaw 开发者
- 希望减少 API 重复调用的 Agent 架构师
- 已有 Redis 基础设施的运维团队
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 数据泄露 | Redis 默认无认证,暴露端口易被攻击 | 配置 `requirepass` + 防火墙限制 |
| 缓存穿透 | 大量无效 key 请求直达后端 | 配合布隆过滤器或空值缓存 |
| 内存溢出 | 未设置 TTL 导致数据堆积 | 强制默认 TTL + 内存淘汰策略 |
| 序列化错误 | 手动 JSON 字符串操作易出错 | 封装统一数据模型层 |