feat(nemo-agents): update skills to use Fabric backed agents as preferred and NAT as legacy - #1044
Conversation
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdds Platform-owned ChangesPlatform agent workflows
Sequence Diagram(s)sequenceDiagram
participant User
participant nemo-skill-selection
participant nemo-agent-config
participant NeMo Platform
User->>nemo-skill-selection: Request agent configuration or deployment
nemo-skill-selection->>nemo-agent-config: Route configuration work
nemo-agent-config->>NeMo Platform: Validate or deploy agent.yaml
NeMo Platform-->>User: Return configuration or deployment status
Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/SKILL.md (1)
7-7: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winNamespace the
write AGENTSpectrigger.SkillSpector reports that this trigger shadows the built-in
writecommand. A normal write request can route tonemo-specinstead of the built-in command. Rename the trigger so it has a uniquenemo-specnamespace, then rerun the routing tests.🤖 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 `@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/SKILL.md` at line 7, Rename the “write AGENTSpec” trigger in the nemo-spec skill definition to a uniquely namespaced nemo-spec trigger so it no longer shadows the built-in write command, then rerun the routing tests to verify normal write requests still use the built-in command.Source: Linters/SAST tools
🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.md`:
- Around line 219-225: Update the local persistent server command in the agent
configuration documentation to use 127.0.0.1 instead of 0.0.0.0 by default, and
indicate that external exposure requires explicit user intent.
- Around line 180-206: Update the registration and deployment instructions
around the Platform create path and Deploy and invoke section to require
explicit user confirmation immediately before running each state-changing
command: agents create and agents deploy. Keep validation and invocation
guidance unchanged, and do not require confirmation for the non-state-changing
wait or invoke commands.
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.md`:
- Around line 159-169: Update the workflow around steps 3–4 to always select an
evaluation purpose and generate a validated evaluation fileset before evaluation
proceeds. Ensure agents/$AGENT_NAME.eval-job.json is created with the actual
model and generated dataset reference, and require its validation before
invoking benchmark-jobs create.
- Around line 63-64: Update the existing-resource lifecycle instructions in
SKILL.md before the create/deploy steps: remove the unsupported “update” and
“recreate and redeploy” paths, define explicit reuse and replacement branches,
and require confirmation before running the agents undeploy and delete commands.
Document the exact commands, restrict --yes to confirmed replacements, and
require verifying resources are absent before recreating and deploying them.
- Around line 42-60: Update the nemo-build-agent workflow to select the NAT
configuration path before pre-flight, defining AGENT_NAME and DEPLOYMENT_NAME
for NAT-only runs so AGENT-SPEC.md and spec-fileset checks do not block them.
Add executable nemo agents create and nemo agents deploy steps that pass the NAT
workflow YAML through --agent-config, and update all smoke-test commands to
reference DEPLOYMENT_NAME.
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md`:
- Line 114: Update the “Config validation error” routing entry in SKILL.md to
direct local YAML configuration fixes and migrations to nemo-agent-config, while
preserving validation-detail surfacing. Reserve nemo-build-agent routing only
for cases where redeployment is explicitly requested.
- Around line 86-88: Update the ordered list in the skill instructions around
the fenced command so its items use the configured numbering prefixes instead of
resuming at 4. and 5.; preserve the existing guidance text and ordering while
satisfying markdownlint MD029.
---
Outside diff comments:
In `@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/SKILL.md`:
- Line 7: Rename the “write AGENTSpec” trigger in the nemo-spec skill definition
to a uniquely namespaced nemo-spec trigger so it no longer shadows the built-in
write command, then rerun the routing tests to verify normal write requests
still use the built-in command.
🪄 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: 9155d763-64e8-47a5-b199-8ee1e943f7af
⛔ Files ignored due to path filters (9)
sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/references/templates/agent.yamlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-explore/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-skill-selection/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-spec/references/templates/agent-spec.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**
📒 Files selected for processing (17)
packages/nemo_platform_ext/pyproject.tomlpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/references/templates/agent.yamlpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-explore/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-explore/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-model-selection/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-model-selection/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-skill-selection/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/references/templates/agent-spec.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-spec/tests.jsonpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/tests.json
|
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.md (1)
204-213: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winWait for
$AGENT_NAME-deploymentexplicitly.--agent "$AGENT_NAME"selects the last matching active deployment, which can differ from the deployment that the next command invokes. Usedeployments wait "$AGENT_NAME-deployment".🤖 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 `@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.md` around lines 204 - 213, Update the deployment wait command in the post-deployment instructions to target the explicit "$AGENT_NAME-deployment" deployment identifier, matching the deployment passed to the subsequent agents invoke command, instead of using the --agent "$AGENT_NAME" selector.
🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.md`:
- Around line 166-167: Update the Platform and NAT lifecycle instructions around
the agent registration and deployment commands to prompt for confirmation
immediately before each state-changing agents create and agents deploy
operation. Ensure both paths follow the nemo-agent-config requirement, rather
than relying on the later post-deployment prompt, while preserving the existing
selected lifecycle branching.
- Around line 220-238: Update the numbered workflow before Step 3 to explicitly
branch for unchanged NAT-only runs lacking AGENT-SPEC.md: after smoke testing,
stop without executing Steps 3–5 or requiring an evaluation fileset. Continue
into the existing spec-driven purpose selection and data-designer flow only when
the user requests it and AGENT-SPEC.md exists.
---
Outside diff comments:
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.md`:
- Around line 204-213: Update the deployment wait command in the post-deployment
instructions to target the explicit "$AGENT_NAME-deployment" deployment
identifier, matching the deployment passed to the subsequent agents invoke
command, instead of using the --agent "$AGENT_NAME" selector.
🪄 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: c6d6fae0-7bdc-40ab-a1a7-5af5dea281b1
⛔ Files ignored due to path filters (3)
sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**
📒 Files selected for processing (3)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.md`:
- Around line 100-112: Resolve the unsupported telemetry.atof mapping in the NAT
codex_agent migration guidance: either add telemetry.atof consistently to the
canonical telemetry schema and template, or remove it from the
relay_atof_output_dir mapping and explicitly mark ATOF behavior for manual
migration. Keep the documented rejection of unsupported fields aligned with the
chosen approach.
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-model-selection/SKILL.md`:
- Around line 51-55: Update the model discovery command in the Platform-routed
harness section to extract each model’s data[].id instead of data[].name. Ensure
an empty candidate set is rejected and follows the existing unreachable/error
path rather than allowing the skill to continue successfully without models.
🪄 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: 1ef2ff0b-b02d-4cc7-806c-c05c2a9c0e81
⛔ Files ignored due to path filters (4)
sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/references/templates/agent.yamlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/SKILL.mdis excluded by!sdk/**
📒 Files selected for processing (5)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/references/templates/agent.yamlpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-model-selection/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-model-selection/tests.json
🚧 Files skipped from review as they are similar to previous changes (1)
- packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/references/templates/agent.yaml
tylersbray
left a comment
There was a problem hiding this comment.
agent (
pr-review): Request changes — consolidated verified findings
Thanks for the clear nemo-agents-spec-v1 preferred / NAT compatibility pivot, removing silent agents delete, and the confirmation gates. CI looks good.
Request changes on two blockers (inline below):
- Relative
skills.paths— create validates against the authoring dir; deploy only materializes YAML. Non-empty relative skill paths will fail after a successful create. - Vendoring —
*.yamlwas added, but build still depends onagent.yml+eval-job.json, which remain absent from the SDK skill tree.
Additional P2s are filed inline (eval poll CLI, try-agent verify branch, deploy-wait selector, guardrails honesty, model step order, approval_mode, MCP fields, NAT local gateway).
Not actionable (replying on threads): CodeRabbit’s telemetry.atof removal and data[].id advice — both are false positives against TelemetryConfig / nemo models list (ModelEntity.name).
tylersbray
left a comment
There was a problem hiding this comment.
Giving an approval so you are not blocked. Hopefully it is easy to have an agent crank through those recommended changes.
Signed-off-by: Manjesh Mogallapalli <mmogallapall@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md`:
- Around line 109-113: The verification block invokes the agent a second time
after the earlier “Send the query” step. Reuse the first invocation’s captured
RESP and RC in this local/deployment branching flow, or replace this invocation
with a separate read-only probe, ensuring the target agent is executed only
once.
- Around line 62-66: Update the local Platform CLI invocation flow in the
pre-flight checks to export NMP_BASE_URL=http://localhost:8080 before running
.venv/bin/nemo agents deployments list or any subsequent agents command. Apply
this only to local Platform CLI calls that use the local platform endpoint,
preserving the existing routing and exclusions for deployed, Fabric-owned, and
explicitly configured endpoint invocations.
🪄 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: b9104128-18a4-4b82-a0de-93093ebdbf80
⛔ Files ignored due to path filters (8)
sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-agent-config/references/templates/agent.yamlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/agent.ymlis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-build-agent/references/templates/eval-job.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-model-selection/references/benchmark_cache.jsonis excluded by!sdk/**sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**sdk/python/nemo-platform/tests/vendored/nemo_platform_ext/cli/commands/skills/test_skill_content.pyis excluded by!sdk/**
📒 Files selected for processing (6)
packages/nemo_platform_ext/pyproject.tomlpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/references/templates/agent.yamlpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.mdpackages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.mdpackages/nemo_platform_ext/tests/cli/commands/skills/test_skill_content.py
🚧 Files skipped from review as they are similar to previous changes (3)
- packages/nemo_platform_ext/pyproject.toml
- packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-agent-config/references/templates/agent.yaml
- packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-build-agent/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md (1)
36-67: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winFollow
SETUP.mdbefore local CLI use.This section runs
.venv/bin/nemoand local health checks without first directing the agent to followSETUP.md. Add that setup step. In a sandbox, stop and report missing capabilities instead of bypassing setup.As per coding guidelines, local Platform and
nemoCLI use must followSETUP.mdfirst.🤖 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 `@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md` around lines 36 - 67, Update the Pre-flight instructions before any local Platform checks or `.venv/bin/nemo` invocation to require following `SETUP.md` first. In sandboxed environments, instruct the agent to stop and report missing setup capabilities rather than bypassing the setup process, while preserving the existing invocation-mode and readiness checks.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.
Inline comments:
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md`:
- Around line 98-107: Update the invocation branches in the skill script to use
the runner-provided USER_QUERY variable as data, replacing the literal “<user
query>” argument with a quoted “$USER_QUERY” argument in both local and
deployment modes; leave the remaining nemo invocation options unchanged.
- Around line 54-67: Update both remote and local deployment-list preflight
branches to capture the CLI exit status and stderr, stop immediately on any
non-zero result, and classify the actual authentication, plugin, endpoint, or
CLI failure instead of mapping everything to PLATFORM_UNREACHABLE or continuing
silently. Preserve the existing PLATFORM_DOWN and PLATFORM_WEDGED checks for
local process and health failures, and ensure successful listing output remains
unchanged.
- Around line 62-66: Update the NMP_BASE_URL assignment in the local platform
readiness and CLI command block to use the exact value http://localhost:8080
instead of http://127.0.0.1:8080, leaving the surrounding health checks and
agents deployments list command unchanged.
---
Outside diff comments:
In
`@packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md`:
- Around line 36-67: Update the Pre-flight instructions before any local
Platform checks or `.venv/bin/nemo` invocation to require following `SETUP.md`
first. In sandboxed environments, instruct the agent to stop and report missing
setup capabilities rather than bypassing the setup process, while preserving the
existing invocation-mode and readiness checks.
🪄 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: c5ea44d1-d121-4b6d-a62e-a1b2ad3afd09
⛔ Files ignored due to path filters (1)
sdk/python/nemo-platform/src/nemo_platform/skills/nemo-try-agent/SKILL.mdis excluded by!sdk/**
📒 Files selected for processing (1)
packages/nemo_platform_ext/src/nemo_platform_ext/skills/nemo-try-agent/SKILL.md
Summary
This PR updates the NeMo Platform agent-building skills for AIRCORE-956 so new
agents use the Platform-owned
nemo-agents-spec-v1configuration path bydefault, while preserving existing NAT workflow YAML as an explicit
compatibility path.
It introduces a focused
nemo-agent-configskill and aligns the surroundingdesign, specification, model-selection, build, and invocation skills around the
same authoring flow:
Users author Platform concepts such as harness selection, models,
instructions, skills, tools, environment, and telemetry. The skills do not ask
users to author raw Fabric SDK objects or treat Fabric configuration as the
Platform persistence contract.
Changes
nemo-agent-configskill for creating, editing, validating, andmigrating Platform-owned
agent.yamlfiles.nemo-agents-spec-v1agent.yamltemplate covering:nemo-agent-configrequests, including legacy NAT migration requests.
nemo-build-agentto:agent.yamlas the default implementation path.nemo-agent-config.nemo-skill-selectionto route focused Platform agent-config work tonemo-agent-configand keep full builds routed tonemo-build-agent.nemo-exploreto gather harness, model, tool, skill, environment,telemetry, and compatibility requirements needed by the new config path.
nemo-specand its template soAGENT-SPEC.mdcaptures the inputsneeded to create a Platform-owned
agent.yamlwhile remaining useful for NATcompatibility workflows.
nemo-model-selectionto describe shared Platform model defaults,harness-specific overrides, and Inference Gateway behavior without exposing
Fabric SDK configuration as the user contract.
nemo-try-agentto support both Platform-ownedagent.yamlandlegacy NAT YAML for local one-shot invocation, while distinguishing local
provider requirements from deployed Inference Gateway normalization.
SDK copies of all changed skills and templates.
Design Choices
agent.yamlis the preferred machine-readable contractNew agent workflows now produce a Platform-owned
agent.yamlwithconfig_format: nemo-agents-spec-v1. The resulting config is stored in thePlatform Agent entity and translated behind the Platform execution boundary.
The skills deliberately use Platform-facing terms instead of asking users to
construct
FabricConfigor other SDK-specific objects.AGENT-SPEC.mdandagent.yamlhave separate rolesAGENT-SPEC.mdremains the human-readable design and acceptance contract.agent.yamlis the machine-readable execution configuration derived from thatspec. Both live under the canonical agent spec directory:
This preserves the existing spec-first workflow while adding the new Platform
agent format.
NAT remains a compatibility path
Existing NAT workflow YAML continues to be accepted. The updated skills do not
automatically rewrite or overwrite it. Users can deploy it unchanged or choose
a best-effort migration through
nemo-agent-config.If a NAT workflow, custom Python component, or tool has no equivalent supported
harness contract, the skills keep the NAT path or identify the need for a
custom adapter instead of claiming a mechanical conversion.
Model defaults may be overridden by a harness
The template supports one shared
models.defaultand an optional model blockon each harness. A harness-local model takes precedence when provided; otherwise
the shared default is used.
The default deployed path may rely on Platform Inference Gateway normalization.
Local one-shot invocation requires the selected model to already have a usable
provider endpoint and credentials because it does not apply that deployment
normalization.
Existing resources are not replaced silently
The build workflow checks for existing Agent entities and deployments and asks
the user whether to reuse, update, or replace them. The default command sequence
assumes a new Agent and no longer performs an unconditional best-effort delete.
YAML templates are vendored assets
The package vendoring configuration now includes
*.yamlso the canonicalagent.yamltemplate is available from the SDK's bundled skill copy alongsidethe Markdown skill content.
Compatibility
nemo-agents-spec-v1.config_formatcontinue to use the existingnat-workflow-v1default.nemo-try-agentcontinues to support both local and deployed invocationtargets.
Validation
Focused skill registry and CLI tests:
Additional validation completed:
agent.yamlwith the PlatformAgentConfigmodel.Fabric planning.
nemo skills listincludesnemo-agent-config.make vendor.git diff --checksuccessfully.Summary by CodeRabbit
New Features
Improvements