SuperAPI AI 工具集

backup

办公与效率

查看项目

更新于 10-16 10:02

技能介绍

用途

Backup 是一个智能体状态快照管理技能,用于对当前智能体的状态进行备份、列出历史备份并从任意备份中恢复智能体。该技能基于 sc-agent-backup 存储服务运行,所有流程通过容器内的 CONTAINER_JWT 与同一存储服务(sc-agent-backup.internal)通信。身份由 JWT 推导,用户无法读取、写入或删除其他用户的命名空间。

技能提供三种操作流程:

  • 创建(Create):触发词包括 /backup、"备份…"、"做个快照"、"back up my agent"、"バックアップ" 等。流程为:打包当前智能体状态 → 上传至 sc-agent-backup。
  • 恢复(Restore):触发词包括 /restore、"恢复…"、"回滚到上次备份"、"restore from backup"、"復元" 等。流程为:列出 → 选择 → 下载 → 应用各 section(需用户确认)。
  • 删除(Delete):触发词包括 /delete-backup、"删除备份…"、"delete a backup"、"バックアップ削除" 等。流程为:列出 → 选择 → 两次用户确认 → DELETE /backups/{id}。

主要能力

  • 快照创建:将当前智能体状态打包并上传至存储服务。
  • 历史备份列表:列出用户此前的备份。
  • 恢复:从任意备份下载并应用状态,逐 section 需用户确认。
  • 删除:删除指定备份,需两次用户确认。
  • 语言策略:所有面向用户的消息(提示、摘要、确认问题、状态更新、错误说明)必须使用用户对话语言。

存储与配额

存储对每个用户设有 5 个备份的硬性上限。全量上传会返回一个替换菜单供用户选择,不会自动选择最旧的备份。

打包内容与默认排除

Bundle 布局包含 manifest.json(bundle 内部自描述,v1.1)、files/(workspace 与 data 的镜像)以及 api/(profile.json、settings.json、scheduled_tasks.json)。

默认包含 /data/ 下所有内容,包括 .env 明文密钥和 sessions/state.db + WAL。

默认排除项包括:/data/logs/ 与 *.log 文件、/data/memory/(ChromaDB、FTS 索引、embedding 缓存)、/data/.npm-cache/、/data/.bash_processes/、.startup-tasks/、hibernation_state.json、workspace/.backup/、workspace/.restore/、workspace/.active-upload.json、workspace/.restore.log、pycache/ 与 *.pyc。

--mode full 会禁用上述所有跳过项(除两个自循环项)。

完整性校验分两层:存储侧通过 {backup_id}.manifest.json 记录整包 sha256,并以 X-Sha256 在 GET /backups/{id} 返回;Bundle 侧在 manifest.json 中记录每个文件的 {path, size, sha256},恢复前会重新哈希校验。.env 包含明文密钥,bundle 为租户范围,只有用户自己的 JWT 能从存储读取。

使用方式

技能安装路径为 /data/workspace/skills/backup/。文档中的脚本路径均相对于智能体工作目录(/data/workspace/),例如 python3 skills/backup/scripts/pack.py。

创建备份流程分为四个阶段,不可从 A.1 直接跳到 A.3,用户必须先看到计划并批准范围后才能构建 tar.gz。A.1 阶段加载或初始化用户的备份规则文件(/data/workspace/config/backup_rules.md),并运行 propose_rules.py 对 /data/workspace/ 和 /data/ 顶层条目分类(core、skip、ask、unknown),随后呈现保守默认方案供用户确认。

恢复流程开始时,两种流程都会先检查 /workspace/.restore.log,用于判断上一次恢复是否中断。该文件存在意味着处于半恢复状态,创建流程会拒绝执行,恢复流程会询问用户继续、放弃还是取消,删除流程会继续但先给出警告。

限制

  • 智能体不得编辑 /data/workspace/skills/backup/ 下的任何技能代码文件(包括 SKILL.md 及各脚本),所有备份行为调整只能写入 /data/workspace/config/backup_rules.md。
  • Bash 变量不跨工具调用持久化,每次 bash 调用都是全新 shell。
  • 任何脚本失败时须立即停止流程并向用户展示错误(至少前 10 行 stderr)及脚本名和退出码,静默重试被禁止。
  • 存储每个用户最多 5 个备份。
  • bundle 视为敏感数据,不应复制到存储之外,不应跨账户共享 backup_id。
  • 部分事实(如具体收费、价格、平台支持范围)暂未提供。

适用场景

适用于需要对智能体状态进行快照、回滚与备份管理的场景,特别适合希望保留可恢复性、需要多语言交互、并希望将备份行为偏好持久化到配置文件中的用户。