Skip to content

Commit 5216b1e

Browse files
committed
Merge branch 'release/1.3' into develop-merge-release/1.3
Signed-off-by: David Gardner <[email protected]>
2 parents dc34299 + cc31511 commit 5216b1e

File tree

95 files changed

+1557
-679
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1557
-679
lines changed

.coderabbit.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ reviews:
2121
collapse_walkthrough: false
2222
pre_merge_checks:
2323
title:
24-
mode: warning
24+
mode: error
2525
requirements: "Title should be concise, and descriptive, and use imperative mood (max ~72 chars)."
2626
description:
2727
mode: warning

.gitlab-ci.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ variables:
4242
NAT_CI_ETCD_HOST: "etcd"
4343
NAT_CI_MILVUS_HOST: "milvus"
4444
NAT_CI_MYSQL_HOST: "mysql"
45+
NAT_CI_OPENSEARCH_URL: "http://opensearch:9200"
4546
NAT_CI_REDIS_HOST: "redis"
4647
NAT_CI_S3_HOST: "minio"
4748
UV_CACHE_DIR: .uv-cache
@@ -81,19 +82,32 @@ test:python_tests:
8182
- name: minio/minio:RELEASE.2025-07-18T21-56-31Z
8283
alias: minio
8384
command: ["server", "/data", "--console-address", ":9001"]
84-
- mysql:9.3
85+
pull_policy: if-not-present
86+
- name: mysql:9.3
87+
pull_policy: if-not-present
8588
- name: arizephoenix/phoenix:latest
8689
alias: phoenix
87-
- redis:7-alpine
90+
pull_policy: if-not-present
91+
- name: redis:8.0
92+
alias: redis
93+
pull_policy: if-not-present
8894
- name: quay.io/coreos/etcd:v3.5.5
8995
alias: etcd
9096
command: ["etcd", "--advertise-client-urls", "http://0.0.0.0:2379", "--listen-client-urls", "http://0.0.0.0:2379"]
97+
pull_policy: if-not-present
9198
- name: milvusdb/milvus:v2.3.1
9299
alias: milvus
93100
variables:
94101
ETCD_ENDPOINTS: etcd:2379
95102
MINIO_ADDRESS: minio:9000
96103
command: ["milvus", "run", "standalone"]
104+
pull_policy: if-not-present
105+
- name: opensearchproject/opensearch:2.11.1
106+
alias: opensearch
107+
pull_policy: if-not-present
108+
variables:
109+
discovery.type: "single-node"
110+
plugins.security.disabled: "true"
97111

98112
script:
99113
- echo "Running tests"
@@ -147,3 +161,4 @@ upload:artifactory:
147161
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
148162
- if: $CI_COMMIT_BRANCH == 'main'
149163
- if: $CI_COMMIT_TAG
164+
- if: $CI_COMMIT_BRANCH =~ /^release\/.*$/

README.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ NVIDIA NeMo Agent toolkit is a flexible, lightweight, and unifying library that
3737
3838
## ✨ Key Features
3939

