Skip to main content
An Environment is the graded world: the tasks, their gold answers, and the grader that scores an attempt. It is delivered as an installable Python package. Installing the package is what makes its name available to monte init.

Tasks

A Task is one question with its gold answer. It is the unit a Split enumerates, the grader scores, and rollouts run against. A Task belongs to the Environment and is identical for every Run.

Anatomy

An Environment implements a small protocol:
  • splits() names its task-ID lists.
  • grade(task, output) returns a score, under a declared grader identity.
  • fingerprint() hashes the task source, the grader, and the harness config.
  • install() and verify_install(), both optional, set up and check box assets.
Discovery runs through the monte.environments entry point. The box bootstrap never knows an Environment by name: monte env install --all installs whatever is registered.

The grader

The grader is the non-negotiable part. Ungraded data is never an input to the platform. One grader serves eval, training, and spot-checks, so scores cannot drift apart by construction.

Available Environments

The math Splits live on the durable data root, not in the repo. They are seeded by a manifest-verified copy and never derived on a box.

Authoring an environment

Build one: package shape, rules, and how to test it.

Measurement

How an Environment gets frozen into something measurable.