> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/gym/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/gym/_mcp/server.

# Multi-Environment Training

NeMo Gym supports training on multiple environments simultaneously. Multi-verifier training is another term for this concept.

## Why Train on Multiple Environments?

This technique often results in more stable gains across multiple benchmarks. Single-environment training may cause unrecoverable degradation of other benchmarks.

## How to Configure

Suppose you want to use both the example\_single\_tool\_call and example\_multi\_step training environments. To start each server individually:

For example\_single\_tool\_call:

```bash
gym env start \
    --model-type openai_model \
    --resources-server example_single_tool_call
```

For example\_multi\_step:

```bash
gym env start \
    --model-type openai_model \
    --resources-server example_multi_step
```

To use both environments, add the YAML configs together as follows:

```bash
gym env start \
    --model-type openai_model \
    --resources-server example_single_tool_call \
    --resources-server example_multi_step
```

## Dataset Preparation

Build a dataset that contains data for both servers. Add the agent ref used to route requests to the correct agent server to each record.

```bash
jq -c '. + {"agent_ref": {"type": "responses_api_agents", "name": "example_single_tool_call_simple_agent"}}' resources_servers/example_single_tool_call/data/example.jsonl >> results/test_multiverifier_input.jsonl
jq -c '. + {"agent_ref": {"type": "responses_api_agents", "name": "example_multi_step_simple_agent"}}' resources_servers/example_multi_step/data/example.jsonl >> results/test_multiverifier_input.jsonl
```

## Rollout Collection

Run rollout collection as usual.

```bash
gym eval run --no-serve \
    --input results/test_multiverifier_input.jsonl \
    --output results/test_multiverifier_outputs.jsonl
```

Inside `results/test_multiverifier_outputs.jsonl`, you should see 10 rows with appropriate responses for each row.

Apply the same process for data preparation and downstream training. Add additional server configs as needed.