Skip to main content
A grader is the verify method of the environment server. It reads the model’s answer and the task row’s grader fields, and it returns a reward from 0 to 1. The eval score and the training reward both come from this one number, and monte env add pins the grader code by hash.

Grader Output

The extra fields do not change the reward. They show in each trace why a score is low.

Choose Checks in Code or a Judge Model

A grader can mix both. The support_escalation grader checks the route, the category, and the facts in code. In the training environment, it also adds a tone score from the open-weight judge.

Write a Grader

This compact verify gates the reward on the route. A resolved ticket then scores the share of expected facts that the reply states. An escalated ticket scores 1 divided by the number of categories it names, if the right one is among them, so naming all six scores 1/6.
The full support_escalation grader also scores fact precision against kb_entry, so a reply that recites the whole knowledge base does not score high. In training, it also adds the judge’s tone score.

Choose a Judge Model

A judge model is a model that verify calls. An eval environment can use an open-weight or a closed-weight judge. A training environment uses an open-weight judge only. Set the judge model’s name in the server config, so the environment version records it. A closed-weight judge runs with the team’s own key under that provider’s terms, and Monte refuses it in a training environment: monte env add --training stops with E_REFUSAL. The tone score of the support_escalation training grader comes from the open-weight judge. An eval grader can make the same call to a closed-weight judge:
Security describes what a closed-weight judge sends out.

Grade Open-Ended Text

A task about style or tone has no one correct answer. For such a task, the grader fields hold a style_guide or a reference reply, and an open-weight judge scores the reply against it.
verify returns this score as the reward, or mixes it with checks in code.

Give the Grader a Secret

Store a judge key as a team secret. Every job of the team, including each eval, training run, and regrade, reads it as an environment variable with the same name.
The environment version does not record the value, so a new key does not change the fingerprint. Run history and logs never show it. Setup Commands lists the flags.

Fix a Grader and Regrade

A fixed grader is a new environment version, so it needs a new experiment. monte grade sends the stored replies of an old eval run to the new grader, without serving the model again:
Each monte grade writes a new eval run in support-triage-v2, and the regraded baselines are the baselines there. The command refuses with E_NOT_COMPARABLE when the target eval has other tasks or other eval settings. A grader that reads the state of the attempt cannot regrade. Evaluation Commands lists the flags.