Skip to main content
本更新日志重点介绍会影响 rollout 安装、开发、evaluation 和 training 的 SDK 与 CLI 变更。它比规范的 SDK changelog 更侧重实际任务;后者仍是完整的仓库发布记录。
Release candidate 会作为增量发布记录保留在时间线中。每个稳定版本都会提供相对上一个稳定版本的完整摘要,因此升级时无需先阅读每一条 release-candidate 记录。
0.3.2
0.3.2 是稳定版本,覆盖自 0.3.1 以来的完整变更。它让本地 evaluation 可以使用云端 sandbox,让 workspace-scoped command 无需本地 repository 即可运行,并移除了若干 public API。

破坏性变更

  • 移除 public 的 MessageResultGraderInitRequestGraderInitResponseRolloutDriverresolve_workspace_directory_from_cwd() API。请改用 OperationResultHttpRolloutDriverresolve_workspace_directory();两个未被使用的 grader-init 类型没有替代项。
  • SDK 不再声明 requests 为基础 dependency,也不再在 rubric extra 中声明 tqdm。如果您的代码直接 import 这些包,请自行声明。

新增功能

  • osmosis eval run 可通过托管的 cloudflared tunnel 访问 Daytona、SkyPilot 等云端 sandbox;当解析出的 sandbox 无法访问 host loopback 时会自动启动该 tunnel,也可以使用 --advertise-url 指向您自行运行的 tunnel。
  • 根级 --workspace <name> 可按名称选择 platform workspace。此时 benchmark、dataset、model、secret 与 run inspection 命令无需本地 repository 即可运行;当 config 所在的 Git repository 与所选 workspace 匹配时,eval submittrain submit 也接受绝对 config 路径。
  • osmosis eval upload <run-name> 会在 .osmosis/evals/ 下解析已完成的 run;显式 run directory 仍然可用。
  • 新增 eval 安装 extra 的文档,并支持 Python 3.14。

变更

  • 本地 osmosis eval run --dataset-file ... 在未请求 --upload 时不再加载 platform credentials。
  • 新脚手架生成的 rollout 依赖稳定的 osmosis-ai[server]>=0.3.0,<0.4 版本线。
  • 本地 evaluation 的 output、retry、resume 与 upload 路径会相对命令调用目录显示。

修复

  • 本地 evaluation 会在打开 tunnel 前校验 model 和 rollout server,保持较慢的 non-streaming tunnel response 存活,在 host 无法探测 tunnel URL 时接受已注册的 Cloudflare connection,并在 loopback endpoint 不可达时快速失败而不是挂起。
  • 当 CLI 与 rollout environment 使用不同的 osmosis-ai 版本时,本地 evaluation 会给出警告。
  • harbor extra 会安装 Harbor 的 Daytona dependencies,因此 Daytona environment 无需单独配置依赖即可使用。
  • --secrets-file 中的值仅在本地 evaluation run 期间覆盖 process environment,并在所有退出路径上恢复;orphan cleanup 也会拒绝 symlink 的 run directory。

升级

使用 rollout 所需的 extra 安装 osmosis-ai>=0.3.2,<0.4,并替换上文列出的已移除 API。针对云端 sandbox 运行本地 evaluation 时,还需要在 PATH 中提供 cloudflared binary,除非您使用 --advertise-url 提供自己的 tunnel。SDK changelog · 完整 diff
0.3.1
0.3.1 把 evaluation run 带到您自己的机器上,新增将这些结果导入平台的路径,标准化了机器可读的 CLI 输出,并把登录凭证迁移到操作系统 keyring 中。

破坏性变更

  • RolloutDriver.run 现在只接受单个 RolloutRunRequest 参数。请更新自定义 driver 及其调用方,改为传入该 request 对象。
  • ExecutionBackend.max_concurrency 和 import 时的 osmosis_ai.platform.auth.PLATFORM_URL 已移除。请从 rollout server 的 /health 响应读取并发容量,并使用 get_platform_url() 获取当前 platform URL。
  • 公共 record 类型中未使用的 server-owned 字段已移除。请不要再读取 UploadInfo.s3_key.upload_idDatasetFile.df_stats.organization_idTrainingRunMetrics.training_run_idEvalRunMetrics.eval_run_idRolloutInfo.last_synced_at 以及 TrainingRunCheckpoints.training_run_id

新增功能

  • osmosis eval run 通过新的 eval 安装 extra,使用与 managed run 相同的 TOML 在本地执行 crash-safe evaluation。它支持 dataset 切片、可恢复的输出、uv 管理的 rollout environment、LocalBackend 和 Harbor 的 Docker environment、可读的自动生成 run 名称、OpenAI Responses 路由、有界 admission,以及 orphan rollout server 清理。
  • osmosis eval upload <run-dir>eval run --upload 可将已完成的本地 run 导入平台。两者都以服务端为准且 idempotent,并且都不会启动 managed evaluation。

