Skip to main content
Osmosis SDK 提供面向 OpenAI Agents SDK 的 integration。如果 rollout 使用 AgentRunner.run、sessions、tools、handoffs 或其他 OpenAI Agents SDK primitives,请安装 openai-agents extra(osmosis-ai[openai-agents]>=0.3.0rc1,<0.4)。 该集成有三个主要对象:

快速示例

使用 OsmosisRolloutModel 时,请始终传入一个 OsmosisMemorySession。Session 会持久化 grader 将读取的 conversation。请在 AgentWorkflow.run() 内构造它,使其成为 active RolloutContext 的唯一 sample source。

工作原理

1

在 run 内构造 agent

OsmosisAgent 会检查 model 参数是否为 OsmosisRolloutModel。如果是,它会把占位符替换为绑定到活跃 RolloutContextOsmosisLitellmModel
2

创建 memory session

OsmosisMemorySession 会在当前 RolloutContext 上将自身注册为唯一 sample source。
3

运行 OpenAI agent

Runner.run() 通过 get_items()add_items() 与 session 交互。Session 会以 canonical Responses API shape 存储持久化的 OpenAI Agents SDK items。
4

路由策略调用

解析后的 model 会直接向 rollout-scoped Osmosis chat-completions URL 发送请求。
5

收集 sample

run() 完成后,backend 会向 rollout context 请求其 sample。Session 会返回一个包含 runner 持久化 conversation 的 RolloutSample

完整示例

此示例使用 OpenAI Agents SDK tool,并使用 grader 从 session-backed sample 中读取最后一条 assistant text。
sample.messages 会为 graders 保留 OpenAI Agents SDK session 的 native persisted items。Integration 会另外为 ATIF 执行 best-effort normalization;conversion 失败时 native sample 保持不变。使用 create_rollout_server() 创建的 server 会持久化该 ATIF view,并且只在 source 提供 usage、model 或 timestamp fields 时包含它们。

OsmosisRolloutModel

OsmosisRolloutModel 是占位符。不要直接调用它,也不要在 rollout 代码中传入固定 policy model name。在 workspace templates 中,采样选项放在 OpenAI Agents ModelSettings 中。
运行时,OsmosisAgent 会把该占位符替换为指向活跃 Osmosis rollout endpoint 的 model。
OsmosisRolloutModel 与 Strands integration 的占位符 constructor 不同。OpenAI Agents examples 使用 OsmosisRolloutModel()ModelSettings(...),而不是 params={...} dict。

每个 Rollout 使用一个 Session

每次使用 OsmosisRolloutModel 的 workflow execution 都必须恰好使用一个 OsmosisMemorySession
请在 run() 内创建 session。在 active rollout context 之外创建的 session 无法在 rollout run 内复用,因为它没有注册到该 context。在同一次 execution 中构造第二个 session 会抛出 ValueError;需要多个 candidate samples 时,请在同一次 run 内使用 handoffs,或配置多次独立 workflow executions。

从 OpenAI Agents SDK 迁移

如果您已有 OpenAI Agents SDK workflow,可以通过四步迁移:
1

用 OsmosisAgent 替换 Agent

修改 import 和 class:
然后构造 OsmosisAgent(...),而不是 Agent(...)
2

替换 policy model

将固定 model string 替换为 OsmosisRolloutModel 占位符:
3

添加 OsmosisMemorySession

AgentWorkflow.run() 内创建 session,并传给 Runner.run()
4

包装到 AgentWorkflow 中

将 runner call 放入 AgentWorkflow.run() 方法。除非 tools、instructions、handoffs 和 agent 行为依赖 out-of-band state,否则保持它们不变。

评估

使用普通 eval 命令:
Eval 期间,平台会把 openai/osmosis-rollout 路由到 eval TOML 中 [experiment].model_path 指定的 model。训练期间,Osmosis 会把同一个占位符路由到当前训练中的 policy。

下一步

AgentWorkflow

查看共享的 AgentWorkflow.run(ctx) contract。

Grader

为 OpenAI Agents session sample 编写 reward 逻辑。

评估

在训练前为您的 OpenAI Agents rollout 提交 evaluation run。
最后修改于 2026年8月10日