v1.6.0
发布日期
2026 年 4 月 17 日
亮点
本次发布的核心是 Job 模块 的重大重构,引入清晰的 Job / Operator / Executor / Trial 分层抽象。在此基础上新增了两类作业类型 — BashJob(含 OSS 产物镜像)与 HarborJob。CLI rock job run 命令也已重写,支持严格 YAML 校验与作业类型自动识别。
Job 模块
新架构
Job / Operator / Executor / Trial 抽象
-
新增: 将 Job 模块重构为分层架构:
Job→Operator→Executor→Trial。该结构解耦了作业编排、调度、执行与单次尝试逻辑,便于扩展新的作业类型 (#779, #780) -
将
on_sandbox_readybackfill 逻辑上提至AbstractTrial,便于各类 Trial 共享 (#788, #789)
BashJob
-
新增: BashJob trial 支持 — 通过 SDK 或 CLI 提交 shell 脚本作业。参考
examples/bash/simple_bash_job_demo.sh(#772) -
新增: BashJob OSS Mirror — 作业完成后自动上传产物到 OSS (#823)
-
新增
claw-evalBashJob 示例,位于examples/evaluation/claw_eval/(#804)
HarborJob
- 新增: HarborJob trial 支持,基于新的 Job 抽象提交 agent 风格的作业 (#798)
配置与校验
作业类型自动识别
- 新增:
rock job run现在通过严格的 Pydantic 模型校验从 YAML 自动识别作业类型 — 无需指定--type(#814)
双模式输入
- 新增:
rock job run重写,同时支持--config(完整 YAML)与命令行参数两种模式,校验更严格、错误信息更清晰 (#818)
Native 模板配置
- 新增: 在
NativeConfig中新增TemplateConfig与template字段,支持基于模板的作业定义 (#786)
自动生成的 job_name
- 自动生成
job_name时对过长的路径片段进行截断,避免触发下游长度限制 (#791)
默认超时延长
Bug 修复
-
JobConfig.experiment_id现在优先于environment.experiment_id,确保调用方拥有显式控制权 (#822) -
修复
BashTrial.collect未正确填充raw_output与exit_code的问题 (#808) -
移除
BashTrial.build()中冗余的shebang与set -e注入,尊重用户脚本 (#816)
EnvHub
重构
-
破坏性变更:
JobEnvironmentConfig已迁移至envhub,更名为EnvironmentConfig。请相应更新 import 路径 (#800) -
移除
EnvironmentConfig中已弃用的auto_stop参数 — sandbox 生命周期改由auto_delete_seconds(v1.5.0 引入)控制 (#820) -
重构 EnvHub 上传链路,明确客户端与服务端职责边界 (#802)
Admin
数据库
SandboxRecord.image列长度从 255 扩展至 512 字符,支持更长的镜像路径;同时禁用 asyncpg 的 prepared-statement 缓存以避免 PgBouncer 兼容性问题 (#794)
CLI
admin stop命令中懒加载psutil,加快无关 CLI 调用的启动速度,并避免psutil不可用时的导入期失败 (#831)
测试与 CI
-
在
pg_container测试 fixture 中加入SELECT 1readiness 探测,避免集成测试 flaky (#778) -
全仓应用
ruff format,并将剩余中文注释翻译为英文 (#812)
迁移说明
-
auto_stop已移除: 请更新依赖auto_stop的EnvironmentConfig用法,改用auto_delete_seconds(v1.5.0 引入)。 -
JobEnvironmentConfig→EnvironmentConfig: 将rock.sdk.agent.models.job的 import 改为rock.sdk.envhub。 -
默认 Job 超时: 之前会触发 3600s 超时的作业,现在默认可运行至 7200s。如需保持原有行为,请显式设置
JobConfig.timeout。 -
rock job run: CLI 现在严格校验 YAML,先前能"静默通过"的未知字段或缺失字段配置会立即失败。