agentleFS
NVIDIA-NeMoNVIDIA-NeMo/nemo-helix/skills/nemo-evals-plugin/SKILL.md

nemo-evals-plugin

Skill138 starsChanged 20 days agoApache-2.0View on GitHub

Evaluate models, datasets, and agents with the NeMo Helix Evals plugin. Use for metric selection, SDK checks, platform jobs, result retrieval, and Harbor taskset runs on Kubernetes (`nemo evals runs`).

  • Reads credentials

The file

Show its rules and text

We split this skill into the rules it gives an agent

21 rules. About 0 are common, 11 are distinctive, and 10 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈11

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  • could be automatic: a setting could enforce it
  1. Distinctive:

    Use this skill to choose an evaluation interface and metric, validate a minimal example, submit a NeMo Helix evaluation job, and retrieve …

    line 21
  2. Very specific:

    If the user wants the full embed/rerank fine-tune recipe, hand off to nemo-retrieval-recipes and use this skill only to run and debug …

    line 39
  3. Distinctive:

    Read Metric Selection before choosing a metric for a rubric, RAG workflow, or tool-calling evaluation.

    line 49
  4. Very specific:

    Default to the plugin-specific job commands for durable platform evaluation: nemo evals evaluate, nemo evals agent-evaluate, and nemo evals …

    line 64
  5. Distinctive:

    Read SDK Execution for datasets, targets, configuration, field mapping, job lifecycle, and custom metric packaging.

    line 72
  6. Distinctive:

    Read Stored Resources for persisted definitions and result queries.

    line 74
  7. Very specific:

    Always call job.wait_until_done() before retrieving results or downloading artifacts.

    line 88
  8. Very specific:

    All commands in this file assume that the shell's working directory is the root of the NVIDIA-NeMo/nemo-helix repository.

    line 95
  9. Very specific:

    When the skill and plugin are installed, use the installed nemo command without assuming a repository root or manually activating .venv.

    line 112
  10. Very specific:

    Do not assume a client-specific run_script() helper.

    line 142
  11. Distinctive:

    Follow Validate standalone, then submit to the platform.

    line 149
  12. Very specific:

    Follow Map noncanonical fields when dataset columns need field_mapping.

    line 151
  13. Distinctive:

    Follow Getting job results for submission, terminal waiting, result retrieval, and artifact download.

    line 153
  14. Distinctive:

    Follow Store a metric, task, and taskset for reusable definitions, and Query persisted results for result lookup.

    line 155
  15. Very specific:

    Use AgentEvaluator().run(...) for standalone task-driven SDK evaluation.

    line 163
  16. Very specific:

    Use the plugin agent-evaluate job for platform task evaluation.

    line 168
  17. Very specific:

    Read Agent Evaluation for inline tasks, TasksetRef, concurrency, fail-fast behavior, sparse-output denominators, result artifacts, and …

    line 199
  18. Distinctive:

    Read Evaluator API Auth before using a model, agent, remote metric, or durable submission.

    line 234
  19. Distinctive:

    Read LLM Judge before writing judge scores, prompts, or parsers.

    line 236
  20. Distinctive:

    Read Evaluator troubleshooting when schema, authentication, job, result, or runner behavior fails.

    line 241
  21. Distinctive:

    Never print, serialize, or commit secret values.

    line 246

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Evals Plugin

The Plugin CLI entrypoint is uv run nemo evals.

Purpose

Use this skill to choose an evaluation interface and metric, validate a minimal example, submit a NeMo Helix evaluation job, and retrieve its results.

Inputs

Establish these inputs before building an evaluation:

  • Evaluation interface: dataset-driven, task-driven, or retrieval-driven evaluation
  • Execution interface: standalone SDK evaluation or a durable NeMo Helix job.
  • Pass/fail dataset examples: the smallest representative pass and failure cases.
  • Metrics: the behaviors to score and the template fields they consume.
  • Target: no target for offline scoring, or the model, agent, runner, or precomputed trials that produce outputs.

