Beaver Claw Backup 交互界面截图

为了防止龙虾暴毙,海狸们给 AI 助手搓了个备份工具

AI 智能体

海狸养虾记 · 第 2 期

全文约1,680 字,·阅读约 6 分钟

一个养虾人的血泪教训

海狸实验室有个朋友养虾。对,就是那种淡水龙虾。

每天精心调水质、控温度、按时投喂,虾越长越肥。看着一池子虾活蹦乱跳,他觉得自己是个天才养殖户。直到有一天早上,增氧泵半夜跳闸,一池虾全翻了肚皮。

他跟我说了一句话我至今记得:「你以为你养的是虾,其实你养的是风险。」

后来我换了个角度想,用 AI 助手和养虾其实很像:

你花了几个月调教 OpenClaw——它记住了你的工作习惯、API 密钥、偏好设置、对话记忆,所有东西都在 ~/.openclaw 这一个目录里。直到有一天磁盘损坏、误操作 rm -rf、或者系统升级翻车,一切归零。

养虾人至少还能买增氧泵的备用电源。AI 用户呢?大多数人什么都没准备。

所以海狸们手搓了一个工具:Beaver Claw Backup@beaverslab/claw-backup),给 AI 助手的数据上个保险。

这个工具干啥

一句话:基于 YAML 规则的 CLI 备份/恢复工具,专注 AI 工具数据保护。

用养虾来类比就很好理解:

  • 备份 = 每天给虾池拍照记录 — 打成 tar.gz 归档,按时间戳保存
  • 规则文件 = 养虾手册 — 哪些要备份、哪些不要,写在 YAML 里
  • 预设 = 新手养虾套餐 — 内置 OpenClaw 预设,开箱即用不用自己配
  • —yes / —json = 自动投喂机 — AI Agent 可以直接调用,不用人盯着

三个运行时依赖,TypeScript 写的,MIT 开源,当前版本 v0.6.0。bunx @beaverslab/claw-backup 一行搞定,不装任何东西。

三步上手

第一步:建个养虾手册

Terminal window
bunx @beaverslab/claw-backup init-rule

跑起来是个漂亮的交互界面,选预设、起名字,自动生成 YAML 规则文件:

init-rule 交互界面

生成的规则文件长这样:

version: 1
claw_type: "openclaw"
source_dir: "~/.openclaw"
backup_dir: "~/claw-backups"
restore_dir: "~/.openclaw"
include:
- "."
exclude:
- "browser/"
- "completions/"
- "*.log"
- "logs/*"

不想交互?加 --yes 一行搞定:

Terminal window
bunx @beaverslab/claw-backup init-rule --name my-openclaw --preset openclaw --yes

第二步:给虾池拍个快照

Terminal window
bunx @beaverslab/claw-backup backup my-openclaw --yes

工具遍历 ~/.openclaw 目录,按规则排除临时文件,把重要数据打包成 .tar.gz 归档,存在 ~/claw-backups/my-openclaw/202603261200.tar.gz

backup 执行输出

--json 可以输出结构化结果:

Terminal window
bunx @beaverslab/claw-backup backup my-openclaw --json
# 输出: {"success":true,"archivePath":".../202603261200.tar.gz","fileCount":42}

第三步:出事了从快照恢复

Terminal window
bunx @beaverslab/claw-backup restore my-openclaw --yes

两种恢复方式:

  • 规则恢复 — 说个规则名,自动找最新归档
  • 直接解压 — 给个 .tar.gz 路径和目标目录,不用规则文件

安全建议:恢复前先给原目录改个名,万一恢复有问题还能回滚:

Terminal window
mv ~/.openclaw ~/.openclaw-before-restore
bunx @beaverslab/claw-backup restore my-openclaw --yes

restore 执行输出

虾池里有什么值钱的东西

了解备份了什么,得先知道 ~/.openclaw 里都装了什么。像养虾人盘点家当一样:

必须保的(核心资产)

目录/文件内容类比
openclaw.json主配置(Gateway、代理设置)虾池的基本参数
.env / secrets.json环境变量和密钥养殖许可证
credentials/OAuth、WhatsApp、Matrix 凭证销售渠道的钥匙
agents/<id>/Agent 配置、模型设置、会话记录每只虾的生长档案
workspace/身份定义(SOUL.md)、记忆、Skill虾池的生态体系
cron/jobs.json定时任务定义自动投喂计划
hooks/钩子脚本水质监测装置

不用保的(能重建的)

