用途
backup 是一个智能体状态备份管理技能(Snapshot Manager),用于对当前智能体进行快照创建、历史备份查看和恢复操作。它通过 sc-agent-backup 存储服务(内部地址 sc-agent-backup.internal)工作,身份与容器 JWT 绑定,用户只能访问自己的命名空间。
主要能力
三种流程(由不同触发词区分):
- 创建备份(Create):由 /backup、"备份…"、"做个快照"、"back up my agent"、"バックアップ" 等触发,将当前智能体状态打包并上传至 sc-agent-backup。
- 恢复备份(Restore):由 /restore、"恢复…"、"回滚到上次备份"、"restore from backup"、"復元" 等触发,流程为列出 → 选择 → 下载 → 逐分区应用(每步需用户确认)。
- 删除备份(Delete):由 /delete-backup、"删除备份…"、"delete a backup"、"バックアップ削除" 等触发,流程为列出 → 选择 → 两次用户确认 → 调用 DELETE /backups/{id}。
存储对每个用户有 5 个备份的硬性上限。当存储已满时,上传会返回替换菜单由用户挑选替换对象,不会自动选择最旧的备份。
使用方式
技能安装路径为 /data/workspace/skills/backup/,脚本以智能体工作目录(/data/workspace/)为基准,例如:
python3 skills/backup/scripts/pack.py ... python3 skills/backup/scripts/upload.py ...
相关脚本包括 pack.py、upload.py、download.py、restore.py、delete.py、list.py、propose_rules.py、ensure_rules.py。
用户偏好保存在 /data/workspace/config/backup_rules.md 中,记录默认模式、额外排除项(Extra excludes)、额外路径(Extra paths)、标签模板(Label template)及备注。该文件属于用户可自由读写,用于存放本容器特有的偏好设置;而 skills/backup/ 下的技能代码文件为只读,不得修改。备份行为的调整统一写入 backup_rules.md。
首次备份时会运行 propose_rules.py 扫描 /data/workspace/ 与 /data/ 顶层条目并分类,向用户展示将被备份和被跳过的内容列表,再据此生成规则文件。
备份内容
打包结构包含 manifest.json(含每个文件的 path、size、sha256 及排除项说明)、files/(workspace 与 data 的镜像)、api/(profile.json、settings.json、scheduled_tasks.json)。
默认包含 /data/ 下所有内容,包括 .env 明文密钥和 sessions/state.db 及 WAL。默认排除(黑名单)日志文件、ChromaDB/FTS 索引/嵌入缓存、.npm-cache、.bash_processes、.startup-tasks、hibernation_state.json、workspace/.backup、workspace/.restore、.active-upload.json、.restore.log、pycache 与 *.pyc。--mode full 会禁用这些跳过(除两项自循环保护项)。
完整性校验分层:存储侧以 {backup_id}.manifest.json 提供整包 sha256;包内 manifest.json 提供逐文件哈希,恢复时逐一重算校验。
适用场景
适用于需要对智能体当前状态做快照、日后回滚或迁移的场景,例如在改动前保存状态、从历史备份恢复、清理旧备份。
限制
- 每个用户最多 5 个备份,超出时需通过替换菜单选择。
- 备份包包含明文密钥,应视为敏感数据,不应复制到存储之外或跨账户共享,客户端 AEAD 加密为未来可选项。
- 技能代码文件为只读,不得编辑,所有调整写入 backup_rules.md。
- 脚本失败时须立即停止流程并展示错误,不得静默重试。
- 若存在未完成的恢复日志(/workspace/.restore.log),创建流程会拒绝执行,恢复流程会询问用户如何处理,删除流程会给出提示。
暂未提供
关于具体收费、价格、平台支持范围等信息,资料中暂未提供。