Add NeMo Gym V1 integration - #2212
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Migrated review contextThis PR carries the exact head commit from the prior fork-backed review. Outstanding point retained for follow-up:
|
ApprovabilityVerdict: Needs human review This PR introduces a new NeMo Gym V1 integration with substantial new capabilities including subprocess management for resource servers, HTTP/MCP communication with external services, and new scoring mechanisms. The scope and complexity of this new feature warrants human review. You can customize Macroscope's approvability policy. Learn more. |
44df475 to
3cc18e5
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want reviews to match your repository better? Bugbot Learning can learn team-specific rules from PR activity. A team admin can enable Learning in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d102c94. Configure here.
e80ec39 to
9cbd5c2
Compare

Overview
Adds a NeMo Gym resources-server integration for Verifiers V1. Existing Verifiers harnesses drive the rollout while NeMo Gym remains responsible for resource-server state, native tools, and scoring.
Details
/verifyrewards and numeric metrics.nemo-gymoptional dependency and reuses resource-server classes from the published package, with V1 owning startup and cleanup.environments/nemo_gym_weather_v1as a thin, self-starting example package; external resource-server URLs remain supported for custom deployments.Fixes RES-1090
Note
Medium Risk
New subprocess lifecycle, HTTP/MCP session bridging, and a large optional dependency graph (Ray, wandb, etc.) on 3.12+; core 3.11 installs are gated but lockfile/resolution changes affect all developers.
Overview
Adds NeMo Gym as a V1 taskset path so harnesses can run rollouts against Gym resource servers while scoring stays on Gym’s
/verifyAPI.The new
verifiers/v1/tasksets/nemo_gympackage loads JSONL rows into tasks, seeds per-rollout sessions (cookies + optional MCP metadata), bridges tools viaNeMoGymToolset(upstream MCP or direct HTTP), and converts a single-branch trace to a NeMo Responses payload for verification.NeMoGymEnvcan spawn a published resource-server class in a subprocess when noresources_urlis set.Packaging: optional
nemo-gymextra (Python 3.12+) with uv dependency-metadata to trim NeMo’s declared stack to resource-server needs; lockfile picks up transitive deps. Example packageenvironments/nemo_gym_weather_v1pins the example MCP weather server and dataset. MCP server registration is renamed from_registertoregisteron the base server/toolset.CI smoke evals skip
nemo_gym_weather_v1because it is not in the default install.Reviewed by Cursor Bugbot for commit 0e1a385. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Add NeMo Gym V1 integration for agent evaluation against managed resource servers
NeMoGymTasksetandNeMoGymEnvin verifiers/v1/tasksets/nemo_gym/ to load tasks from a JSONL dataset, seed sessions with a NeMo Gym resource server, and score rollouts via the server's/verifyendpoint.NeMoGymEnv.startautomatically spawns a per-worker resource server subprocess, polls for its port, and wires the task config to use it;NeMoGymEnv.stoptears it down cleanly.NeMoGymToolsetproxieslist_toolsandcall_toolto the upstream MCP server when available, or falls back to direct HTTP POSTs for datasets that declare tools explicitly.trace_to_nemo_responseconverts a completed Verifiers trace into a NeMo Gym-compatible response payload for submission to/verify.nemo-gym-weather-v1example environment package in environments/nemo_gym_weather_v1/ demonstrating how to wire a concrete taskset to a resource server.Changes since #2212 opened
NeMoGymTask.setupmethod to remove transport validation and default values when processing MCP metadata [3865703]NeMoGymTask.nemo_gymreward method to change verification result processing [3865703]server.mainfunction module name parsing to handle modules without dots [3865703]NeMoGymStateandNeMoGymToolsetexports fromnemo_gym.__init__module [3865703]from __future__ import annotationsimports and inlined port file path construction [3865703]nemo_gym_weather_v1taskset and remove editable overlay support from eval commands [0e1a385]nemo-gymoptional dependency [0e1a385]Macroscope summarized 9cbd5c2.