NVIDIA-NeMo / NVIDIA-NeMo/nemo-platform
Evaluator: expose Fileset-backed skills on Fabric Agent Eval targets
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 78
- Forks
- 23
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 578
Description
Problem
The Agent Eval SDK already supports injecting one or more agentskills.io bundles into FabricAgentRuntime, including harness routing and per-trial skill provenance. However, the Platform Agent Eval job API cannot use that capability:
FabricRunnerTargethas no skill input.- A remotely scheduled job cannot reference a caller-local skill directory.
- Platform Filesets can store the bundle, but Evaluator does not materialize that Fileset into the job runtime.
As a result, SDK-level Fabric Skill Eval works locally, while the same evaluation cannot be expressed through the supported Platform agent-evaluate API.
Proposed behavior
Allow a Fabric target to reference one or more Skill bundles stored in Platform Filesets:
target:
kind: fabric
config: ...
skills:
- name: lta-analysis
fileset: default/lta-analysis-skill
path: skills/lta-analysis
For each configured Skill, the Evaluator job should:
- Resolve the Fileset in the job workspace, or an explicitly supplied workspace.
- Download it into job-local ephemeral storage.
- Resolve and validate a relative bundle path containing
SKILL.md. - Construct the SDK
AgentSkilland pass it toFabricAgentRuntime. - Rely on the existing SDK runtime for harness-specific staging, content hashing, and trial provenance.
Requirements
- Preserve existing Fabric target behavior when
skillsis omitted. - Support multiple Skills with unique
agentskills.ionames. - Reject absolute paths, parent traversal, Windows separators, and post-resolution escapes.
- Reject a selected directory that does not contain
SKILL.md. - Expose the contract in the generated OpenAPI schema.
- Forward the Platform SDK and caller identity used by the job so Files access follows normal authorization.
- Preserve the SDK's Skill name, content hash, adapter, injection mode, and staged location in trial provenance.
- Document the API shape and remote Fileset requirement.
Non-goals
- A first-class Platform Skill catalog or Skill entity.
- Automatic baseline/treated A/B scheduling.
- Native Fabric repeat/attempt semantics.
- Changes to the default CPU task image or Fabric/Relay packaging.
- TestCrew-specific Agent-to-Skill mapping.
Acceptance criteria
- A Platform Agent Eval job accepts a Fabric target with a Fileset-backed Skill.
- The job downloads the Fileset and injects the selected bundle into
FabricAgentRuntime. - Missing Platform SDK access, missing
SKILL.md, unsafe paths, and duplicate Skill names fail clearly. - Existing Fabric jobs without Skills remain backward compatible.
- Unit coverage validates materialization and input validation.
- A live Fabric/Codex job can read the staged Skill and records its provenance in the persisted trial.
Validation evidence
This path has been exercised in a Dev Astra deployment with a real Fabric/Codex Agent Eval job. The agent read a marker Skill from a Platform Fileset, returned the required marker, received exact-match 1.0, and persisted Skill content-hash provenance plus Relay ATIF/ATOF artifacts.
Related SDK foundations: #625, #816, #841, and #844.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the FabricRunnerTarget configuration and the Platform agent-evaluate API contract, then trace how generated OpenAPI schema input reaches FabricAgentRuntime. Review the Fileset materialization and path-validation entry points, plus the unit coverage described in the acceptance criteria. Done means valid remote Filesets inject one or more Skills with provenance, invalid inputs fail clearly, and existing targets without skills still work.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- openapi, python
- Domain
- backend-api-design, cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100