用途:为 NeMo-Gym 添加新的 benchmark 或训练环境,适用于用户要求新增、创建或集成 benchmark、评估、训练环境时。
主要能力:先判定集成类型。原生基准在 Gym resources server 中直接实现 verify() 奖励逻辑,由 agent server 编排模型调用(单轮用 simple_agent,多轮用自定义 agent),如 code_gen、instruction_following、math_with_judge。外部基准在 agent server 层包装第三方库,其 /run 端点负责预处理为库输入、后处理回 BaseVerifyResponse,并需先在原仓库复现公开数字,再在 Gym 集成后复现。
使用方式:用 gym env init --resources-server my_benchmark 生成目录结构;将源数据转为 Gym JSONL(每行含 responses_create_params.input,验证数据放 verifier_metadata),生成 5 条 example.jsonl 提交 git,train/validation 用 gym dataset upload 上传 GitLab 数据集仓库;用 gym dataset collate 校验数据;在 app.py 实现 verify(),奖励为 0.0/1.0,需优雅处理空输出、支持 4k-65k 并发、用 asyncio.Semaphore 控制子进程、剥离 think 块;配置 YAML 并关联 agent 与数据集;用 gym env test 与 pytest 测试,覆盖率需 ≥95%;用 gym env start 与 gym eval run 做端到端冒烟;用 gym eval profile 与脚本做基线,num_repeats 直到同模型方差 <1%;最后 pre-commit run --all-files 并提交 PR,基线成功后设 verified: true。
限制:须用 NeMo Gym 的 OpenAI 客户端而非 LiteLLM/Anthropic;异步 HTTP 用 aiohttp 并经 nemo_gym.server_utils.request(),不用 httpx;配置走 YAML 而非环境变量;代码须在 Linux 运行;/run 必须异步;工具或模型错误须返回错误响应而非崩溃;提交需 DCO 签名与加密签名。详细代码模式见 references/patterns.md。