Instructions

  1. Clarify whether the input is dataset-driven rows, task-driven agent work, or a BEIR retrieval corpus. If the user wants the full embed/rerank fine-tune recipe, hand off to nemo-retrieval-recipes and use this skill only to run and debug retrieve-eval.
  2. Choose the simplest metric that measures the requested behavior. Prefer deterministic metrics when possible.
  3. Build a tiny smoke case with one expected pass and one expected failure. For a Kubernetes taskset run, the oracle run in Harbor on Kubernetes is the smoke case.
  4. Validate metric behavior with the standalone SDK. Inspect row-level output, aggregate count and nan_count, and coverage before interpreting a mean.
  5. Fix field mappings, prompts, parsers, or task definitions before scaling.
  6. Submit the platform job only after the input and scoring shape works.

Read Metric Selection before choosing a metric for a rubric, RAG workflow, or tool-calling evaluation.

Choose the execution interface

NeedInterface
Fast metric iteration without NeMo Helixnhx_evals_sdk.Evaluator
Dataset-driven platform jobevaluator.submit(...) or nemo evals evaluate
Multiple inline/stored metric refs in one jobnemo evals evaluate with an EvaluateInputSpec
Task-driven platform jobevaluator.submit(tasks=..., target=<runner>) or nemo evals agent-evaluate
Retrieval-driven platform jobnemo evals retrieve-eval
Harbor task suite on a Kubernetes deployment: one Job and OpenSandbox sandbox per tasknemo evals runs submit; read Harbor on Kubernetes
Reusable platform definitions and result indexesevaluator.metrics, .tasks, .tasksets, .eval_results, .agent_eval_results

Default to the plugin-specific job commands for durable platform evaluation: nemo evals evaluate, nemo evals agent-evaluate, and nemo evals retrieve-eval. The old nemo evals ... run and nemo evals ... submit CLI verbs are not part of the supported evaluator job surface. The one exception is nemo evals runs submit, the supported path for Harbor taskset runs on Kubernetes. For fast metric iteration without the platform, use the standalone nhx_evals_sdk.Evaluator instead.

  • Read SDK Execution for datasets, targets, configuration, field mapping, job lifecycle, and custom metric packaging.
  • Read Stored Resources for persisted definitions and result queries.

Limitations

  • api_key_secret is an environment-variable name standalone but a NeMo Platform secret name on submit. See API Auth.
  • HTTP 409 from a submission often means a referenced platform secret is missing, not a duplicate job. Read the response body.
  • intent is grader metadata and is never shown to the agent; only inputs reaches it.
  • Metric templates use item.* for dataset rows but reference.*, sample.*, and inputs.* in agent evaluation.
  • Metric progress can reach 100 percent before the platform job is terminal. Always call job.wait_until_done() before retrieving results or downloading artifacts.

CLI Interface

Prerequisites

All commands in this file assume that the shell's working directory is the root of the NVIDIA-NeMo/nemo-helix repository.

In a NeMo Helix repository checkout, run commands through the workspace:

# confirms plugin readiness and lists the registered evaluator jobs.
uv run nemo evals info
# lists available metric names; add a metric name to print its schema.
uv run nemo evals metric-types
# next three commands print the dataset-driven, task-driven, and retrieval job input and
# output schemas - can be very large, use with caution to avoid filling up the context window.
uv run nemo evals evaluate explain
uv run nemo evals agent-evaluate explain
uv run nemo evals retrieve-eval explain

When the skill and plugin are installed, use the installed nemo command without assuming a repository root or manually activating .venv.

Resolve bundled assets relative to this skill directory. In this repository the canonical path is skills/nemo-evals-plugin; an installed skill may live under a different skills root.

Bundled assets

PathUse
assets/specs/exact_match_metric.jsonTwo-row offline smoke spec; submit as-is
assets/specs/llm_as_judge.jsonOnline generation + judge; local-first (NVIDIA_API_KEY)
assets/specs/fabric_agent_eval.jsonTask-driven Fabric runner spec
assets/specs/gym_agent_eval.jsonTask-driven sandboxed Gym FileSet spec
assets/specs/harbor_taskset_run_openhands.jsonnemo evals runs submit --spec-file request: openhands on a gateway model
assets/examples/plugin_sdk_examples.pyCopyable SDK snippets for each plugin surface