40-
- 🧩 [**Framework Agnostic:**](./docs/source/quick-start/installing.md#framework-integrations) NeMo Agent toolkit works side-by-side and around existing agentic frameworks, such as [LangChain](https://www.langchain.com/), [LlamaIndex](https://www.llamaindex.ai/), [CrewAI](https://www.crewai.com/), and [Microsoft Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/), as well as customer enterprise frameworks and simple Python agents. This allows you to use your current technology stack without replatforming. NeMo Agent toolkit complements any existing agentic framework or memory tool you're using and isn't tied to any specific agentic framework, long-term memory, or data source.
40+
- 🧩 [**Framework Agnostic:**](./docs/source/quick-start/installing.md#framework-integrations) NeMo Agent toolkit works side-by-side and around existing agentic frameworks, such as [LangChain](https://www.langchain.com/), [LlamaIndex](https://www.llamaindex.ai/), [CrewAI](https://www.crewai.com/), [Microsoft Semantic Kernel](https://learn.microsoft.com/en-us/semantic-kernel/), and [Google ADK](https://google.github.io/adk-docs/), as well as customer enterprise frameworks and simple Python agents. This allows you to use your current technology stack without replatforming. NeMo Agent toolkit complements any existing agentic framework or memory tool you're using and isn't tied to any specific agentic framework, long-term memory, or data source.
4141

4242
- 🔁 [**Reusability:**](./docs/source/extend/sharing-components.md) Every agent, tool, and agentic workflow in this library exists as a function call that works together in complex software applications. The composability between these agents, tools, and workflows allows you to build once and reuse in different scenarios.
4343

@@ -72,6 +72,13 @@ Before you begin using NeMo Agent Toolkit, ensure that you have Python 3.11, 3.1
7272

7373
### Stable Version
7474

75+
Based on your system settings, you may need to configure and activate a Python virtual environment. On macOS or Linux, you can run the following commands:
76+
77+
```bash
78+
python3 -m venv .venv
79+
source .venv/bin/activate
80+
```
81+
7582
To install the latest stable version of NeMo Agent Toolkit, run the following command:
7683

7784
```bash
@@ -108,7 +115,7 @@ More information on how to install the latest development version and contribute
108115
export NVIDIA_API_KEY=<your_api_key>
109116
```
110117

111-
2. Create the NeMo Agent toolkit workflow configuration file. This file will define the agents, tools, and workflows that will be used in the example. Save the following as `workflow.yaml`:
118+
2. Create the NeMo Agent toolkit workflow configuration file. This file will define the agents, tools, and workflows that will be used in the example. Save the following as `workflow.yml`:
112119

113120
```yaml
114121
functions:
@@ -137,10 +144,10 @@ More information on how to install the latest development version and contribute
137144
parse_agent_response_max_retries: 3
138145
```
139146
140-
3. Run the Hello World example using the `nat` CLI and the `workflow.yaml` file.
147+
3. Run the Hello World example using the `nat` CLI and the `workflow.yml` file.
141148

142149
```bash
143-
nat run --config_file workflow.yaml --input "List five subspecies of Aardvarks"
150+
nat run --config_file workflow.yml --input "List five subspecies of Aardvarks"
144151
```
145152

146153
This will run the workflow and output the results to the console.
@@ -168,9 +175,9 @@ The following diagram illustrates the key components of NeMo Agent toolkit and h
168175
## 🛣️ Roadmap
169176

170177
- [x] Integrate with [NeMo DataFlywheel](https://github.com/NVIDIA-AI-Blueprints/data-flywheel) for continuous model improvement from production data.
171-
- [ ] Add support for [Google ADK](https://google.github.io/adk-docs/) framework.
178+
- [x] Add support for [Google ADK](https://google.github.io/adk-docs/) framework.
172179
- [x] Add an agent optimizer to auto-tune hyperparameters and prompts to maximize performance.
173-
- [ ] MCP authorization and streamable HTTP support.
180+
- [x] MCP authorization and streamable HTTP support.
174181
- [ ] Integration with [NeMo Guardrails](https://github.com/NVIDIA/NeMo-Guardrails) to secure any function in an agent workflow.
175182
- [ ] End-to-end acceleration using intelligent integrations with [NVIDIA Dynamo](https://github.com/ai-dynamo/dynamo).
176183

@@ -184,9 +191,16 @@ We would like to thank the following open source projects that made NeMo Agent t
184191

185192
- [CrewAI](https://github.com/crewAIInc/crewAI)
186193
- [FastAPI](https://github.com/tiangolo/fastapi)
194+
- [Google Agent Development Kit (ADK)](https://github.com/google/adk-python)
187195
- [LangChain](https://github.com/langchain-ai/langchain)
188196
- [Llama-Index](https://github.com/run-llama/llama_index)
189197
- [Mem0ai](https://github.com/mem0ai/mem0)
198+
- [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/modelcontextprotocol)
199+
- [MinIO](https://github.com/minio/minio)
200+
- [OpenTelemetry](https://github.com/open-telemetry/opentelemetry-python)
201+
- [Phoenix](https://github.com/arize-ai/phoenix)
190202
- [Ragas](https://github.com/explodinggradients/ragas)
203+
- [Redis](https://github.com/redis/redis-py)
191204
- [Semantic Kernel](https://github.com/microsoft/semantic-kernel)
205+
- [Weave](https://github.com/wandb/weave)
192206
- [uv](https://github.com/astral-sh/uv)

ci/scripts/github/tests.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ rapids-logger "Running tests with Python version $(python --version) and pytest
3030
set +e
3131

3232
REPORT_IDENT_SLUG="$(arch)-py${PYTHON_VERSION}"
33-
pytest --junit-xml=${REPORTS_DIR}/report-${REPORT_IDENT_SLUG}_pytest.xml \
33+
pytest --run_slow --junit-xml=${REPORTS_DIR}/report-${REPORT_IDENT_SLUG}_pytest.xml \
3434
--cov=nat --cov-report term-missing \
3535
--cov-report=xml:${REPORTS_DIR}/report-${REPORT_IDENT_SLUG}_pytest_coverage.xml
3636
PYTEST_RESULTS=$?

ci/scripts/gitlab/build_wheel.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ if [[ "${BUILD_NAT_COMPAT}" == "true" ]]; then
5959
done
6060
fi
6161

62-
if [[ "${CI_COMMIT_BRANCH}" == "${CI_DEFAULT_BRANCH}" || "${CI_COMMIT_BRANCH}" == "main" ]]; then
62+
if [[ "${CI_COMMIT_BRANCH}" == "${CI_DEFAULT_BRANCH}" || "${CI_COMMIT_BRANCH}" == "main" || "${CI_COMMIT_BRANCH}" == "release/"* ]]; then
6363
rapids-logger "Uploading Wheels"
6464

6565
# Find and upload all .whl files from nested directories
Lines changed: 2 additions & 2 deletions
Loading
Lines changed: 2 additions & 2 deletions
Loading

docs/source/conf.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,11 @@ def _build_api_tree() -> Path:
141141
nbsphinx_allow_errors = True # Continue through Jupyter errors
142142
add_module_names = False # Remove namespaces from class/method signatures
143143
myst_heading_anchors = 4 # Generate links for markdown headers
144-
copybutton_prompt_text = ">>> |$ |# " # characters to be stripped from the copied text
144+
copybutton_prompt_text = ">>> |$ " # characters to be stripped from the copied text
145+
146+
# Allow GitHub-style mermaid fence code blocks to be used in markdown files
147+
# see https://myst-parser.readthedocs.io/en/latest/configuration.html
148+
myst_fence_as_directive = ["mermaid"]
145149

146150
suppress_warnings = [
147151
"myst.header" # Allow header increases from h2 to h4 (skipping h3)

docs/source/extend/telemetry-exporters.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ Telemetry exporters in NeMo Agent toolkit are responsible for:
160160
161161
The flexible telemetry export system routes workflow events through different exporter types to various destinations:
162162
163-
```{mermaid}
163+
```mermaid
164164
graph TD
165165
A[Workflow Events] --> B[Event Stream]
166166
B --> C[Telemetry Exporter]
@@ -182,7 +182,7 @@ graph TD
182182

183183
NeMo Agent toolkit supports several types of exporters based on the data they handle:
184184

185-
```{mermaid}
185+
```mermaid
186186
graph LR
187187
A["IntermediateStep"] --> B["Raw Exporter"]
188188
A --> C["Span Exporter"]

docs/source/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ Adding a Telemetry Exporter <./extend/telemetry-exporters.md>
131131
API Authentication <./reference/api-authentication.md>
132132
Interactive Models <./reference/interactive-models.md>
133133
API Server Endpoints <./reference/api-server-endpoints.md>
134-
Websockets <./reference/websockets.md>
134+
WebSockets <./reference/websockets.md>
135135
Command Line Interface (CLI) <./reference/cli.md>
136136
Cursor Rules Reference <./reference/cursor-rules-reference.md>
137137
Evaluation <./reference/evaluate.md>

0 commit comments

Comments
 (0)