Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
160edc6
Updating versions for v1.7.0
AnuradhaKaruppiah Apr 8, 2026
2f82a98
Forward-merge release/1.6 into develop (#1857)
GPUtester Apr 9, 2026
0bf30ad
fix(memmachein): preserve conversation message order in `add_items` (…
fede-kamel Apr 9, 2026
36fb2c2
Forward-merge release/1.6 into develop (#1858)
GPUtester Apr 9, 2026
9672dd1
Forward-merge release/1.6 into develop (#1860)
GPUtester Apr 10, 2026
ee7ab31
chore: migrate openai dependency from 1.x to 2.x (#1849)
willkill07 Apr 10, 2026
92efa43
Misc CI improvements (#1866)
dagardner-nv Apr 13, 2026
cbb5fed
Misc CI improvements (#1867)
dagardner-nv Apr 14, 2026
b685539
Add an expiration time to cached MCP auth credentials (#1872)
dagardner-nv Apr 16, 2026
3f159aa
Fix `observability_evaluation_and_profiling` example notebook (#1874)
dagardner-nv Apr 16, 2026
a328e8a
Add ATIF trajectory exporter for Phoenix visualization and debugging …
yczhang-nv Apr 16, 2026
4b778e7
Add Exa Search API support as internet search tool (#1846)
maxwbuckley Apr 17, 2026
3e9b632
Fix shutdown on Cntrl+c for `ci/scripts/run_tests.py` (#1886)
dagardner-nv Apr 17, 2026
86fc08f
Support client-id-only MCP OAuth2 and refine Outlook auth example con…
AnuradhaKaruppiah Apr 20, 2026
7eb159f
Misc test improvements and update model in the workflow template (#1884)
dagardner-nv Apr 20, 2026
2d611d1
Widen the version range for `starlette` (#1887)
dagardner-nv Apr 20, 2026
f3770a1
Filter AIMessage state updates from streaming output (#1863)
MylesShannon Apr 21, 2026
23267e9
fix: preserve tool_calls in _stream_llm for native tool calling (#1864)
getglad Apr 24, 2026
afcd669
fix(mcp-client): set proper httpx timeouts for streamable-http transp…
yczhang-nv Apr 24, 2026
2cfdf1f
Add optional `--client-id` and `--client-secret` flags to `nat mcp cl…
dagardner-nv Apr 24, 2026
e77e27a
dependency fix: remove flask as a hard dependency of nat-core (#1895)
bbednarski9 Apr 27, 2026
d219357
dependency cleanup: move aioboto3, plotly, and wikipedia to dependent…
bbednarski9 Apr 27, 2026
9e424ac
fix(tool): stop leaking exception details in chat_completion error re…
ColinM-sys Apr 28, 2026
ca59672
chore: dependency cleanup - drops optuna chain and openinference from…
bbednarski9 Apr 29, 2026
6caf21f
Add OCI LangChain support for hosted Nemotron workflows (#1804)
fede-kamel Apr 30, 2026
443b5c8
Update LLMs used in the profiler documentation (#1904)
dagardner-nv May 4, 2026
586ba52
ATOF v0.1: Agentic Trajectory Observability Format (aligned spec) (#1…
bbednarski9 May 5, 2026
45f4f91
feat(cli): add consent-gated runtime telemetry for NAT CLI commands (…
yczhang-nv May 7, 2026
c9d173c
docs(memory): add Synap third-party memory plugin (#1906)
visy-ani May 8, 2026
018b328
feat(observability): Arize AX OTLP exporter, docs, and examples (#1898)
ryoung562 May 8, 2026
9468bd6
fix(front-end): Fix `HTTPInteractiveRunner` streaming cleanup on clie…
yczhang-nv May 12, 2026
9222074
fix(deps): update selected dependency floors (#1923)
mnajafian-nv May 13, 2026
9d240f5
fix(haystack): update urllib3 dependency floor (#1922)
mnajafian-nv May 13, 2026
309d346
fix(agno): update Agno dependency stack (#1919)
mnajafian-nv May 13, 2026
2e47516
fix(fastmcp): update FastMCP to 3.2.4 (#1918)
mnajafian-nv May 13, 2026
c4a20d7
Remove currency A2A example from release validation (#1924)
AnuradhaKaruppiah May 13, 2026
2e5f7c1
Feature: token streaming support for ReAct Agent (#1851)
thepatrickchin May 13, 2026
68e78a5
Add AI coding agent skills for NAT (#1921)
yczhang-nv May 13, 2026
d79212f
Update RL OpenPipe example (#1925)
dnandakumar-nv May 13, 2026
09ddf45
Remove the `nvidia-nat-vanna` integration package (#1926)
dagardner-nv May 13, 2026
6bf0e49
fix(Phoenix): Fix Phoenix telemetry API key support (#1928)
yczhang-nv May 14, 2026
1371ad4
fix(example): Improve ADK-demo example with dynamic weather and time …
yczhang-nv May 14, 2026
e0c95e0
chore: bump dependency versions (#1931)
willkill07 May 14, 2026
d50e9e6
chore: bump dependency versions (#1936)
dagardner-nv May 15, 2026
85f499f
chore: Replace `llama-3.2-nv-embedqa-1b-v2` with `llama-nemotron-embe…
dagardner-nv May 15, 2026
708235f
chore: set dependency version range for `azure-identity` (#1942)
dagardner-nv May 15, 2026
e8d71f0
Replace `llama-3.2-nv-rerankqa-1b-v2` with `llama-nemotron-rerank-1b-…
dagardner-nv May 15, 2026
9121cb4
fix(example): Fix `typing.Any` runtime checks in function conversion …
yczhang-nv May 15, 2026
a2d88cb
Fix MCP schema model reuse for Kaggle tools (#1954)
AnuradhaKaruppiah May 18, 2026
f2b27b3
fix(example): Fix auto-memory wrapper user ID lookup (#1948)
yczhang-nv May 18, 2026
d2b17c9
fix(mcp): Fix MCP reconnect lifecycle after local server crash (#1935)
yczhang-nv May 18, 2026
23b73a9
Update older models (#1960)
dagardner-nv May 18, 2026
918feb7
Adopt latest changes from NAT-UI (#1963)
dagardner-nv May 19, 2026
70afb02
Update LLM used in `simple_auth_mcp` example (#1966)
dagardner-nv May 19, 2026
7e761cd
fix(example): Fix `typing.Any` and string input handling in NAT LangC…
yczhang-nv May 19, 2026
1885e46
Fix auto memory recall scoping (#1968)
willkill07 May 19, 2026
880951c
fix(skills): Fix skill-evolution routing for skill update decisions (…
yczhang-nv May 19, 2026
fc6d765
Update `model_health_check.py` to check for deprecation header (#1974)
dagardner-nv May 20, 2026
8ddf2e1
fix: improve auto memory wrapper example and code (#1976)
willkill07 May 20, 2026
adc85c6
Update the ` Using Local LLMs` documentation (#1979)
dagardner-nv May 20, 2026
33d0ab8
fix(server): emit canonical {"value": ...} envelope from /generate/fu…
matthewgrossman May 20, 2026
649329d
Update release PR template
dagardner-nv May 21, 2026
dc653b5
Updating CHANGELOG and Release Notes
dagardner-nv May 21, 2026
dc2ec1a
Add skills to the release notes
dagardner-nv May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,15 @@ reviews:
3. Using remote MCP tools or A2A agents should be placed in `build-workflows/`
4. Serving workflows via MCP/A2A should be placed in `run-workflows/`

- path: "skills/**/*"
instructions: >-
This directory contains portable AI coding agent skills and reference material, not published documentation or
runtime package code. Treat `SKILL.md` frontmatter with `author: NVIDIA Corporation and Affiliates` and
`license: Apache-2.0` as the license signal; do not request full Apache license headers in skill files.
Allow concise, agent-facing wording and illustrative placeholder paths in references. Only flag path-like text
when it is misleading for an agent or when a cross-skill reference is actually broken. Enforce the official
product name `NeMo Agent Toolkit` in prose.

- path: "examples/**/*"
instructions: >-
- This directory contains example code and usage scenarios for the toolkit, at a minimum an example should
Expand Down
20 changes: 9 additions & 11 deletions .github/workflows/ci_pipe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,11 +53,9 @@ defaults:
shell: bash

env:
GH_TOKEN: "${{ github.token }}"
GIT_COMMIT: "${{ github.sha }}"
BASE_SHA: "${{ inputs.base_sha }}"
BUILD_NAT_COMPAT: "true"
RAPIDS_CONDA_RETRY_MAX: "5"
WORKSPACE: "${{ github.workspace }}/nat"
WORKSPACE_TMP: "${{ github.workspace }}/tmp"
UV_CACHE_DIR: .uv-cache
Expand Down Expand Up @@ -89,7 +87,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
path: 'nat'
Expand Down Expand Up @@ -125,7 +123,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -137,15 +135,15 @@ jobs:
run: ./nat/ci/scripts/github/tests.sh

- name: Upload Test Results
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
# Upload test results even if the tests fail
if: ${{ always() }}
with:
name: "test-results-${{ matrix.arch }}-py${{ matrix.python-version }}"
path: "${{ github.workspace }}/tmp/reports/*.xml"
if-no-files-found: error
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5
# Upload test results even if the tests fail
if: ${{ always() }}
with:
Expand All @@ -169,7 +167,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-tags: true
path: 'nat'
Expand All @@ -179,7 +177,7 @@ jobs:
run: ./nat/ci/scripts/github/docs.sh

- name: Upload Documentation
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: "docs"
path: "${{ github.workspace }}/tmp/docs.tar.bz2"
Expand All @@ -199,7 +197,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
with:
fetch-depth: 0
fetch-tags: true
Expand All @@ -210,7 +208,7 @@ jobs:
run: ./nat/ci/scripts/github/build_wheel.sh

- name: Upload Package Reports
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
if: ${{ always() }}
with:
name: "package_listings"
Expand All @@ -219,7 +217,7 @@ jobs:
compression-level: 0

- name: Upload Wheels
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6
with:
name: "wheels"
path: "${{ github.workspace }}/tmp/wheels/*.whl"
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
- prepare
- ci_pipe
secrets: inherit
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@branch-25.04
uses: rapidsai/shared-workflows/.github/workflows/pr-builder.yaml@5fe52098676ca51435a73337131685e340658c51 # branch-25.04

prepare:
# Executes the get-pr-info action to determine if the PR has the skip-ci label, if the action fails we assume the
Expand All @@ -60,7 +60,7 @@ jobs:
steps:
- name: Get PR Info
id: get-pr-info
uses: nv-gha-runners/get-pr-info@main
uses: nv-gha-runners/get-pr-info@090577647b8ddc4e06e809e264f7881650ecdccf # main
if: ${{ startsWith(github.ref_name, 'pull-request/') }}
outputs:
is_pr: ${{ startsWith(github.ref_name, 'pull-request/') }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
###### Place new entries directly below this line! ######
/.codex

# auto-generated chainlit stuff
chainlit.md
Expand Down
4 changes: 3 additions & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ test:python_tests:
alias: mysql
pull_policy: if-not-present

- name: arizephoenix/phoenix:latest
- name: arizephoenix/phoenix:13.22
alias: phoenix
pull_policy: if-not-present

Expand Down Expand Up @@ -325,6 +325,8 @@ package:wheel:
- if: $CI_COMMIT_BRANCH =~ /^release\/.*$/

upload:artifactory:
# Container defined in ci/scripts/gitlab/artifactory/Dockerfile
image: $CI_REGISTRY_IMAGE/artifactory:20260413
stage: upload
script:
- echo "Uploading wheel to artifactory"
Expand Down
83 changes: 83 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
<!--
SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
SPDX-License-Identifier: Apache-2.0

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

# AGENTS.md - NVIDIA NeMo Agent Toolkit AI Agent Entry Point

AI agent skills for the NVIDIA NeMo Agent Toolkit live in **`skills/`** at the repository root and use a **flat layout**. Read this file first, then choose skills from the task routing index below.

## Mandatory Repository Rules

- Preserve user changes. Check `git status` before editing and do not revert unrelated work.
- Prefer existing project patterns, examples, and documentation over new abstractions.
- Do not add dependencies, update lock files, or run package installation commands unless the task requires it.
- Use the full product name "NVIDIA NeMo Agent Toolkit" on first use in public documentation, then "NeMo Agent Toolkit" or "the toolkit". Use `nat` only for the CLI, Python namespace, package metadata, and other technical identifiers.
- Keep examples runnable from the repository root unless the surrounding file uses a different convention.
- For ambiguous tasks, clarify the intended outcome or cover each plausible interpretation and report what you did.

## Skills Directory (Flat)

- `skills/nat-user-rules/` - General behavior, naming conventions, discovery rules, and task routing.
- `skills/nat-installation/` - Installation, optional extras, CLI verification, and first workflow setup.
- `skills/nat-workflow-creation/` - Workflow YAML authoring, component discovery, LLM configuration, and common CLI commands.
- `skills/nat-agent-configuration/` - Agent selection, built-in agent configuration, control flow, and sub-agent composition.
- `skills/nat-tools-and-functions/` - Custom functions, tools, function groups, and Python extension patterns.
- `skills/nat-evaluation/` - Evaluation methodology, datasets, evaluator selection, ATIF surfaces, and `nat eval`.
- `skills/nat-optimization/` - `nat optimize`, optimizer configuration, parameter selection, and output interpretation.
- `skills/nat-telemetry/` - Logging, tracing, profiling, OpenTelemetry, and telemetry exporters.
- `skills/nat-mcp-and-serving/` - MCP clients and servers, FastAPI, and workflow serving.
- `skills/nat-path-checks/` - Documentation path-check failures, Markdown escaping, and slash-delimited token fixes.
- `skills/skill-evolution/` - Creating, refining, and maintaining AI coding agent skills.

## Task Routing

Use the routing table before opening detailed references inside the skill.

| Task | Skill and Reference |
| --- | --- |
| Installing or configuring NeMo Agent Toolkit | `skills/nat-installation/SKILL.md` |
| Discovering registered component `_type` values | `skills/nat-workflow-creation/SKILL.md` |
| Writing or editing workflow YAML | `skills/nat-workflow-creation/SKILL.md` |
| Configuring LLMs | `skills/nat-workflow-creation/SKILL.md` |
| Choosing or configuring agents | `skills/nat-agent-configuration/SKILL.md` |
| Writing custom tools or functions | `skills/nat-tools-and-functions/SKILL.md` |
| Wiring MCP client or server workflows | `skills/nat-mcp-and-serving/SKILL.md` |
| Serving with FastAPI | `skills/nat-mcp-and-serving/SKILL.md` |
| Composing sub-agents | `skills/nat-agent-configuration/SKILL.md` |
| Adding tracing or telemetry | `skills/nat-telemetry/SKILL.md` |
| Designing an evaluation suite | `skills/nat-evaluation/SKILL.md` |
| Choosing an evaluator | `skills/nat-evaluation/SKILL.md` |
| Running `nat optimize` | `skills/nat-optimization/SKILL.md` |
| Fixing documentation path-check failures | `skills/nat-path-checks/SKILL.md` |
| Creating or improving skills | `skills/skill-evolution/SKILL.md` |

## Skill Evolution

Before creating, editing, or deciding whether to update any file under `skills/`, read `skills/skill-evolution/SKILL.md` first. For skill routing and skill maintenance tasks, treat skill-evolution as an explicit pre-edit gate (i.e., don't jump directly to editing a named target skill without consulting skill-evolution). Then read the target skill and make the smallest warranted change.

When a user corrects your approach, a command fails and you recover, or you discover a generalizable gotcha, finish the task first and then read `skills/skill-evolution/SKILL.md` to decide whether the skills should be updated.

## Quick Commands

Run commands from the repository root unless a skill or package README says otherwise.

```bash
uv run nat --help
uv run pytest packages/nvidia_nat_core
NAT_DISABLE_API_BUILD=1 make -C docs html
```

For local documentation details, read `docs/README.md`. For contribution details, read `docs/source/resources/contributing/index.md`.
Loading
Loading