> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trymonte.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Tasks, servers, and graders for training and evaluation

An environment is the package that a model is scored or trained in. Monte builds environments on [NeMo Gym](https://docs.nvidia.com/nemo/gym/), so any Gym environment works unchanged.

## Components

| Component | Description | Example |
| - | - | - |
| [Tasks](https://docs.trymonte.ai/environments/tasks.md) | A JSONL file of task rows: the model's input, its tools, and the fields the grader reads | A support ticket, plus the expected route, category, and facts |
| [Server](https://docs.trymonte.ai/environments/servers.md) | A Gym resources server that runs during each attempt, with the tools and any state | `search_kb` and `escalate_to_human` |
| [Grader](https://docs.trymonte.ai/environments/graders.md) | The server's `verify` method, which returns a reward from 0 to 1 | Checks the route, the category, and the facts in the reply |

The same grader gives the eval score and the training reward. Rows without a grader are a [dataset](https://docs.trymonte.ai/datasets/overview.md), not an environment.

## Choose an Eval or a Training Environment

An environment holds one set of tasks, so it is an eval environment or a training environment, never both.

| | Eval environment | Training environment |
| - | - | - |
| Purpose | Scores a model. Never trained on. | Gives a training run its tasks and reward |
| Used by | An [experiment](https://docs.trymonte.ai/evaluation/experiments.md), as a held-out or development eval | `monte train --data <name>` |
| Add with | `monte env add --eval` | `monte env add --training` |

## Versions

`monte env add` makes an immutable version, such as `support-escalation@2`, with a fingerprint over the grader code, the task rows, and the configs. An experiment pins each eval version, and a run refuses to start when the fingerprint does not match, so a changed grader needs a new version and a new experiment.

## Create and Add an Environment

```bash theme={null}
monte env create support_escalation      # writes monte-gym/resources_servers/support_escalation/
monte env add --eval support_escalation --as support-escalation
monte env add --eval support_escalation_dev --as support-escalation-dev
monte env add --training support_escalation --as support-escalation-train
```

`--eval` takes an eval config under `monte-gym/benchmarks/`. `--training` takes a server whose config declares training rows. [Tasks](https://docs.trymonte.ai/environments/tasks.md#task-files) shows where each file goes. [Environment Commands](https://docs.trymonte.ai/commands/environments.md) lists every flag.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.