海狸养虾记 · 第 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 一行搞定,不装任何东西。
三步上手
第一步:建个养虾手册
bunx @beaverslab/claw-backup init-rule跑起来是个漂亮的交互界面,选预设、起名字,自动生成 YAML 规则文件:

生成的规则文件长这样:
version: 1claw_type: "openclaw"source_dir: "~/.openclaw"backup_dir: "~/claw-backups"restore_dir: "~/.openclaw"include: - "."exclude: - "browser/" - "completions/" - "*.log" - "logs/*"不想交互?加 --yes 一行搞定:
bunx @beaverslab/claw-backup init-rule --name my-openclaw --preset openclaw --yes第二步:给虾池拍个快照
bunx @beaverslab/claw-backup backup my-openclaw --yes工具遍历 ~/.openclaw 目录,按规则排除临时文件,把重要数据打包成 .tar.gz 归档,存在 ~/claw-backups/my-openclaw/202603261200.tar.gz。

加 --json 可以输出结构化结果:
bunx @beaverslab/claw-backup backup my-openclaw --json# 输出: {"success":true,"archivePath":".../202603261200.tar.gz","fileCount":42}第三步:出事了从快照恢复
bunx @beaverslab/claw-backup restore my-openclaw --yes两种恢复方式:
- 规则恢复 — 说个规则名,自动找最新归档
- 直接解压 — 给个
.tar.gz路径和目标目录,不用规则文件
安全建议:恢复前先给原目录改个名,万一恢复有问题还能回滚:
mv ~/.openclaw ~/.openclaw-before-restorebunx @beaverslab/claw-backup restore my-openclaw --yes
虾池里有什么值钱的东西
了解备份了什么,得先知道 ~/.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 中配置定时任务,每天凌晨自动执行:
bunx @beaverslab/claw-backup backup my-openclaw --yes --json--yes 让 Agent 不用问你,--json 让它看得懂结果。每天自动备份,自动生成巡检报告:

终极方案:两个叠加。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+cron | Time Machine | Claw 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 用。
养虾的教训告诉我们:不要等虾翻了肚皮才想起买增氧泵。
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日

