Skip to content

feat(evaluator): refresh evaluator plugin skills - #1055

Open
ngoncharenko wants to merge 4 commits into
mainfrom
ngoncharenko/aalgo-550-eval-plugin-skills
Open

feat(evaluator): refresh evaluator plugin skills#1055
ngoncharenko wants to merge 4 commits into
mainfrom
ngoncharenko/aalgo-550-eval-plugin-skills

Conversation

@ngoncharenko

@ngoncharenko ngoncharenko commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Followed skill best practices: SKILL.md under 500 lines and 5,000 token, use progressive disclosure throughout
  • Refresh the evaluator skill for current dataset-driven and task-driven workflows, including submit-only platform jobs and standalone runners.
    • remove plugin's .run() from SKILLS since it's going away
  • Add concise, checked examples for exact match, LLM-as-judge, and durable Fabric agent evaluation.
  • Align evaluator plugin docs and CLI discoverability, with focused regression coverage for specs, resources, and examples.
    • skills examples are unit tested

In Progress

Summary by CodeRabbit

  • New Features

    • Added support for both dataset-driven and task-driven agent evaluations.
    • Added durable agent-evaluation job submission, status tracking, and result/artifact retrieval.
    • Added reusable evaluator resources for metrics, tasks, and tasksets.
    • Added Fabric agent-evaluation examples and specifications.
    • Added inline metric configuration for exact-match and LLM-as-judge evaluations.
  • Documentation

    • Expanded guidance for SDK, CLI, authentication, execution workflows, supported runners, troubleshooting, and result formats.
  • Tests

    • Added comprehensive validation for examples, specifications, metrics, Fabric integration, and agent-evaluation workflows.

Signed-off-by: Nick Goncharenko <ngoncharenko@nvidia.com>
Signed-off-by: Nick Goncharenko <ngoncharenko@nvidia.com>
@ngoncharenko
ngoncharenko marked this pull request as ready for review August 3, 2026 23:48
@ngoncharenko
ngoncharenko requested review from a team as code owners August 3, 2026 23:48
@ngoncharenko ngoncharenko self-assigned this Aug 3, 2026
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

settings={"sandbox": "read-only"},
),
models={"default": {"provider": "openai", "model": "gpt-5.4"}},
models={"default": ModelConfig(provider="openai", model="gpt-5.4")},

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated examples - ty marked typing issues

# Fabric builds a Rust/pyo3 extension from source.)
#
# A live codex run additionally needs the `codex` CLI + `codex login` auth.
# See plugins/nemo-evaluator/docs/design/fabric-runner-integration.md.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no such doc, so linked to skills for reference

@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR updates evaluator specifications, plugin workflows, documentation, validation tests, and Fabric integration. It distinguishes local SDK execution from durable platform jobs and adds task-driven agent-evaluation guidance.

Changes

Evaluator workflows

