跳转到主要内容
Osmosis CLI 使用 TOML 文件运行 evaluation runs 和训练任务。Configs 必须位于 workspace directory 内:
Config typeRequired locationCommand
Evalconfigs/eval/*.tomlosmosis eval submit
Trainingconfigs/training/*.tomlosmosis train submit
必需字段会以 un-commented 形式显示。可选字段在 template 文件中会被注释掉,可省略以使用平台默认值。

Eval Config

osmosis eval submit 使用,用于提交一次 evaluation run。平台会克隆由 origin remote 标识的 workspace repository,并在服务端针对 platform dataset 运行 rollout。
configs/eval/my-rollout.toml
[experiment]
rollout = "my-rollout"                         # Rollout directory under rollouts/
entrypoint = "main.py"                         # Entrypoint relative to rollout dir
model_path = "openai/gpt-5-mini"               # LiteLLM-style model name for the evaluation policy
dataset = "my-platform-dataset"                # Platform dataset name from `osmosis dataset list`
# commit_sha = "abc123..."                     # Pin code to a specific commit

[evaluation]
# Optional. Omit values to use platform defaults.
# limit = 200                                  # First N rows; omit for random 10% sample
# n = 1                                        # Evaluation attempts per row
# batch_size = 1                               # Rows evaluated per batch
# pass_threshold = 1.0                         # Minimum passing score
# agent_workflow_timeout_s = 450               # Agent workflow timeout per row
# grader_timeout_s = 150                       # Grader timeout per row

# [env]
# LOG_LEVEL = "INFO"                           # Non-secret literal env var

[secrets]
# Eval config 必填。默认 OpenAI eval 模型需要此 secret。
# 仅在 evaluation 不需要任何 secret refs 时使用 required = []。
required = ["OPENAI_API_KEY"]

[experiment]

FieldTypeRequiredDescription
rolloutstrYesrollouts/ 下的 rollout 目录名
entrypointstrYes相对 rollout 目录的 Python entrypoint
model_pathstrYesevaluation policy 的 LiteLLM 风格模型名(例如 openai/gpt-5-mini
datasetstrYes来自 osmosis dataset list 的 platform dataset 名称
commit_shastrNo固定到指定 commit。默认使用默认分支上最新已同步的 commit。

[evaluation]

所有字段均为可选。省略字段表示使用平台默认值。
FieldTypeDescription
limitint评估的行数(前 N 行)。省略时,平台会对 dataset 随机抽取 10% 的样本。
nint每行 evaluation 的尝试次数(取 > 1 用于 pass@n metrics)
batch_sizeint每个 batch 评估的行数
pass_thresholdfloat样本计为通过所需达到或超过的分数
agent_workflow_timeout_sfloat每行 AgentWorkflow.run() 的 timeout
grader_timeout_sfloat每行 Grader.grade() 的 timeout

[env][secrets](eval)

evaluation run container 的可选 [env] 变量与必填 [secrets] 表。Eval config 必须包含 [secrets]——仅在 evaluation 不需要任何 secret refs 时才写 required = []。完整规则见下方的 [env][secrets]

Training Config

osmosis train submit 使用,用于提交训练任务。
configs/training/my-rollout.toml
[experiment]
rollout = "my-rollout"                         # Rollout directory under rollouts/
entrypoint = "main.py"                         # Entrypoint file name
model_path = "Qwen/Qwen3.6-35B-A3B"            # Supported base model
dataset = "my-dataset"                         # Platform dataset name
# commit_sha = "abc123..."                     # Pin code to a commit

[training]
# lr = 1e-6                                    # Learning rate
# total_epochs = 1                             # Training epochs
# n_samples_per_prompt = 8                     # Rollout samples per prompt
# rollout_batch_size = 32                      # Rollout batch size
# max_prompt_length = 8192                     # Max prompt tokens
# max_response_length = 8192                   # Max response tokens
# agent_workflow_timeout_s = 450               # Agent timeout per row
# grader_timeout_s = 150                       # Grader timeout per row

[sampling]
# rollout_temperature = 1.0                    # Sampling temperature
# rollout_top_p = 1.0                          # Top-p sampling

[checkpoints]
# eval_interval = 10                           # Evaluate every N rollouts
# checkpoint_save_freq = 20                    # Save checkpoint every N rollouts

# [advanced]
# Backend-specific fields. Use only when instructed by Osmosis support.

# [env]
# LOG_LEVEL = "INFO"                           # Non-secret literal env var

# [secrets]
# required = ["OPENAI_API_KEY"]                # 训练可选;若包含 [secrets],必须有 `required`
Git Sync 是您 rollout 代码的 source of truth。CLI 会读取您传入的本地 TOML config 值,但 rollout 代码来自已同步的 workspace repository。提交代码修改前,请先 commit、push 并等待同步完成;需要特定已同步版本时,请设置 commit_sha

[experiment]

FieldTypeRequiredDescription
rolloutstrYesrollouts/ 下的 rollout 目录名
entrypointstrYesPython entrypoint 文件名,通常为 main.py
model_pathstrYes受支持 base model path
datasetstrYes来自 osmosis dataset list 的数据集名称
commit_shastrNo从 workspace repository 获取的 Git commit SHA

[training]

FieldTypeDefaultDescription
lrfloatplatform default学习率
total_epochsintplatform defaultTraining epochs
n_samples_per_promptintplatform default每个 prompt 生成的 rollout samples 数
rollout_batch_sizeintplatform default每个 rollout batch 处理的 prompts 数
max_prompt_lengthintplatform default最大 prompt tokens
max_response_lengthintplatform default最大 response tokens
agent_workflow_timeout_snumberplatform default每行 agent rollout timeout
grader_timeout_snumberplatform default每行 grader timeout

[sampling]

FieldTypeDefaultDescription
rollout_temperaturenumberplatform defaultrollout 期间的 sampling temperature
rollout_top_pnumberplatform defaultTop-p sampling threshold

[checkpoints]

FieldTypeDefaultDescription
eval_intervalintplatform default每 N 个 rollout steps 评估一次
checkpoint_save_freqintplatform default每 N 个 rollout steps 保存一个 LoRA checkpoint

[advanced]

可选 backend-specific fields。CLI 会保留该 section 中的未知 keys,并由平台在服务端验证。

[env][secrets]

使用这些 sections 向 training run 或 evaluation run 期间的 rollout container 注入环境变量。同一套结构同时适用于 training 和 evaluation configs。
SectionValuesUse for
[env]存在 config 文件中的 literal strings非 secret 配置
[secrets].required平台 environment_secret 记录名列表API keys 和私有凭证
[env]
LOG_LEVEL = "INFO"

[secrets]
required = ["OPENAI_API_KEY", "DATABASE_URL"]
规则:
  • [env] keys 必须匹配 ^[A-Z_][A-Z0-9_]*$[secrets].required 名称必须匹配 ^[A-Z][A-Z0-9_]*$
  • 同一个名称不能同时出现在 [env][secrets].required 中。
  • [env] 中以 _OSMOSIS_ 开头的名称由平台保留,不能使用。
  • [secrets].required 只保存记录名——平台会在服务端将每个名称解析为加密的值,并以同名环境变量注入。Secret 值不会出现在 config 文件、API payload 或 CLI 输出中。
  • Eval config 必须包含 [secrets]。仅在 evaluation 不需要任何 secret refs 时使用 required = []
  • Training config 可以省略 [secrets]。但只要包含该 table,就必须定义 required
Secrets 有 scope。Workspace secret 在 workspace 内共享;Personal secret 只属于您本人,且会在运行时覆盖同名的 workspace secret。提交引用 secrets 的 run 之前,先用 osmosis secret set 注册它们。
从只填写 [experiment](以及 eval config 的 [secrets])开始,让平台使用训练默认值。仅在需要调优训练任务时添加可选字段。