-
Notifications
You must be signed in to change notification settings - Fork 18
chore(copilot): Switch copilot from NAT to Fabric #1128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 2 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
df7c6a6
chore(copilot): Move copilot from NAT to Fabric
dmariali 2a5d07b
Merge branch 'main' into switch-copilot-from-nat-to-pilot
dmariali 55876bb
Merge branch 'main' into switch-copilot-from-nat-to-pilot
dmariali 483ba91
rabbit feedback
dmariali 409f343
Merge branch 'main' into switch-copilot-from-nat-to-pilot
dmariali 673b4f4
additional feedback
dmariali 55d2849
Merge branch 'main' into switch-copilot-from-nat-to-pilot
dmariali b6f2288
fix(copilot): address review feedback
dmariali b615b68
fix(copilot): update deployment issues
dmariali 81d5d16
Merge branch 'main' into switch-copilot-from-nat-to-pilot
dmariali b325052
fix(copilot): rabbit feedback
dmariali File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Some comments aren't visible on the classic Files Changed page.
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,71 @@ | ||
| config_format: nemo-agents-spec-v1 | ||
| name: nemo-studio-copilot | ||
| description: NeMo Studio assistant for inspecting and operating the active NeMo Platform workspace. | ||
|
|
||
| instructions: | ||
| system: | ||
| content: | | ||
| You are a NeMo Platform assistant executing user and benchmark tasks. | ||
|
|
||
| Complete every numbered requirement before returning. Do not return a plan | ||
| for a human to run. Execute requested operations with the available tools, | ||
| then report concise, verified results. Never invoke a CLI or subprocess. | ||
|
|
||
| Use the deployment's active workspace unless the user explicitly names | ||
| another one. The Studio session id appears in the user context. Pass it to | ||
| every Studio UI tool and to nemo_api for every mutating action. Mutations | ||
| require explicit approval; never omit or invent the session id to bypass it. | ||
|
|
||
| Do not claim tools are insufficient until you attempt reasonable equivalent | ||
| operations with nemo_api. Use check_status for platform jobs. Do not repeat | ||
| the same failing call or guess a destructive target. Verify consequential | ||
| operations by reading back final state when the SDK supports it. | ||
|
|
||
| Ask one focused clarification when a workspace, resource, or consequential | ||
| parameter is missing or ambiguous. For finite choices use ask_user_question. | ||
| For agents, models, datasets/filesets, and evaluation configs, use the | ||
| matching select_* tool. | ||
|
|
||
| default_harness: deepagents | ||
| harnesses: | ||
| deepagents: | ||
| kind: deepagents | ||
| settings: | ||
| deepagents: {} | ||
|
|
||
| models: | ||
| default: | ||
| provider: nvidia | ||
| model: nvidia-nemotron-3-super-120b-a12b | ||
|
|
||
| skills: | ||
| paths: | ||
| - skills/auditor | ||
| - skills/benchmark-execution | ||
| - skills/entities | ||
| - skills/evaluator | ||
| - skills/files | ||
| - skills/guardrails | ||
| - skills/inference | ||
| - skills/secrets | ||
| - skills/workspace | ||
|
|
||
| mcp: | ||
| servers: | ||
| nemo_studio: | ||
| transport: stdio | ||
| url: nemo-studio-copilot-mcp | ||
| exposure: harness_native | ||
|
|
||
| tools: | ||
| blocked: [] | ||
|
|
||
| environment: | ||
| workspace: ./workspace | ||
| artifacts: ./artifacts | ||
|
|
||
| telemetry: | ||
| enabled: false | ||
| provider: relay | ||
| output_dir: ./artifacts/relay | ||
| project: nemo-studio-copilot |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| --- | ||
| name: auditor | ||
| description: NeMo Platform auditor playbook for audit target and config CRUD through the platform SDK. Use when the task involves audit targets, audit configs, or probes. | ||
| --- | ||
| Auditor tasks | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
|
|
||
| - Use `nemo_api` with `audit.targets` for target CRUD and `audit.configs` | ||
| for config CRUD. | ||
| - Use the standard SDK actions: `create`, `list`, `retrieve`, `update`, and | ||
| `delete`. | ||
| - Pass the target or config fields as compact JSON in `params`. | ||
| - For config create, prefer minimal valid JSON: | ||
| - `plugins`: `{"probe_spec":"dan.AutoDANCached"}` (or requested probe) | ||
| - `reporting`: `{}` | ||
| - `run`: `{}` | ||
| - `system`: `{"lite": true}` | ||
| - Follow full lifecycle: create temp resource, verify/list/update/delete, then create final verification resource. | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
20 changes: 20 additions & 0 deletions
20
agents/nemo-studio-copilot-spec/skills/benchmark-execution/SKILL.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| --- | ||
| name: benchmark-execution | ||
| description: "Benchmark task execution contract: complete every numbered requirement, execute tool calls directly (never plan-only), and verify final state with a direct retrieve/list before responding. Use for every agentic-use benchmark task." | ||
| --- | ||
| # Benchmark execution contract | ||
|
|
||
| This skill defines the execution requirements that every nemo-studio-copilot run under | ||
| `tests/agentic-use/` must satisfy so the canonical gate | ||
| (`tests/agentic-use/passrate_token_policy_gate.py`) can score the run on | ||
| verifier pass-rate and token totals. See | ||
| [`tests/agentic-use/README.md`](../../../../../../tests/agentic-use/README.md) | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
| for the full Run -> Gate -> Optimize loop these tasks plug into. | ||
|
|
||
| - Treat `instruction.md` as the task contract: finish all numbered requirements. | ||
| - Execute tool calls yourself; do not end with a plan-only response. | ||
| - Keep operations minimal and task-focused; avoid unrelated exploration. | ||
| - For CRUD-style tasks, if instructions require a final verification resource/state, | ||
| ensure that final state exists before your last response. | ||
| - Before final response, run one direct verification call that checks the required | ||
| end state from the instruction (for example: retrieve/list/get status). | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| name: entities | ||
| description: NeMo Platform model and dataset CRUD lifecycle through the platform SDK, with strict field matching on final verification entities. | ||
| --- | ||
| Entity tasks | ||
|
|
||
| - Use `nemo_api` with the `models` or `datasets` resource as appropriate. | ||
| - Use the exact entity type and name from the instruction. | ||
| - For model/dataset CRUD, create the temporary entity, verify/list/update/delete it, then create the final verification entity. | ||
| - Keep JSON params valid and compact. Final dataset checks often require fields such as `format` and `size` to match exactly. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| --- | ||
| name: evaluator | ||
| description: NeMo Platform evaluator playbook covering metrics, synchronous metric runs, and asynchronous metric jobs through the platform SDK. | ||
| --- | ||
| Evaluator tasks | ||
|
|
||
| - Typical flow for simple metric jobs: | ||
| 1) Create workspace | ||
| 2) Create/upload dataset fileset | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
| 3) Create metric (often `string-check`) | ||
| 4) Run synchronous metric evaluation with inline rows | ||
| 5) Create async metric job | ||
| 6) Get/list job status | ||
| - Use `nemo_api` with `evaluation.metrics` for metric operations and | ||
| `evaluation.metric_jobs` for asynchronous jobs. | ||
| - Use `check_status` when polling a created evaluation job. | ||
| - For inline JSON data, keep payload compact and valid JSON. | ||
| - If job status remains `created`, that can still satisfy instructions when job controller is absent. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| --- | ||
| name: files | ||
| description: platform fileset and file CRUD playbook with the exact `nemo_api(resource='files'|'files.filesets', ...)` sequence used by harbor benchmarks. Use when the task involves filesets, file uploads/downloads, `verify.txt`, `harbor-test-fileset`, or `harbor-final-fileset`. | ||
| --- | ||
| File tasks | ||
|
|
||
| - Use `nemo_api` for small file content uploads: | ||
| - resource: `files` | ||
| - action: `upload_content` | ||
| - params: `{"content": "text", "remote_path": "verify.txt", "fileset": "harbor-final-fileset"}` | ||
| - Use `nemo_api` for in-memory downloads when local files are unavailable: | ||
| - resource: `files` | ||
| - action: `download_content` | ||
| - params: `{"remote_path": "verify.txt", "fileset": "harbor-final-fileset"}` | ||
| - Use resource `files.filesets` for fileset create/list/retrieve/delete operations. | ||
| - Always delete temporary filesets when requested, then create the final verification fileset and upload the required final file. | ||
| - Keep the sequence short and complete: create temp fileset, perform minimal file operations, delete temp fileset, create final fileset, upload final verify file. | ||
| - Never end with a plan-only response. Execute tool calls directly. If a step fails, validate and correct its parameters, then retry that step once. If the retry also fails, stop the sequence and return the error or request one focused clarification; do not continue to later steps after an unrecoverable failure. | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
| - Before final answer, verify final state with: | ||
| - `nemo_api(resource="files.filesets", action="retrieve", params={"name":"harbor-final-fileset"})` | ||
| - `nemo_api(resource="files", action="list", params={"fileset":"harbor-final-fileset"})` | ||
| and ensure `verify.txt` appears. | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
|
|
||
| Fileset CRUD benchmark playbook (prefer this exact flow): | ||
|
|
||
| 1) `nemo_api(resource="files.filesets", action="create", params={"name":"harbor-test-fileset","description":"Test fileset for harbor eval"})` | ||
| 2) `nemo_api(resource="files.filesets", action="retrieve", params={"name":"harbor-test-fileset"})` | ||
| 3) `nemo_api(resource="files", action="upload_content", params={"content":"harbor-temp-content","remote_path":"temp.txt","fileset":"harbor-test-fileset"})` | ||
| 4) `nemo_api(resource="files", action="list", params={"fileset":"harbor-test-fileset"})` | ||
| 5) `nemo_api(resource="files", action="download_content", params={"remote_path":"temp.txt","fileset":"harbor-test-fileset"})` | ||
| 6) `nemo_api(resource="files", action="delete", params={"remote_path":"temp.txt","fileset":"harbor-test-fileset"})` | ||
| 7) `nemo_api(resource="files.filesets", action="delete", params={"name":"harbor-test-fileset"})` | ||
| 8) `nemo_api(resource="files.filesets", action="create", params={"name":"harbor-final-fileset","description":"Final fileset for verification"})` | ||
| 9) `nemo_api(resource="files", action="upload_content", params={"content":"harbor-verification-content","remote_path":"verify.txt","fileset":"harbor-final-fileset"})` | ||
16 changes: 16 additions & 0 deletions
16
agents/nemo-studio-copilot-spec/skills/guardrails/SKILL.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| --- | ||
| name: guardrails | ||
| description: NeMo guardrails self-check input config plus harmful-message check workflow through the platform SDK. | ||
| --- | ||
| Guardrails tasks | ||
|
|
||
| - Build one valid self-check input config, then run one harmful-message check. | ||
| - Minimal guardrail config pattern: | ||
| - `models`: include `{"type":"main","engine":"nim","model":"default/mock-llm"}` | ||
| - `rails.input.flows`: include `"self check input"` | ||
| - `prompts`: include a `self_check_input` prompt | ||
| - Use `nemo_api` with `guardrail.configs` for config CRUD. | ||
| - Use `nemo_api` with resource `guardrail` and action `check` for the | ||
| harmful-message check. | ||
| - Use a clearly harmful message and confirm output indicates blocked status. | ||
| - Stop once blocked response is observed; do not continue exploring unrelated commands. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| --- | ||
| name: inference | ||
| description: NeMo Platform inference provider registration lifecycle through the platform SDK (secret -> create temp provider -> verify -> delete -> create final provider). | ||
| --- | ||
| Inference provider tasks | ||
|
|
||
| - For provider registration tasks, use this sequence: | ||
| 1) Create API key secret | ||
| 2) Create temporary provider | ||
| 3) List providers | ||
| 4) Get provider details | ||
| 5) Delete temporary provider | ||
| 6) Create final verification provider | ||
| - Use `nemo_api` with resource `secrets` for the API key secret. | ||
| - Use `nemo_api` with resource `inference.providers` for provider CRUD. | ||
| - Ensure final provider uses exactly the requested host URL and description. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| --- | ||
| name: secrets | ||
| description: NeMo Platform secret CRUD lifecycle through the platform SDK. | ||
| --- | ||
| Secret tasks | ||
|
|
||
| - Use `nemo_api` with resource `secrets`. | ||
| - Use `create`, `retrieve`, `list`, `update`, and `delete` actions as needed, | ||
| passing secret data directly in the JSON `params`. | ||
| - Always finish the whole lifecycle: create temporary secret, verify/list/update/delete it, then create the final verification secret. | ||
|
coderabbitai[bot] marked this conversation as resolved.
Outdated
|
||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.