Layer / File(s) Summary
Specification generation and validation
skills/nemo-evaluator-plugin/scripts/generate_example_specs.py, skills/nemo-evaluator-plugin/assets/specs/*, skills/nemo-evaluator-plugin/assets/examples/*, plugins/nemo-evaluator/tests/*
Checked specifications now use inline metric bundles and cover exact-match, LLM-judge, and Fabric agent evaluation. Tests validate generation, hydration, compilation, and registered job keys.
Plugin execution surfaces
plugins/nemo-evaluator/README.md, plugins/nemo-evaluator/src/nemo_evaluator/*, skills/nemo-evaluator-plugin/references/execution.md, skills/nemo-evaluator-plugin/references/resources.md
Documentation now covers SDK execution, durable submissions, job completion, artifacts, stored resources, and agent-evaluation entry points.
Evaluation workflow guidance
skills/nemo-evaluator-plugin/SKILL.md, skills/nemo-evaluator-plugin/references/*, plugins/nemo-evaluator/tests/test_skill_examples.py
The skill and references define metric selection, execution modes, authentication, task evaluation, troubleshooting, and documentation validation.
Platform agent-evaluation documentation
docs/evaluator/index.mdx, docs/evaluator/agent-eval/index.mdx
The evaluator documentation distinguishes local AgentEvaluator runs from durable plugin jobs and documents tasksets, report bundles, and persisted metadata.
Fabric runtime and integration validation
packages/nemo_evaluator_sdk/examples/fabric_harness_runtimes.py, packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py, script/dev-install-fabric.sh
Fabric examples use typed model configurations. Installation guidance uses the package-scoped Fabric extra. Integration tests validate trajectory evidence references.

Sequence Diagram(s)

sequenceDiagram
  participant EvaluatorCLI
  participant EvaluatorSDK
  participant EvaluatorService
  participant EvaluatorJob
  participant ResultArtifacts
  EvaluatorCLI->>EvaluatorService: Submit evaluator or agent-evaluate specification
  EvaluatorSDK->>EvaluatorService: Submit evaluator job
  EvaluatorService->>EvaluatorJob: Create and run job
  EvaluatorJob->>ResultArtifacts: Persist results and artifacts
  EvaluatorCLI->>ResultArtifacts: Retrieve completed outputs
Loading

Possibly related PRs

Suggested labels: docs

Suggested reviewers: arpitsardhana, sandychapman, gabwow

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 27.78% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the primary change: refreshing evaluator plugin skills and related guidance.
✨ Finishing Touches 💡 2
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ngoncharenko/aalgo-550-eval-plugin-skills

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 10

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
plugins/nemo-evaluator/tests/test_evaluate_job.py (1)

71-74: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Cover fabric_agent_eval.json in the agent-evaluation compiler test.

test_checked_durable_fabric_job_is_a_valid_agent_eval_spec validates only AgentEvalInputSpec. The compiler test uses a separate synthetic spec. Load this fixture, convert it through AgentEvalJob.to_spec, and compile it with AgentEvalJob.compile.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/nemo-evaluator/tests/test_evaluate_job.py` around lines 71 - 74,
Update the agent-evaluation compiler test around EXAMPLE_SPEC_PATHS and
test_checked_durable_fabric_job_is_a_valid_agent_eval_spec to include the
fabric_agent_eval.json fixture. Load that fixture, convert it with
AgentEvalJob.to_spec, and compile the resulting spec using AgentEvalJob.compile
instead of relying on the separate synthetic spec.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/evaluator/agent-eval/index.mdx`:
- Line 16: Hyphenate the compound modifier as “platform-durable” in both
execution-mode notes: update docs/evaluator/agent-eval/index.mdx lines 16-16 to
“Local and platform-durable interfaces are available.” and
docs/evaluator/index.mdx lines 123-123 to “Agent evaluation has local and
platform-durable interfaces.”
- Around line 17-18: Update the local SDK usage note in
docs/evaluator/agent-eval/index.mdx at lines 17-18 to document await
AgentEvaluator().run(tasks=..., target=...). Apply the same await addition to
the corresponding note in docs/evaluator/index.mdx at lines 124-125; no other
changes are needed.

In `@packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py`:
- Around line 248-254: Update the requires_live_fabric skip reason to reference
the documented installation command, adding --frozen and --inexact to the
existing uv sync invocation while preserving the rest of the guidance.

In `@plugins/nemo-evaluator/README.md`:
- Around line 74-100: Correct the “Plugin SDK Execution” documentation around
the NeMoPlatform evaluator calls: either add a separate
client.evaluator.run(...) example demonstrating local execution, or revise the
heading and description to state that client.evaluator.submit(...) is durable
execution only.

In `@script/dev-install-fabric.sh`:
- Around line 20-21: Update the comment around the package-scoped command to say
it restores the locked project dependencies rather than returning the
environment to a locked state, and mention using an exact sync when a clean
environment is required.

In `@skills/nemo-evaluator-plugin/references/agent-evaluation.md`:
- Line 8: Update the sentence introducing AgentEvaluator to use correct grammar,
stating that it provides lightweight in-process evaluation without requiring a
running nemo-platform.

In `@skills/nemo-evaluator-plugin/references/execution.md`:
- Line 11: Add the required blank lines around the headings at lines 11, 63, and
196, and before and after the fenced code blocks at lines 69, 77, 89, 130, 137,
141, 158, and 170 in the markdown document, without changing its content.

In `@skills/nemo-evaluator-plugin/references/metric-selection.md`:
- Around line 31-36: Update the metric discovery commands in
skills/nemo-evaluator-plugin/references/metric-selection.md:31-36 to prefix both
nemo invocations with uv run, ensuring repository checkouts use the project CLI.
Apply the same execution-context fix to the secret commands in
skills/nemo-evaluator-plugin/references/api-auth.md:15-28 by prefixing them with
uv run, or explicitly labeling them as installed-platform commands.

In `@skills/nemo-evaluator-plugin/references/resources.md`:
- Around line 21-56: Update the snippet before its first client.evaluator usage
to either initialize client with NeMoPlatform or explicitly state that an
existing client is required; ensure the resulting example is self-contained and
runnable.

In `@skills/nemo-evaluator-plugin/SKILL.md`:
- Around line 38-53: Update the “CLI Interface” prerequisites in SKILL.md to
require setting NMP_BASE_URL to http://localhost:8080, checking whether the
local platform instance is already running, and verifying
$NMP_BASE_URL/health/ready before any CLI commands. Instruct users to stop and
follow SETUP.md if the readiness check fails.

---

Outside diff comments:
In `@plugins/nemo-evaluator/tests/test_evaluate_job.py`:
- Around line 71-74: Update the agent-evaluation compiler test around
EXAMPLE_SPEC_PATHS and
test_checked_durable_fabric_job_is_a_valid_agent_eval_spec to include the
fabric_agent_eval.json fixture. Load that fixture, convert it with
AgentEvalJob.to_spec, and compile the resulting spec using AgentEvalJob.compile
instead of relying on the separate synthetic spec.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 5e46cf47-c6af-43ee-b959-4333635877ad

📥 Commits

Reviewing files that changed from the base of the PR and between 79ca283 and 1742e09.

📒 Files selected for processing (25)
  • docs/evaluator/agent-eval/index.mdx
  • docs/evaluator/index.mdx
  • packages/nemo_evaluator_sdk/examples/fabric_harness_runtimes.py
  • packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py
  • plugins/nemo-evaluator/README.md
  • plugins/nemo-evaluator/src/nemo_evaluator/cli.py
  • plugins/nemo-evaluator/src/nemo_evaluator/docs/index.md
  • plugins/nemo-evaluator/tests/test_evaluate_job.py
  • plugins/nemo-evaluator/tests/test_skill_examples.py
  • script/dev-install-fabric.sh
  • skills/nemo-evaluator-plugin/SKILL.md
  • skills/nemo-evaluator-plugin/assets/examples/plugin_sdk_examples.py
  • skills/nemo-evaluator-plugin/assets/specs/exact_match_benchmark.json
  • skills/nemo-evaluator-plugin/assets/specs/exact_match_metric.json
  • skills/nemo-evaluator-plugin/assets/specs/fabric_agent_eval.json
  • skills/nemo-evaluator-plugin/assets/specs/llm_as_judge.json
  • skills/nemo-evaluator-plugin/references/agent-evaluation.md
  • skills/nemo-evaluator-plugin/references/api-auth.md
  • skills/nemo-evaluator-plugin/references/evaluation-shapes.md
  • skills/nemo-evaluator-plugin/references/execution.md
  • skills/nemo-evaluator-plugin/references/llm-judge.md
  • skills/nemo-evaluator-plugin/references/metric-selection.md
  • skills/nemo-evaluator-plugin/references/resources.md
  • skills/nemo-evaluator-plugin/references/troubleshooting.md
  • skills/nemo-evaluator-plugin/scripts/generate_example_specs.py
💤 Files with no reviewable changes (1)
  • skills/nemo-evaluator-plugin/assets/specs/exact_match_benchmark.json

Comment thread docs/evaluator/agent-eval/index.mdx Outdated
Comment thread docs/evaluator/agent-eval/index.mdx Outdated
Comment thread packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py Outdated
Comment thread plugins/nemo-evaluator/README.md Outdated
Comment thread script/dev-install-fabric.sh Outdated
Comment thread skills/nemo-evaluator-plugin/references/agent-evaluation.md Outdated
Comment thread skills/nemo-evaluator-plugin/references/execution.md
Comment thread skills/nemo-evaluator-plugin/references/metric-selection.md
Comment thread skills/nemo-evaluator-plugin/references/resources.md
Comment thread skills/nemo-evaluator-plugin/SKILL.md
@ngoncharenko ngoncharenko changed the title AALGO-550: refresh evaluator plugin skills feat(evaluator): refresh evaluator plugin skills Aug 4, 2026
@github-actions github-actions Bot added the feat label Aug 4, 2026
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 30257/38273 79.1% 63.7%
Integration Tests 17899/36942 48.4% 20.9%

Signed-off-by: Nick Goncharenko <ngoncharenko@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
skills/nemo-evaluator-plugin/references/troubleshooting.md (1)

3-4: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add prerequisites before the first command.

Add a Prerequisites section before Inspect the installed contracts. State that the nemo evaluator CLI must be available and that repository checkouts must run commands through uv run.

As per coding guidelines, documentation pages must list prerequisites at the top.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@skills/nemo-evaluator-plugin/references/troubleshooting.md` around lines 3 -
4, Add a Prerequisites section at the top of the troubleshooting document,
before “Inspect the installed contracts,” stating that the nemo evaluator CLI
must be available and that repository checkouts must invoke commands through uv
run. Preserve the existing command instructions and CLI wording.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@skills/nemo-evaluator-plugin/references/troubleshooting.md`:
- Around line 3-4: Add a Prerequisites section at the top of the troubleshooting
document, before “Inspect the installed contracts,” stating that the nemo
evaluator CLI must be available and that repository checkouts must invoke
commands through uv run. Preserve the existing command instructions and CLI
wording.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: d0e6398e-b4c8-45c8-a412-fc81c9c5a842

📥 Commits

Reviewing files that changed from the base of the PR and between 1742e09 and 8b67ab1.

📒 Files selected for processing (15)
  • .cursor/hooks/state/continual-learning.json
  • docs/evaluator/agent-eval/index.mdx
  • docs/evaluator/index.mdx
  • packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py
  • plugins/nemo-evaluator/README.md
  • plugins/nemo-evaluator/tests/test_agent_evaluate.py
  • plugins/nemo-evaluator/tests/test_evaluate_job.py
  • plugins/nemo-evaluator/tests/test_skill_examples.py
  • script/dev-install-fabric.sh
  • skills/nemo-evaluator-plugin/SKILL.md
  • skills/nemo-evaluator-plugin/references/agent-evaluation.md
  • skills/nemo-evaluator-plugin/references/execution.md
  • skills/nemo-evaluator-plugin/references/metric-selection.md
  • skills/nemo-evaluator-plugin/references/resources.md
  • skills/nemo-evaluator-plugin/references/troubleshooting.md
🚧 Files skipped from review as they are similar to previous changes (12)
  • docs/evaluator/agent-eval/index.mdx
  • script/dev-install-fabric.sh
  • skills/nemo-evaluator-plugin/references/metric-selection.md
  • skills/nemo-evaluator-plugin/references/resources.md
  • plugins/nemo-evaluator/tests/test_skill_examples.py
  • packages/nemo_evaluator_sdk/tests/agent_eval/test_fabric_integration.py
  • skills/nemo-evaluator-plugin/references/agent-evaluation.md
  • plugins/nemo-evaluator/README.md
  • plugins/nemo-evaluator/tests/test_evaluate_job.py
  • skills/nemo-evaluator-plugin/SKILL.md
  • docs/evaluator/index.mdx
  • skills/nemo-evaluator-plugin/references/execution.md

Signed-off-by: Nick Goncharenko <ngoncharenko@nvidia.com>
@ngoncharenko

Copy link
Copy Markdown
Contributor Author

/nvskills-ci

@SandyChapman

Copy link
Copy Markdown
Contributor

/nvskills-ci

Comment on lines +4 to +5
command group is `nemo evaluator`; the legacy generated `nemo evaluation`
surface is not used for new workflows.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the legacy generated nemo evaluation surface is not used for new workflows.
Not sure we need to call this out.

Comment on lines +99 to +105
Durable target variants are:

## Python Examples
- `ModelTarget`
- `AgentTarget`
- `CodexRunnerTarget`
- `FabricRunnerTarget`
- `HarborRunnerTarget`

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although I think this is how this works, I think we need to revisit our local->remote execution APIs again. I don't think it was good that we didn't follow the dataset-based evals and allow injecting a Backend to the AgentEvaluator instance.

Something I'd like to discuss this week.

Comment on lines +132 to +133
### SDK Execution
Plugin SDK execution is not supported for task-driven evaluation. Use the standalone Python SDK instead, which is available for local execution.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to address this gap tbh. This shouldn't be true and we need a way to take our "locally defined agent eval" and port it to the backend.

@@ -1,93 +1,156 @@
# Evaluator Plugin Reference

The evaluator plugin is a first-party for evaluator functionality. It keeps the plugin identity separate from the legacy `/apis/evaluation` service while proving the basic surfaces needed for SDK-backed jobs.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we remove this doc? What's the purpose of this doc compared to README.md and SKILL.md? We keep repeating api walkthrough in 3 places

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants