名称: membase
描述: 使用 Membase 管理智能体记忆——这是一个去中心化、加密的记忆备份与恢复系统。提供智能体记忆的备份、恢复、列表、差异对比、状态查看和清理操作。
许可证: MIT
元数据:
author: Unibase
version: "1.0.0"
category: memory-management
tags: [backup, encryption, membase, storage, decentralized, memory]
allowed-tools:
- bash
Membase 为 AI 智能体提供端到端加密的安全、去中心化记忆存储。
当用户出现以下情况时,请激活此技能:
- 要求备份其记忆、对话或工作空间
- 希望恢复之前的记忆或对话
- 希望查看可用的备份
- 要求比较不同备份版本
- 希望检查备份状态
- 提及 "membase" 或 "备份记忆"
所有 Membase 操作都通过一个单一命令执行:
node membase.ts <命令> [选项]
可用命令:
- backup - 将记忆备份到 Membase
- restore - 从备份恢复记忆
- list - 列出所有可用备份
- diff - 比较两个备份
- status - 显示备份状态和统计信息
- cleanup - 清理旧备份
export MEMBASE_ACCOUNT=你的账户地址
export MEMBASE_SECRET_KEY=你的密钥
export MEMBASE_BACKUP_PASSWORD=你的备份密码
export MEMBASE_ENDPOINT=https://testnet.hub.membase.io
检查配置:
echo $MEMBASE_ACCOUNT
echo $MEMBASE_SECRET_KEY
echo $MEMBASE_BACKUP_PASSWORD
使用 AES-256-GCM 加密将智能体记忆文件(MEMORY.md, memory/*/.md)备份到 Membase。
用法:
node membase.ts backup [选项]
选项:
- --password <密码> 或 -p <密码> - 加密密码(若未在环境变量中设置,则必需)
- --incremental 或 -i - 仅备份自上次备份以来更改的文件
- --workspace <路径> - 自定义工作空间目录
- --no-validate - 跳过密码强度验证
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"请备份我的记忆"
你应该:
1. 检查 MEMBASE_BACKUP_PASSWORD:
bash
echo $MEMBASE_BACKUP_PASSWORD
如果未设置,询问:"请提供一个用于加密的备份密码(至少12个字符,包含大小写字母和数字):"
运行备份:
bash
cd skills/membase
node membase.ts backup --password "<密码>"
向用户展示结果:
```
[成功] 备份完成
备份 ID: backup-2026-02-02T10-30-45-123Z
文件数: 15
大小: 234 KB
[警告] 请妥善保存你的备份 ID 和密码!
```
增量备份(更快):
node membase.ts backup --password "<密码>" --incremental
从 Membase 备份恢复记忆。
用法:
node membase.ts restore <备份ID> [选项]
选项:
- <备份ID> - 要恢复的备份 ID(必需)
- --password <密码> 或 -p <密码> - 解密密码(若未在环境变量中设置,则必需)
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"从 backup-2026-02-02T10-30-45-123Z 恢复我的记忆"
你应该:
1. 检查密码:
bash
echo $MEMBASE_BACKUP_PASSWORD
运行恢复:
bash
cd skills/membase
node membase.ts restore backup-2026-02-02T10-30-45-123Z --password "<密码>"
展示结果:
[成功] 恢复完成
恢复文件数: 15
总大小: 234 KB
位置: ~/.openclaw/workspace/
列出此智能体所有可用的备份。
用法:
node membase.ts list [选项]
选项:
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"显示我的备份" 或 "列出我的备份"
你应该:
cd skills/membase
node membase.ts list
输出将显示:
可用备份:
ID 时间戳 文件数 大小
──────────────────────────────────────────────────────────────────
backup-2026-02-02T10-30-45-123Z 2026-02-02 10:30:45 15 234 KB
backup-2026-02-01T15-20-10-456Z 2026-02-01 15:20:10 12 198 KB
比较两个备份以查看更改内容。
用法:
node membase.ts diff <备份ID-1> <备份ID-2> [选项]
选项:
- <备份ID-1> - 第一个备份 ID(必需)
- <备份ID-2> - 第二个备份 ID(必需)
- --password <密码> 或 -p <密码> - 解密密码(若未在环境变量中设置,则必需)
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"我最近两次备份之间有什么变化?"
你应该:
1. 获取两个最近的备份 ID:
bash
cd skills/membase
node membase.ts list
使用这两个 ID 运行差异比较:
bash
node membase.ts diff backup-2026-02-02T10-30-45-123Z backup-2026-02-01T15-20-10-456Z --password "<密码>"
展示结果:
```
新增文件 (2):
修改文件 (1):
~ MEMORY.md
```
显示备份状态和统计信息。
用法:
node membase.ts status [选项]
选项:
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"我的备份状态如何?" 或 "检查备份状态"
你应该:
cd skills/membase
node membase.ts status
输出显示:
[统计] 备份状态
本地:
文件数: 15
大小: 234 KB
远程:
备份数: 10
配置:
端点: https://testnet.hub.membase.io
智能体: my-agent
工作空间: ~/.openclaw/workspace
列出可以删除的旧备份(Membase 目前不支持删除 API)。
用法:
node membase.ts cleanup [选项]
选项:
- --keep-last <n> - 保留最近 N 个备份(默认: 10)
- --dry-run - 仅显示将要删除的内容而不实际删除
- --no-json - 不输出供智能体解析的 JSON
示例对话:
用户:"清理旧备份,保留最近5个"
你应该:
cd skills/membase
node membase.ts cleanup --keep-last 5
注意:将显示哪些备份应被删除,但用户需要通过 Membase Hub 界面手动删除。
如果看到 "Membase 凭据未配置":
# 用户需要设置环境变量:
export MEMBASE_ACCOUNT=你的账户
export MEMBASE_SECRET_KEY=你的密钥
如果看到 "需要备份密码":
- 向用户询问密码
- 或建议设置 MEMBASE_BACKUP_PASSWORD 环境变量
如果看到 "密码无效" 或 "解密失败":
- 用户提供了错误的密码
- 询问正确的密码
如果列表显示 "未找到备份":
- 尚无备份存在
- 建议创建首次备份
如果连接失败:
- 检查网络连接
- 验证 MEMBASE_ENDPOINT 是否正确
- 稍后重试
---JSON_OUTPUT--- 和 ---END_JSON--- 之间)# 1. 检查状态
node membase.ts status
# 2. 首次备份(完整)
node membase.ts backup --password "MySecure123Pass"
# 3. 之后:增量备份
node membase.ts backup --password "MySecure123Pass" --incremental
# 4. 列出所有备份
node membase.ts list
# 5. 比较最近的备份
node membase.ts diff backup-id-1 backup-id-2 --password "MySecure123Pass"
# 6. 需要时恢复
node membase.ts restore backup-id-1 --password "MySecure123Pass"
确保你在 skills/membase 目录中:
cd skills/membase
pwd # 应显示 .../skills/membase
lib 文件夹需要链接到编译后的源代码:
cd skills/membase
ln -sf ../../dist/lib lib
使 membase.ts 可执行:
chmod +x membase.ts