Skip to main content
Hosted Training runs are configured via a .toml file. This page covers all available configuration fields, from basic setup to advanced features like multi-environment training, online evaluation, and W&B integration. Hosted Training accepts both Verifiers environment config shapes:
  • Legacy (Verifiers v0) environments use id and optional args.
  • Verifiers v1 (taskset/harness) environments use taskset = { ... } and optional harness = { ... }.
The outer Hosted Training config still uses [[env]] and [[eval.env]]; the native prime-rl equivalent is [[orchestrator.train.env]] and [[orchestrator.eval.env]]. See the environment model for the conceptual difference between the two shapes.

Full Config Reference

Below is a complete annotated config showing all available fields. Required fields are uncommented; optional fields are shown as comments with their defaults.

Field Reference

Core Fields

Training Hyperparameters

Sampling

Eval Sampling

Overrides the inference server’s default sampling for eval-time rollouts only. All fields are optional; when the whole [eval.sampling] block is omitted, eval uses the server defaults.

Environment

Each [[env]] entry must provide either a legacy (Verifiers v0) id or a Verifiers v1 taskset.id. taskset.id, harness.id, and legacy id can be bare runtime ids or Hub refs. Bare ids such as "alphabet-sort-v1" or "default" are resolved by the installed runtime package. Slash-shaped ids such as "team/my-taskset" are resolved through the Environments Hub and can include @version.

Legacy (Verifiers v0) envs

Use id and optional args for existing Verifiers environments that expose load_environment(**args):

Verifiers v1 (taskset/harness) envs

Use taskset and harness for Verifiers v1 environments:
taskset owns task data, task controls, rewards, metrics, and task-owned tools. harness selects the program that drives the model — the built-in default harness, or an agent harness such as bash or codex — and its nested runtime field selects where that program runs: a local subprocess, or a docker/prime/modal sandbox.

Multi-Environment Training

You can train on multiple environments simultaneously by adding multiple [[env]] sections:
For Verifiers v1 envs, put sampling weights directly on each [[env]] entry:

Online Evaluation

Enable periodic evaluation during training to track progress without interrupting the run:
The [eval] section sets global defaults, and [[eval.env]] sections can override settings per environment. Verifiers v1 eval entries use the same taskset/harness shape. group_size is the v1 name for per-env eval rollouts; rollouts_per_example is still accepted for compatibility.

Eval Sampling

Eval rollouts use the inference server’s default sampling unless overridden via [eval.sampling]. The fields mirror [sampling] and [teacher.sampling] so the same knobs work everywhere — most commonly, you’d turn thinking off at eval time to get deterministic, faster scoring on a model that uses chain-of-thought during training:
enable_thinking and reasoning_effort are mutually exclusive — set at most one. Both ride on extra_body.chat_template_kwargs under the hood; you can also set extra_body directly if you need other chat-template controls.

Validation

Validation is a lightweight check that runs more frequently than full evaluation:
This uses the training environment’s validation split (if available) and reports metrics to W&B and the dashboard.

Rollout Filters

prime-rl filters rollouts at two points in the training pipeline. [[pre_batch_filters]] run before a rollout enters the training batch, so flagged rollouts never consume a batch slot; [[post_batch_filters]] run after a batch is assembled, and flagged rollouts are recorded but not shipped to the trainer. Three filter types are available — gibberish, repetition, and zero_advantage — and each either records detection metrics only (enforce = false) or drops flagged rollouts (enforce = true). By default, all three filters run in monitor mode pre-batch and zero_advantage is enforced post-batch. Setting either section replaces the default filter list for that slot. To focus training compute on examples with useful reward signal — the successor to the removed difficulty buffer’s online_difficulty_filtering — enforce the zero-advantage filter pre-batch:
Type-specific tuning knobs (such as repetition’s window and prob_threshold) pass through to the trainer as written.

Checkpoints

Control how often checkpoints are saved and how many are retained in cloud storage:
Checkpoints enable resuming training from a specific step if a run is interrupted. They’re automatically uploaded to cloud storage and can be used to create new runs from a saved state.

Warm-Starting from a Checkpoint

Start a new run from an existing checkpoint by setting checkpoint_id at the top level of your config. The checkpoint must be READY, use the same model, and you need access to the original run.
List available checkpoints with prime train checkpoints <run-id>.

Adapters

Configure periodic adapter uploads during training. Adapters are LoRA weights that can be deployed for inference.
Deployed adapters are protected from automatic cleanup. If you deploy an adapter for inference, it will not be deleted even if it exceeds the keep_last limit.

Infrastructure

Control the CPU and memory resources allocated to your environment containers. This only affects the environments you provide — trainer and inference infrastructure is fully managed by us.
If not specified, runs default to M. Most users won’t need to change this — use L if you notice slow CPU-bound operations during training.

Tailscale Networking

Tailscale networking is an enterprise-only feature. Contact your account team to enable it on your organization.
When enabled, every env-server (training and eval) for the run joins your Tailscale tailnet via a sidecar. From inside your environment code you can then reach private services — internal APIs, MCP servers, datasets behind a VPN — by their Tailscale IP, MagicDNS hostname, or by native LAN IP if a subnet router advertises it.
Use a tagged, ephemeral, reusable auth key. Tagged keys let you scope the env-servers in your tailnet ACL without granting them the same access as a user-owned device.

Weights & Biases Integration

Log training metrics, reward curves, and rollout samples to W&B:
When W&B is configured, all training metrics, evaluation results, and sample rollouts are logged automatically.

Secrets Management

The recommended way to supply secrets to Hosted Training is via environment secrets. Secrets linked or added to your environment are automatically injected at runtime — no config changes needed.
If you prefer to supply secrets via a file, you can use env_file in your training config instead:
The secrets.env file should contain key-value pairs:
You can also manage secrets via the CLI:
In your environment code, validate required keys early using vf.ensure_keys():

End-to-End Run

Walk through a complete training run step by step.

Troubleshooting

Solutions for common issues with Hosted Training.