Available Scripts

ScriptPurposeArguments
scripts/generate_example_specs.pyGenerate or drift-check bundled specs--check, --write

In this repository, NeMo uses the displayed workspace command:

uv run --frozen python skills/nemo-evals-plugin/scripts/generate_example_specs.py --check

Do not assume a client-specific run_script() helper; use the displayed uv run command.

Examples

Dataset-driven evaluation examples

  • Follow Validate standalone, then submit to the platform. for the two-row pass/fail smoke test and its CLI submission.
  • Follow Map noncanonical fields when dataset columns need field_mapping.
  • Follow Getting job results for submission, terminal waiting, result retrieval, and artifact download.
  • Follow Store a metric, task, and taskset for reusable definitions, and Query persisted results for result lookup.

Task-driven agent evaluation examples

Standalone SDK evaluation

Use AgentEvaluator().run(...) for standalone task-driven SDK evaluation. Its target can be a Model, a GenericAgent, or a direct AgentTaskRunner.

Platform job evaluation

Use the plugin agent-evaluate job for platform task evaluation. Its target is a ModelTarget, AgentTarget, FabricRunnerTarget, HarborRunnerTarget, or GymRunnerTarget; alternatively provide precomputed trials. Provide exactly one of target or trials.

A FabricRunnerTarget's source is an inline config ({"kind": "fabric", "source": {"config": {...}}}) or a registered agent (nemo agents register): {"kind": "fabric", "source": {"agent": "<name>"}}. A HarborRunnerTarget's source takes the same registered-agent shape ({"kind": "harbor", "source": {"agent": "<name>"}}) to run it inside each task container, next to a built-in agent ({"name": "oracle"}) or your own ({"import_path": "pkg:Agent"}). A GymRunnerTarget's source takes it too ({"kind": "gym", "source": {"agent": "<name>"}, "resources_server": "<name>"}), running it on the sandboxed Gym host with its default model on Gym's policy server; the job stages a wheels-v1 package with the harness, so sandboxed execution is required. At submit time the service resolves the agent exactly as a deployment would — models bound to the workspace Inference Gateway, no credentials in the spec — and runs it fresh for every trial; it never calls an existing deployment. An optional environment (the same spec nemo agents deploy takes) redirects the agent's declared MCP servers to mocks, adds process env, and binds secrets by reference. Only nemo-agents-spec-v1 agents resolve; a different model is a different agent, so there is no model override.

Submission accepts inline tasks or a stored TasksetRef. Stored tasksets are resolved in the target workspace.

Kubernetes taskset run

To run a Harbor task suite on a Kubernetes deployment, use nemo evals runs submit, not an agent-evaluate job. Read Harbor on Kubernetes for the oracle smoke run, openhands with a model (closed-book opt-in), Experiments, results and retries.

Read Agent Evaluation for inline tasks, TasksetRef, concurrency, fail-fast behavior, sparse-output denominators, result artifacts, and runner configuration, including Gym FileSet and sandbox requirements.

Prepare Fabric in a repository checkout

Fabric runner examples and tests need the optional harness adapters and the matching Relay gateway:

uv sync --frozen --package nhx-evals-sdk --extra fabric --inexact
script/dev-install-fabric.sh

The install script downloads the checksum-verified nemo-relay binary that matches the locked Python bindings. Add its reported directory to PATH, then use uv run --frozen --no-sync ... for Fabric checks so uv does not remove the optional adapters.

Output Format

Report a completed platform evaluation in this form:

Job: <job-name>
Status: <terminal-status>
Metrics: <metric-names>
Mean: <aggregate-mean>
Artifacts: <downloaded result or artifact location>
Errors: <error messages>

Read specialized references

  • Read Evaluator API Auth before using a model, agent, remote metric, or durable submission.
  • Read LLM Judge before writing judge scores, prompts, or parsers.

Troubleshooting

Read Evaluator troubleshooting when schema, authentication, job, result, or runner behavior fails.

Follow security best practices

Never print, serialize, or commit secret values. Store only environment-variable names or platform secret references in specs and examples.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.