跳转到主要内容

Documentation Index

Fetch the complete documentation index at: https://docs.osmosis.ai/llms.txt

Use this file to discover all available pages before exploring further.

AgentWorkflow 和 Grader 是 Osmosis SDK 中用于强化学习训练的两个核心抽象。它们共同定义了一个 rollout —— 即训练集群在每个训练步骤中执行的 Agent 行为和评估单元。

训练循环

Osmosis 上的 RL 训练遵循四步循环:
1

提示

训练集群从您的数据集中选择一行,并将其中的输入 prompt 发送给您的 AgentWorkflow。大多数情况下,这一行只需要包含 system_promptuser_promptground_truth
2

Rollout

您的 AgentWorkflow 处理 prompt —— 调用 LLM、使用工具、执行多步推理 —— 并生成输出消息。
3

评分

您的 Grader(评分器)根据这一行的参考答案(ground_truth,在运行时作为 ctx.label 暴露)评估 AgentWorkflow 的输出,并分配一个数值 reward(通常为 0.0 到 1.0)。
4

RL 更新

reward 信号驱动强化学习更新(GRPO、DAPO 等),引导模型朝着更高 reward 的行为发展。
此循环在每个训练步骤中遍历整个数据集,逐步提升模型在您特定任务上的表现。

核心抽象

抽象用途基类
AgentWorkflow定义 Agent 行为 —— 模型如何处理 prompt、调用工具并生成输出AgentWorkflow
Grader定义评估逻辑 —— 如何对 Agent 输出进行评分以产生 reward 信号Grader
两者都以 Python 类的形式存在于工作区的 rollouts/ 目录中,您需要对其进行子类化并实现。
rollouts/
└── my-rollout/
    └── main.py    # 定义一个 AgentWorkflow + 一个 Grader

快速示例

from osmosis_ai.rollout import (
    AgentWorkflow,
    AgentWorkflowContext,
    Grader,
    GraderContext,
)

class MyWorkflow(AgentWorkflow):
    async def run(self, ctx: AgentWorkflowContext) -> None:
        prompt = ctx.prompt
        # 在此处调用您的 LLM 或 Agent 逻辑
        pass

class MyGrader(Grader):
    async def grade(self, ctx: GraderContext) -> None:
        for sample_id, sample in ctx.samples.items():
            reward = 1.0 if "expected" in str(sample.messages) else 0.0
            ctx.set_sample_reward(sample_id, reward)
SDK 会自动从入口文件中发现您的 AgentWorkflowGrader 子类。无需注册或装饰器 —— 只需在模块中定义恰好一个 AgentWorkflow 子类和零个或一个 Grader 子类即可。

从代码到训练

写完 rollout 后,走到正式训练只需要三步:
1

使用 osmosis eval run 做本地评估

使用您自己的 LLM API key,在本地数据集上运行 rollout,检查 reward、通过率和 agent trace 是否符合预期。只想快速 smoke test 时,可以用 --limit N 限制运行的 prompt 数量。详见本地评估
2

提交并同步代码

rollouts/<name>/ 目录提交并推送到您已连接的 GitHub 仓库的默认分支。Osmosis 平台会通过 Git Sync 拉取变更 —— 这份同步过来的副本才是 osmosis train submit 真正执行的代码,未提交的本地改动不会被包含进来。
3

提交训练任务

使用指向您 rollout 和入口文件的训练 TOML 运行 osmosis train submit。平台会自动分配 GPU、从同步的 commit 部署您的 rollout 并为您运行 RL 训练。如果需要可复现性,可以用 commit_sha 固定到特定版本。

下一步

构建 AgentWorkflow

实现 AgentWorkflow 类以定义您的 Agent 行为。

构建评分器

实现 Grader 类以定义训练的 reward 信号。

本地评估

使用 osmosis eval run 评估 rollout —— 也可以在提交训练任务前作为 smoke test。

训练任务

本地 eval 通过后,提交一次训练任务。