Files
Chad Voegele 28dc117594 Add Day 0 Sub-agent Roles (#2006)
### What does this PR do?

Type of change: new feature

Adding sub-agent definition for Day 0 workflows.

I'm adding subagents as an alternative, while we evaluate which is
better. They are duplicated because Claude & Codex have different
formats & different locations. Deriving from a shared vendor-neutral
format at build-time is too complicated.

### Usage

Tell your agent "Use the modelopt_model_quantizer agent to quantize the
model"

### Testing

Ran a trial using Qwen-2.5, Muse Glimmer, Qwen-2.8, and GLM-5.3-Flash.

### Before your PR is "*Ready for review*"

Make sure you read and follow [Contributor
guidelines](https://github.com/NVIDIA/Model-Optimizer/blob/main/CONTRIBUTING.md)
and your commits are signed (`git commit -s -S`).

Make sure you read and follow the [Security Best
Practices](https://github.com/NVIDIA/Model-Optimizer/blob/main/SECURITY.md#security-coding-practices-for-contributors)
(e.g. avoiding hardcoded `trust_remote_code=True`, `torch.load(...,
weights_only=False)`, `pickle`, etc.).

- Is this change backward compatible?: ✅
- If you copied code from any other sources or added a new PIP
dependency, did you follow guidance in `CONTRIBUTING.md`: ✅
- Did you write any new necessary tests?: ✅
- Did you update
[Changelog](https://github.com/NVIDIA/Model-Optimizer/blob/main/CHANGELOG.rst)?:
✅ / ❌ / N/A <!--- Only for new features, API changes, critical bug fixes
or backward incompatible changes. -->
- Did you get Claude approval on this PR?: ✅ / ❌ / N/A <!--- Run
`/claude review`. NVIDIA org members can self-trigger for complex
changes; orthogonal to CodeRabbit. -->

### Additional Information
See design doc.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## New Features
- Added specialized Model Optimizer agents for downloading,
quantization, recipe search, evaluation, deployment, and performance
benchmarking.
- Added coordinated Codex and Claude Code access with validation
requirements, artifact preservation, and concise handoffs.
- Improved skill discovery across plugin and repository installations.

## Documentation
- Clarified agent discovery, layout, and canonical editing locations.
- Updated configuration guidance for supported agent definitions.

## Tests
- Added synchronization checks for agent definitions and links.
- Improved test compatibility for Python versions below 3.11.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Chad Voegele <cvoegele@nvidia.com>
2026-09-10 17:30:37 +00:00
..
2026-09-10 17:30:37 +00:00

.agents/ — agent compatibility and shared config

This directory exposes the ModelOpt plugin skills to repository-local agents and holds shared configuration.

Layout

.agents/
├── skills → ../plugins/modelopt/skills
├── plugins/
│   └── marketplace.json   # Codex marketplace
├── scripts/                # shared helper scripts (sync-upstream-skills.sh, …)
└── clusters.yaml.example   # remote-cluster config template

.codex/
└── agents/                 # Codex project role definitions

plugins/modelopt/
├── .claude-plugin/
├── .codex-plugin/
├── agents/                 # Claude Code subagent definitions
└── skills/                 # canonical SKILL.md files
    ├── common/             # shared skill support files
    └── <skill-name>/SKILL.md

How each agent finds these

Each agent points at .agents/ through whatever mechanism it supports — never a copy:

  • Claude Code only auto-discovers skills under .claude/skills/, so .claude/skills/ holds relative symlinks into .agents/skills/.
  • Repository agents use .agents/skills, a relative symlink into the plugin.
  • Claude Code and Codex plugins load plugins/modelopt/skills directly.
  • Claude Code loads subagents from plugins/modelopt/agents/ through the plugin, while .claude/agents/*.md symlinks expose them to repository users.
  • Codex discovers project roles directly under .codex/agents/. Codex plugins cannot currently install custom roles.

Editing rules

  • Always edit skills under plugins/modelopt/skills/.
  • Claude Code subagents belong in plugins/modelopt/agents/, not .claude/agents/.
  • Codex custom roles belong in .codex/agents/.
  • Vendored-verbatim skills (launching-evals, accessing-mlflow) are managed by .agents/scripts/sync-upstream-skills.sh — do not modify by hand.
  • New skills go in plugins/modelopt/skills/<skill-name>/SKILL.md.
  • Shared support files go in plugins/modelopt/skills/common/.

Project-level cluster config

The remote-execution skills look for a clusters.yaml at, in order:

  1. ~/.config/modelopt/clusters.yaml (user-level, recommended)
  2. <repo-root>/.agents/clusters.yaml (project-level, canonical)
  3. <repo-root>/.claude/clusters.yaml (project-level, back-compat)

See clusters.yaml.example for the schema.