变更

  • CLI machine contract 已标准化。--json--plain 绝不会发出提示,JSON error 在 stderr 上使用稳定的 {code, message, details} envelope,机器可读的 warning 使用 JSON Lines,non-finite 值也不再可能产生无效 JSON。
  • 登录凭证按 platform 划分 scope,并持久化在操作系统 keyring 中,可跨目录和环境复用。它们在 HTTP 401 响应后仍会保留;针对非生产环境的 OSMOSIS_TOKEN 会在任何网络访问之前与 OSMOSIS_TOKEN_PLATFORM_URL 校验。

修复

  • Mini SWE-agent benchmark 的凭据校验与 Platform 保持一致,同时保留 Cursor CLI harness key 的要求。
  • osmosis dev server up 会打印 Platform 返回的一次性 API key,因此新建的 server 可以立即使用。

升级

请安装 osmosis-ai>=0.3.1,<0.4,在需要本地 evaluation 的地方添加 eval extra,并替换上文列出的已移除 API。SDK changelog · 完整 diff
0.3.0
0.3.0 是新 rollout protocol 与 execution stack 的稳定版本,覆盖自 0.2.31 以来的完整变更。

破坏性变更

  • 每个 rollout 现在都会通过 rollout-scoped URL 生成且仅生成一个 RolloutSample 和 reward。请将自定义 context、grader、integration、callback 与 backend adapter 更新为 single-sample contract。
  • Runtime integration 使用显式的 serverstrandsopenai-agentsharborrubricparquet extra,并从 feature-specific module import。AgentWorkflow.run() 返回一个 message history,原有 loader、validator 和 multi-trajectory helper 已移除。
  • HarborBackend 现在是此前名为 HarborBackendV2 的 container-native 实现;legacy backend、对应 constructor argument、OsmosisInstalledAgentHarborAgentWorkflowContext 均已移除。
  • Prompt 与 metadata dataset 各自在所有 row 中使用统一 schema,benchmark detail output 则以 requires_judge_api_key 替代 required_secret_names

新增功能

  • osmosis benchmark 现在支持 catalog discovery、submission、run inspection、logs、cancellation 和 output download。
  • Container-native Harbor backend 新增 installable workflow bundle、native agent、template 与 dataset mode、prewarming、diagnostics、artifact、admission control、status polling 和 cancellation。
  • Training、evaluation 与 benchmark submission 可以从 dotenv file、standard input、process environment 或 hidden terminal prompt 解析 per-run secret,无需将其保存到 Platform secret store。
  • osmosis quickstart 会引导用户完成 authentication、workspace repository setup、clone、billing check,并生成可直接粘贴的 agent prompt;OsmosisClient 也提供对应的 onboarding API。

可靠性与安全性

  • Rollout bundle 使用 content-addressed atomic cache,支持 flat、src/ 和 PEP 420 layout,拒绝不安全的 symlink 与 cache layout,并通过 Harbor extra 安装兼容的 uv builder。
  • Local execution 会执行 controller deadline、校验 reward、清理 optional callback telemetry,并保持一致的 terminal callback outcome。
  • Harbor 会保留 sample、diagnostics 与 ATIF trajectory,同时防止 task-source symlink 和 rollout credential 进入 archived trial data;secrets-file error 也不会再回显可能包含 secret 的输入。

升级

使用 rollout 所需的 extra 安装 osmosis-ai>=0.3.0,<0.4,然后按照从 v0.2 迁移到 v0.3完成 API、dataset、dependency 与 Harbor migration。SDK changelog · 完整 diff
0.3.0rc4
0.3.0rc4 在稳定版 0.3.0 发布前加入 workspace 引导式 onboarding,并加固 rollout execution、packaging、callback 与 secret handling。

变更内容

  • osmosis quickstart 现在会完成登录、选择 workspace、等待 repository 连接、clone 或复用 workspace directory、检查 billing,并为 training、evaluation 或 benchmark 生成可直接粘贴的 agent prompt。
  • OsmosisClient 新增 list_workspaces()get_quickstart_status()complete_quickstart(),用于 workspace-scoped onboarding integration。
  • RolloutSample.reward 现在会在构造与赋值时拒绝 NaN、无穷大和非数值。若 grader 传入此类值,会抛出 pydantic.ValidationError,而不再静默地以“无 reward”方式抵达控制器。NumPy 风格的数值标量会被规范化为 float
  • LocalBackend 将并发限流器的排队时间计入控制器下发的 agent_timeout_sec,并对 grading 应用独立的 grader_timeout_sec。吞掉 CancelledError 或阻塞事件循环超过截止时间的代码,现在会被报告为超时,而不是返回一个迟到的成功。
  • osmosis eval submitosmosis train submitosmosis benchmark submit--secrets-file 现在接受 export NAME=valueNAME="quoted value" 形式。格式错误的行仅按来源与行号报告,不会把行内容回显到 CI 日志。名称若无法通过 Python 的标识符检查会被直接拒绝。
  • Rollout bundle 的构建改为按项目内容、解释器 ABI 与平台进行内容寻址,且每次构建在隔离的目录中运行,必须恰好产出一个 wheel。除 flat layout 之外,现在也支持 src/ layout(如 uv init --lib 生成的)与 PEP 420 namespace package,Harbor extra 也会安装兼容的 uv builder。
  • Harbor 会在 task materialization 前拒绝 symlink,并在 retained trial file 被归档前清除 rollout controller credential。

