AgentWorkflow,和负责把这些 samples 转换成 reward signals 的 Grader 组合在一起。
Rollout 是 workspace 中的普通 Python 代码。它可以是简单的单次 LLM 调用 workflow,也可以是使用 Strands Agents 的工具型 agent、OpenAI Agents SDK workflow,或者您通过开源 osmosis-ai SDK 自行驱动的自定义 harness。
训练循环
Osmosis 上的训练会重复运行同一个四段循环:选择数据集行
训练集群从数据集中选择一行,并将其中的 prompt 字段发送给您的
AgentWorkflow。常见数据集包含 system_prompt、user_prompt 和 ground_truth。运行 AgentWorkflow
您的 workflow 接收
AgentWorkflowContext,通过 Osmosis 支持的 agent integration 调用当前策略,使用您提供的工具,并记录 rollout samples。给 samples 打分
您的
Grader 接收收集到的 samples,以及该行的参考答案(ground_truth,以 ctx.label 暴露),并为每个 sample 分配数值 reward。Rollout 中的文件
每个 rollout 都位于rollouts/ 下,并由 evaluation 和 training configs 引用:
| File | Purpose |
|---|---|
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 submit 和 osmosis eval submit 都会从 entrypoint 文件中发现 rollout classes,并在服务端运行 rollout。Helper classes、tools 和 config objects 可以放在任意位置,但请暴露平台应验证的具体 AgentWorkflow 和 Grader classes。核心抽象
| Abstraction | What it does | Where to learn more |
|---|---|---|
AgentWorkflow | 定义 agent 行为:prompt 处理、模型调用、工具使用和 sample 创建 | 构建 AgentWorkflow |
Grader | 定义 reward 逻辑:精确匹配、程序化检查、LLM-as-judge 或自定义评分 | 构建 Graders |
| Agent integration | 将您的 agent 框架连接到活跃的 Osmosis rollout context | Strands 集成、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。OsmosisRolloutModel 占位符。您不会在 rollout 代码中硬编码训练模型;Osmosis 会在运行时把占位符解析为当前策略。
选择执行后端
如果您使用osmosis eval submit 或 osmosis train submit,平台会管理执行,您不需要通过 CLI 选择后端。entrypoint 决定 rollout server 启动时构造哪个 SDK backend;starter templates 默认使用 LocalBackend,除非您选择 Harbor template。
只有在把开源 SDK 嵌入自己的 harness 时,才需要选择 backend:
| Backend | Use when |
|---|---|
LocalBackend | 您需要快速进程内执行、容易调试,并且不依赖 Docker |
HarborBackend | 您需要 Harbor-managed per-trial isolation,并且使用 managed platform 所要求的 Daytona-backed 路径 |
从模板开始
如果您已经有任务或数据集,请从 创建自己的 Rollout 开始。Platform-created workspace repositories 会包含 project-local Agent Skills,用来引导 AI coding agent 完成 dataset planning、rollout creation、evaluation run、debugging 和 training run readiness。 列出可用 starter templates:rollouts/ 下写入 rollout 代码,并写入匹配的 evaluation 和 training configs,是了解预期文件布局、依赖声明和端到端 workflow 的最快方式。
进入训练的路径
Rollout 创建后,按以下路径推进:实现 workflow
把策略调用放在
OsmosisStrandsAgent 或 OsmosisAgent 后面,从 ctx.prompt 传入数据集 prompt,并把 task-specific tools 保持在 rollout 附近。Commit 并同步
将 rollout 修改 push 到默认分支,让 Git Sync 发布 evaluation run 和 training run 使用的代码版本。
提交 evaluation run
运行
osmosis eval submit configs/eval/my-rollout.toml,并用 osmosis eval info <name> 查看 rewards、failures 和 per-row 结果。参见 评估。提交训练
运行
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。