跳转到主要内容
Rollout 是 Osmosis 在强化学习训练期间评估 agent 行为的单元。它把负责为 prompt 生成一个或多个 samples 的 AgentWorkflow,和负责把这些 samples 转换成 reward signals 的 Grader 组合在一起。 Rollout 是 workspace 中的普通 Python 代码。它可以是简单的单次 LLM 调用 workflow,也可以是使用 Strands Agents 的工具型 agent、OpenAI Agents SDK workflow,或者您通过开源 osmosis-ai SDK 自行驱动的自定义 harness。

训练循环

Osmosis 上的训练会重复运行同一个四段循环:
1

选择数据集行

训练集群从数据集中选择一行,并将其中的 prompt 字段发送给您的 AgentWorkflow。常见数据集包含 system_promptuser_promptground_truth
2

运行 AgentWorkflow

您的 workflow 接收 AgentWorkflowContext,通过 Osmosis 支持的 agent integration 调用当前策略,使用您提供的工具,并记录 rollout samples。
3

给 samples 打分

您的 Grader 接收收集到的 samples,以及该行的参考答案(ground_truth,以 ctx.label 暴露),并为每个 sample 分配数值 reward。
4

更新模型

reward 信号驱动训练更新,让策略向在您的任务上获得更高 reward 的行为移动。
这就是 rollout 代码必须通过 Osmosis integrations 路由模型调用的原因。训练集群需要服务当前策略、附加 rollout metadata、收集 traces,并把 rewards 连接回产出它们的 samples。

Rollout 中的文件

每个 rollout 都位于 rollouts/ 下,并由 evaluation 和 training configs 引用:
repository/
├── rollouts/
│   └── my-rollout/
│       ├── main.py
│       └── pyproject.toml
├── configs/
│   ├── eval/
│   │   └── my-rollout.toml
│   └── training/
│       └── my-rollout.toml
└── data/
    └── test.jsonl
FilePurpose
rollouts/my-rollout/main.py定义恰好一个具体 AgentWorkflow 和一个具体 Grader,同时用于 training 和 evaluation
rollouts/my-rollout/pyproject.toml声明 rollout-local Python dependencies
configs/eval/my-rollout.toml将 evaluation run 指向 rollout、entrypoint、evaluation policy 模型和 platform dataset
configs/training/my-rollout.toml将 training run 指向 rollout 代码版本和训练设置
osmosis train submitosmosis eval submit 都会从 entrypoint 文件中发现 rollout classes,并在服务端运行 rollout。Helper classes、tools 和 config objects 可以放在任意位置,但请暴露平台应验证的具体 AgentWorkflowGrader classes。

核心抽象

AbstractionWhat it doesWhere to learn more
AgentWorkflow定义 agent 行为:prompt 处理、模型调用、工具使用和 sample 创建构建 AgentWorkflow
Grader定义 reward 逻辑:精确匹配、程序化检查、LLM-as-judge 或自定义评分构建 Graders
Agent integration将您的 agent 框架连接到活跃的 Osmosis rollout contextStrands 集成OpenAI Agents 集成
Execution backend在您自行驱动 SDK 时,以进程内或 Harbor-managed environment 运行 rollout 代码执行后端

选择 Agent 框架

多数 rollout 作者会从内置 agent integrations 之一开始:

Strands Agents

如果您需要 Strands tools、Strands message handling,或想从已有 Strands Agent 直接迁移,请使用 OsmosisStrandsAgent

OpenAI Agents

如果您的 workflow 已经使用 OpenAI Agents SDK、Runner.run、sessions、handoffs 或 OpenAI 风格的 tool orchestration,请使用 OsmosisAgent
两个 integrations 都使用 OsmosisRolloutModel 占位符。您不会在 rollout 代码中硬编码训练模型;Osmosis 会在运行时把占位符解析为当前策略。
不要在 AgentWorkflow.run() 中用固定模型(例如 openai/gpt-5.2)直接调用 provider SDK。直接调用会绕过活跃的 RolloutContext,平台就无法路由策略请求、收集 samples,或把 rewards 连接到正确的 rollout。

选择执行后端

如果您使用 osmosis eval submitosmosis train submit,平台会管理执行,您不需要通过 CLI 选择后端。entrypoint 决定 rollout server 启动时构造哪个 SDK backend;starter templates 默认使用 LocalBackend,除非您选择 Harbor template。
如果您基于 Harbor template 做平台训练,请使用 Daytona-backed Harbor 路径;当前 managed platform 不支持 Docker-backed Harbor execution。
只有在把开源 SDK 嵌入自己的 harness 时,才需要选择 backend:
BackendUse when
LocalBackend您需要快速进程内执行、容易调试,并且不依赖 Docker
HarborBackend您需要 Harbor-managed per-trial isolation,并且使用 managed platform 所要求的 Daytona-backed 路径
SDK 级 examples 和 tradeoffs 请参见 执行后端

从模板开始

如果您已经有任务或数据集,请从 创建自己的 Rollout 开始。Platform-created workspace repositories 会包含 project-local Agent Skills,用来引导 AI coding agent 完成 dataset planning、rollout creation、evaluation run、debugging 和 training run readiness。 列出可用 starter templates:
osmosis template list
应用 Strands starter:
osmosis template apply multiply-local-strands
或应用 OpenAI Agents starter:
osmosis template apply multiply-local-openai
Templates 来自平台 workspace template repository。它们会在 rollouts/ 下写入 rollout 代码,并写入匹配的 evaluation 和 training configs,是了解预期文件布局、依赖声明和端到端 workflow 的最快方式。

进入训练的路径

Rollout 创建后,按以下路径推进:
1

实现 workflow

把策略调用放在 OsmosisStrandsAgentOsmosisAgent 后面,从 ctx.prompt 传入数据集 prompt,并把 task-specific tools 保持在 rollout 附近。
2

实现 grader

ctx.samples 中的每个 sample 打分。能用确定性 grader 时先从确定性逻辑开始;只有在任务主观时再加入 LLM-as-judge 逻辑。
3

Commit 并同步

将 rollout 修改 push 到默认分支,让 Git Sync 发布 evaluation run 和 training run 使用的代码版本。
4

提交 evaluation run

运行 osmosis eval submit configs/eval/my-rollout.toml,并用 osmosis eval info <name> 查看 rewards、failures 和 per-row 结果。参见 评估
5

提交训练

运行 osmosis train submit configs/training/my-rollout.toml。提交行为请参见 训练任务

下一步

创建自己的 Rollout

使用 project-local Agent Skills 和 evaluation run gates 创建 task-specific rollout。

构建 AgentWorkflow

学习 AgentWorkflow.run(ctx) contract 和常见实现模式。

构建 Graders

定义可驱动训练的 reward signals。

Strands 集成

使用 AWS Strands Agents 构建工具型 rollouts。

OpenAI Agents 集成

使用 OpenAI Agents SDK 构建 rollouts。