谁需要采取行动

  • 使用 osmosis quickstart 或依赖这些 rollout 加固修复前,请升级到 osmosis-ai>=0.3.0rc4
  • 更新任何可能向 ctx.set_reward 传入 float("nan")float("inf") 或非数值的 grader —— Osmosis 现在会拒绝这些值。请返回预期的数值 reward,或者不调用 set_reward 以表示“未评分”。
  • 更新此前依赖旧解析器把引号当作值一部分或把 export 前缀当作名称一部分的 --secrets-file 数据源。旧行为会静默提交错误字符串;新解析器会将两种形式都解析为预期的值。
SDK changelog · 完整 diff
0.3.0rc3
0.3.0rc3 收紧了 dataset validation,并允许 submit command 为单次 run 提供所需 secret value,而无需将其保存到 platform secret store。

变更内容

  • Prompt dataset 需要 user_promptground_truth 或其 label alias;system_prompt 仍为 optional。
  • Metadata dataset 的每一行都需要 non-empty metadata object。Validation 现在会检查每一行 JSONL 和 CSV,以及每个 Parquet metadata value。
  • osmosis train submitosmosis eval submitosmosis benchmark submit 接受 --secrets-file;value 也可以来自 process environment 或 interactive prompt。
  • Benchmark detail 中的 required_secret_names 替换为 requires_judge_api_key

谁需要采取行动

使用 osmosis dataset validate <file> 验证现有 dataset,并更新混用 schema 或缺少 required value 的行。如果 run 使用本地 per-run secret,请在每次 submission 时重新提供;stored secret name 仍由 server-side 解析。请按照从 v0.2 迁移到 v0.3中的 dataset 和 secret 迁移步骤完成升级。SDK 更新日志 · 完整 diff
0.3.0rc2
0.3.0rc2 明确了 optional feature 的使用方式,并将 container-native Harbor 实现升级为 HarborBackend

变更内容

  • 使用 serverstrandsopenai-agentsharborrubricparquet extra 安装 optional feature;full 会安装全部功能。
  • 从各自的 public submodule import server、Harbor、Strands、OpenAI Agents 和 rubric 功能,而不是从 rollout 或 package root import。
  • AgentWorkflow.run() 通过 AgentWorkflowOutput、bare message list 或 None 返回一个 message history;None 使用 active sample-source fallback。Output metrics 必须是有限值。
  • HarborBackendV2 现更名为 HarborBackend;legacy backend 和 HarborAgentWorkflowContext 已移除。
  • CLI 新增 benchmark catalog、submission、status、logs、cancellation 和 output download workflow。

谁需要采取行动

更新 rollout dependency extras 和 imports、workflow return value,以及所有 Harbor constructor 或 context 用法。适用时,rollout server 还应处理 accepted work、queue saturation、status polling 和 cancellation。请按照从 v0.2 迁移到 v0.3中的 canonical import 和 Harbor 迁移步骤完成升级。SDK 更新日志 · 完整 diff
0.3.0rc1
0.3.0rc1 引入 0.3 rollout protocol。每次 workflow 执行现在只生成一个 RolloutSample,grader 也只分配一个 reward。

变更内容

  • GraderContext.samples 改为 GraderContext.sampleset_sample_reward(sample_id, reward) 改为 set_reward(reward)
  • 自定义 integration 通过 set_sample_source() 注册一个 source,并通过 get_sample() 读取它。
  • 移除了 RolloutSample.idMultiTurnMode。执行身份现在由 rollout URL 提供。
  • 模型和 callback 请求使用 rollout-scoped URL。Integration 不再为每次调用附加 sample 或 rollout routing headers。
  • Backend 交换 sample.json 和只包含单个值的 reward.json{"reward": <float>})。
  • Strands 和 OpenAI Agents integration 强制每次 workflow 执行只能注册一个 agent 或 session。

谁需要采取行动

如果你使用自定义 grader、自定义 sample source、backend adapter,或在一个 workflow 执行中创建多个已注册的 Strands agent / OpenAI Agents session,请更新相关代码。Evaluation 和 training 仍可针对同一个 prompt 请求多次独立执行。请按照从 v0.2 迁移到 v0.3中的前后对比代码和验证步骤完成升级。SDK 更新日志 · GitHub 发布页 · 完整 diff
最后修改于 2026年9月1日