NVIDIA-NeMo/Gym is a library and infrastructure for evaluating and improving models and agents inside environments, where each environment defines tasks, agent interaction, verification, and execution state. It is for teams running reproducible evaluations or training at scale across settings such as code execution, tool calling, and sandboxes, and the catalogue entries provide skills and instructions for working with it.
Borrowing it
Nothing to install: this file belongs to NVIDIA-NeMo/Gym. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/NVIDIA-NeMo/Gym/main/.agents/skills/add-harness/SKILL.mdgit clone --depth 1 https://github.com/NVIDIA-NeMo/GymWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/nvidia-nemo/gym/add-harness)<a href="https://agentmods.dev/skills/nvidia-nemo/gym/add-harness"><img src="https://agentmods.dev/badge/skills/nvidia-nemo/gym/add-harness/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/nvidia-nemo/gym/add-harness"><img src="https://agentmods.dev/badge/skills/nvidia-nemo/gym/add-harness.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00172 | $0.05740 |
| Opus 5.5 | $0.00069 | $0.02296 |
| Sonnet 5.5 | $0.00034 | $0.01148 |
| Haiku 4.5 | $0.00017 | $0.00574 |
Grade A, and why
add-harness scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 198 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add or Update a Harness in NeMo-Gym
The Gym page Add or Update a Harness is the contract and command reference. When it and this skill disagree, the page wins. This skill adds the order of work, the decisions to make before writing code, and the checks a harness must pass before it merges (Step 7). Read the linked sections; do not work from this summary alone.
Words used below follow the page's Terminology: the harness is the agent runtime, the adapter is the Agent Server that wraps it. A pairing is one harness run on one benchmark: the adapter is the agent, the benchmark's Resources Server prepares and verifies the tasks, and a single_agent_turn Environment Server connects the two for each episode.
Step 0: Scope before code
- Check what already exists. Look for the harness in Built-in agents, Sandboxed harnesses, and under
responses_api_agents/, including generic bridges such asharbor_agentthat can already launch some harnesses on the legacy/runpath. If an adapter exists, the work is an update or a migration, not a new adapter. Read its README and tests first. - Pick the path. Use Choose a Path. This skill covers an adapter that runs one agent turn per episode through
single_agent_turn. An agent that runs its own multi-turn episode, simulated users, or several verify calls needs its own Environment Server instead. - Pick the execution model and read Select an execution mode.
- Sandboxed harness: the harness runs inside the benchmark's task sandbox, supervised by
SandboxSession. Models:pi_agentandcodex_agent(CLIs),hermes_agent(a Python harness started through a shim). - In-process harness: an SDK or framework that runs inside the Agent Server with its own tools. Model:
simple_agentfor the seed hook and the session check at the top ofresponses(). Its close returns no bundle when model-call capture is off, so take the close fallback (a bundle with anobservation_capture_failedgap) fromhermes_agent. Do not copylangchain_deepagents_agentuntil #5003 lands: it inherits the hooks, but itsresponses()does not check the session yet. - Host execution is optional. If the adapter offers it, keep it working and test it separately.
- Sandboxed harness: the harness runs inside the benchmark's task sandbox, supervised by
- Pick the capability level. Use Choose the capabilities you need: Evaluation, Observability, Environment tools and task sandboxes, Training. The level decides which later checks apply. Write it down; it goes in the adapter README.
- Name the first pairing. Choose a benchmark whose Resources Server supports the session contract, and read its README (for example
benchmarks/terminal_bench_2_1/README.md) for its run config and the harnesses it lists. Check that the harness's real behavior fits the tasks: a harness that only edits files cannot solve tasks that need commands run. If the benchmark's Resources Server config declaresallowed_agents, a new harness is not in it yet; a server that declares none accepts any harness. During development, pass--allow-unsupported-pairingto the command that starts the servers (Step 5). Add the agent to a declaredallowed_agentsin the same PR only after Step 5 passes, and ask the benchmark's owner to review that line. Do not edit the benchmark's data, prompts, or verifier to fit the harness. - Ask the user for what you cannot invent: the pinned harness version and its runtime requirements, a model endpoint and its credentials (kept in
env.yaml, never in committed config), a sandbox provider for sandboxed runs, and approval for downloads such as task images or benchmark data.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +5 lines f2ec56ab9374
- yesterday Changed · +5 lines 1115e5c7ad58
- 2d ago Changed d1851d76660f
- 3d ago Changed 7373cea9285a
- 6d ago Changed 370d0b473b08
- 7d ago First seen · 188 lines · 172 tokens per session scan A 86ec2471747d
add-harness is a skill published in the GitHub repository NVIDIA-NeMo/Gym (1,320 stars, last pushed today), licensed Apache-2.0. It adds 172 tokens to every session and 5,740 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-30.
add-harness compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| add-harnessNVIDIA-NeMo/Gym | Skill | 1.3k | today | Apache-2.0 | A | 172 | Codex |
| model_finetuningvuralserhat86/antigravity-agentic-skills | Skill | 43 | 10mo ago | none | A | 67 | Claude Code, Codex |
| model_finetuningDonggangChen/antigravity-agentic-skills | Skill | 2 | 10mo ago | none | A | 67 | Claude Code, Codex |
| foundry-config-setupmicrosoft/agent-framework | Skill | 15k | yesterday | MIT | A | 65 | Claude Code, Codex |
| rowboat-spacesrowboatlabs/rowboat | Skill | 18k | yesterday | Apache-2.0 | A | 60 | Claude Code, Codex |
| create-tech-designhumanlayer/humanlayer | Skill | 13k | yesterday | Apache-2.0 | A | 16 | Claude Code, Codex |
| deploy-docker-composeomnigent-ai/omnigent | Skill | 11k | today | Apache-2.0 | A | 84 | Claude Code, Codex |