目录为什么不保
browser/浏览器缓存,恢复后自动重建
completions/补全缓存,临时数据
*.log / logs/*日志文件,不影响核心功能

设计思路很简单:值钱的都备份,能重建的都排除。 归档精简,恢复快,不浪费空间。

备份文件列表

让备份自己跑起来

养虾人都知道,指望每天手动检查水质不现实。备份也一样——手动执行迟早会忘。

方案一:OneDrive 云同步

把备份目录指向 OneDrive 同步文件夹,一行改动:

backup_dir: "~/OneDrive/claw-backups"

每次备份,归档自动同步到云端。就算虾池(本机)出了事,云端还有完整记录。历史版本由 OneDrive 管理,想回溯到哪天都行。

适用于 OneDrive、iCloud、Dropbox——任何同步盘都行。

方案二:OpenClaw Agent 定时巡检

更酷的方案:让 AI 自己保护自己的数据。

在 OpenClaw 中配置定时任务,每天凌晨自动执行:

Terminal window
bunx @beaverslab/claw-backup backup my-openclaw --yes --json

--yes 让 Agent 不用问你,--json 让它看得懂结果。每天自动备份,自动生成巡检报告:

OpenClaw 定时备份配置 OpenClaw 每日备份报告

终极方案:两个叠加。Agent 每天自动备份 + OneDrive 自动同步到云端 = 雇了个 24 小时保安,还配了异地保险柜。你什么都不用管。

这个工具是怎么搓出来的

工具虽小,但海狸们在搓的过程中有几个设计觉得挺值得一提的。

三种输出:同一套代码,三种说法

同一个备份逻辑,三种输出方式:

┌─ 交互模式 ─── 漂亮的 clack UI(人看)
claw-backup ────────┼─ --yes 模式 ── 纯文本一句话(人扫一眼)
└─ --json 模式 ── 结构化数据(机器读)

关键是不搞两套代码,就在同一个流程里用条件判断切输出:

function outputResult(humanMsg: string, machineData: object): void {
if (IS_JSON) console.log(JSON.stringify(machineData));
else if (IS_YES) console.log(humanMsg);
// else 由 clack 组件处理
}

好处:三种模式的核心逻辑永远一致,不会出现「交互模式正常但 JSON 模式有 bug」的情况。

用 gitignore 语法过滤文件

用了 ignore npm 包,语法跟 .gitignore 完全一样,不需要学新东西:

exclude:
- "browser/" # 排除整个目录
- "*.log" # 排除所有日志
- "logs/*" # 排除子目录内容

清单式归档

先列清单再打包。临时清单文件 + 系统 tar 命令,try/finally 保证临时文件一定会被清理。

叫虾池名字就行,不用报坐标

工具支持三种规则引用方式:

输入 "my-openclaw" → 查找 ~/.beaver-skill/beaver-claw-backup/my-openclaw.yaml
输入 "./my-rule.yaml" → 当前目录下的文件
输入 "/abs/path" → 直接用绝对路径

工具箱里就三把扳手

整个工具只有 3 个运行时依赖:@clack/prompts(交互 UI)、ignore(文件过滤)、yaml(配置解析)。

这年头 npm 供应链攻击频发,少一个依赖就少一分风险。三把扳手够用了。

不是万能水泵,是专用监控设备

Claw Backup 不是 rsync 这种「万能水泵」,更不是 Time Machine。它是给 AI 虾池量身定做的监控设备:

维度rsync / tar+cronTime MachineClaw Backup
AI Agent 集成不支持不支持—yes / —json
预设系统内置 OpenClaw 等预设
安装成本系统自带macOS 专属bunx/npx 即用
学习曲线

在海狸实验室的工具生态里,Claw Backup 是基础设施层——保护上层所有 Skill 产生的数据和配置,是整个虾场的保险网。

从 v0.2 到 v0.6:工具的进化

v0.2 买了个摄像头 ─── 公开发布
v0.3 摄像头能转了 ─── 灵活规则管理
v0.4 录像按日期归档了 ── 分层存储
v0.6 摄像头接入 AI 了 ── 非交互模式

趋势很清楚:从手动到自动化,从给人用到给 AI 用。


养虾的教训告诉我们:不要等虾翻了肚皮才想起买增氧泵。

Terminal window
bunx @beaverslab/claw-backup init-rule

一行命令,给你的 AI 助手上个保险。


项目地址https://github.com/BeaversLab/beaver-skill/tree/main/skills/beaver-claw-backup

npm 包@beaverslab/claw-backup(v0.6.0,MIT 许可证)

发布于: 2026年4月6日 · 修改于: 2026年4月7日

相关文章