Skip to content

SkillGo v0.4.2

Choose a tag to compare

@github-actions github-actions released this 24 Sep 06:51
· 91 commits to main since this release

SkillGo v0.4.2

本次发布聚焦长任务快照机制的健壮性:快照只是崩溃恢复保险,不应因为工作区较大就杀死已经产出有效结果的任务。同时把不可变的用户输入移出快照,降低重任务的每轮开销。

主要更新

快照超容量不再杀死任务

  • 工作区快照超过容量上限(或 Docker 守护进程短暂不可用)时,平台不再终止任务:记录一条"已跳过工作区快照"中性事件后继续执行,本运行内不再重复尝试;最终产物的收集与校验完全不受影响。
  • 路径越界、符号链接、校验和不符等完整性/安全错误仍然按致命处理,不会被降级放过。
  • 事故背景:一个 6 页翻译任务产出 266 MiB 图片型 PDF(工作区 315 MiB),在轮次边界快照超过 256 MiB 上限后整个任务被 SANDBOX_INTERNAL_ERROR 杀死,且辅助容器删除超时一度掩盖了真实原因。

快照容量上限 256 MiB → 512 MiB

  • 依据线上 26 个真实快照的测量分布(中位数 14 MiB、P90 54 MiB、最大正常任务 127 MiB),为嵌图 PPTX、批量 OCR 等正当重任务留出 4 倍余量;恢复时内存峰值仍控制在 2 GiB worker 容器限额内。

用户输入不再进入快照

  • /workspace/input 是平台投放、任务全程只读的不可变文件,与已有的大型 Skill 包采用同一机制:快照排除这些字节,崩溃恢复、手动沙箱切换、任务中依赖升级换箱时从对象存储重新投放原件(逐字节一致,input_refs 哈希校验不受影响)。
  • 输入字节仅在恢复真正发生时才从存储读取,不在 worker 内存中常驻。

快照辅助容器清理加固

  • 冻结视图辅助容器的删除超时由 60s 提高到 180s,失败自动重试一次;重试仍失败只记告警并留给垃圾回收,清理异常不再覆盖真正的导出错误。

升级

本版本无数据库迁移、无配置变更,重建 api 与 worker 镜像即可(worker 建议在无运行中任务时滚动重建)。

Git 工作区部署:

sudo SKILLGO_INSTALL_ROOT=/opt/skillgo \
  SKILLGO_DEPLOY_ENV=deploy/ecs.env \
  bash deploy/backup-skillgo.sh

sudo SKILLGO_INSTALL_ROOT=/opt/skillgo \
  SKILLGO_DEPLOY_ENV=deploy/ecs.env \
  bash deploy/upgrade-skillgo.sh v0.4.2

验证

  • 后端 496 项回归全部通过,新增 15 项覆盖:超容量降级端到端(任务照常 finish、告警只发一次)、完整性错误仍致命、辅助容器清理重试不掩盖主错误、输入文件排除与恢复/换箱重投放(含首条命令启动容器前的投放顺序)。