Releases: NVIDIA/NeMo-Agent-Toolkit
v1.3.1
What's Changed
✨ New Features
- feat: Add claude-sonnet-4.5 support by model-gating
top_pby @willkill07 in #1134 - Add support for arbitrary JSON body types in custom routes by @ericevans-nv in #1163
🐛 Bug Fixes
- bug: fix non json serializable objects in config by @bbednarski9 in #1112
- fix ADK demo multi-user session by @antoniomtz in #1120
- Fixes to detect optional parameters in tool conversion used by "nat mcp serve" by @willkill07 in #1133
- Async Chat fixes by @dagardner-nv in #1131
- Fix code concatenation issue with
code_execution_toolwhen using a Piston server by @dagardner-nv in #1154 - Fix documentation version switcher by @willkill07 in #1167
📝 Documentation Updates
- Misc Documentation Fixes by @dagardner-nv in #1136
- Document the need to install
nvidia-nat-testprior to usingToolTestRunnerby @dagardner-nv in #1150 - Update reasoning diagrams by @dagardner-nv in #1153
- Update Quick Start UI documentation by @ericevans-nv in #1156
- Add SECURITY.md document by @dagardner-nv in #1164
- docs: 1.3.1 changelog by @willkill07 in #1166
- Add
security-considerations.mddocument by @dagardner-nv in #1168
Other Changes
- [RELEASE] NeMo-Agent-Toolkit v1.3.1 by @willkill07 in #1169
New Contributors
- @antoniomtz made their first contribution in #1120
Full Changelog: v1.3.0...v1.3.1
v1.3.0
What's Changed
🚀 Notable Features and Improvements
- ADK Support: Supports Google Agent Development Kit (ADK). Adds tool calling, core observability, and LLM integration in this release.
- Control-Flow Agents: Sequential Executor (Linear Agent) and Router Agent now control flow patterns of tool calls and sub-agents.
- Function Groups: Packages multiple related functions together so they share configuration, context, and resources.
- Hyperparameter Agent Optimizer: Automates hyperparameter tuning and prompt engineering for workflows.
- Introductory Notebook Improvements: Reorganizes getting started notebooks and adds Open in Colab links.
- LLM Improvements
- Adds LiteLLM Provider
- Supports GPT-5 (
/chat/completionsendpoint only) - Adds Nemotron thinking configuration
- MCP Improvements
- Supports
streamable-http-sseis no longer the default transport type. - Supports initial authorization - Enables connecting to MCP servers that require authentication.
- Supports multiple MCP tools from a single configuration - Pulls in entire tool sets published by MCP servers or filters them based on user configuration.
- Enhances CLI utilities for MCP servers and clients - Improves the
nat mcpsub command for querying, calling, and listing tools.
- Supports
- Python 3.13 support
🚨 Breaking Changes
- Redis Configuration Changes in @willkill07 in #649
- MCP enhancements: improves server config and adds support for all transport types (stdio, streamable-http) by @AnuradhaKaruppiah in #718
- Move MCP client to a separate sub-package by @AnuradhaKaruppiah in #768
- Signature change for
BaseAgentby @yczhang-nv in #757 - Builtin GitHub tools switched to Function Groups by @willkill07 in #684
- Fix chat history support in tool_calling_agent by @gfreeman-nvidia in #837
- Change
nat mcpto a command group withserveandclientsubcommands by @zhongxuanwang-nv in #811 - Builder
get_*functions should be markedasyncby @willkill07 in #834 - MCP Client Auth Support (part-2) by @AnuradhaKaruppiah in #854
- ReWOO Agent Workflow Refactoring (Dependency DAG for async Executor). by @billxbf in #861
- Reduce phoenix dependencies by @willkill07 in #985
- Remove example with poor performance by @dagardner-nv in #1011
- Deprecate the
WeaveTelemetryExporter.entityfield by @dagardner-nv in #1016 - Syncing UI submodule to bring secure proxy server updates by @ericevans-nv in #1044
✨ New Features
- Add features
nat workflow createa versioned dependency anddataand symlinks folder by @zhongxuanwang-nv in #639 - Feature: Azure OpenAI LLM provider and client by @willkill07 in #643
- Timezone Support for
datetimeTool and Normalize Response Time Handling by @zhongxuanwang-nv in #660 - Feature: GPT-5 Support by @willkill07 in #664
- Customize Log Truncation in Config by @RohanAdwankar in #723
- feat: Support for Nemotron thinking configuration by @willkill07 in #717
- Track agent system prompt in config and add config to skip maintenance check by @hsin-c in #724
- Add
nvidia-nat-data-flywheelsubpackage with NeMo Data Flywheel integrations by @mpenn in #716 - Enhance
ProcessingExportersystem to support redaction of content in telemetry traces by @mpenn in #751 - feat: Python 3.13 support by @willkill07 in #761
- Add test LLM provider to support testing by @zhongxuanwang-nv in #764
- Support additional provider parameters in LLM and Embedder config by @YosiElias in #749
- Add return_direct option to tool_calling_agent for direct tool responses by @thepatrickchin in #775
- Enable MCP auth for NAT MCP clients by @AnuradhaKaruppiah in #752
- Add function group filtering by @willkill07 in #807
- Implement
Sequential Executortool by @yczhang-nv in #806 - Add a /debug route to NAT MCP frontend to expose MCP tools by @zhongxuanwang-nv in #813
- MCP OAuth2 Token Introspection Validator by @ericevans-nv in #809
- [Synopsys] Feature: Google ADK Integration by @saglave in #726
- Add a blueprint for Haystack Deep Research Agent by @oryx1729 in #461
- fix: re-add litellm after accidental removal by @willkill07 in #852
- Add
mcp/client/tool/listendpoint by @yczhang-nv in #853 - feat: LiteLLM support for LangChain/LangGraph, Agno, CrewAI, LlamaIndex by @willkill07 in #881
- Add configurable token storage to MCP auth by @yczhang-nv in #883
- feat: Improve the developer journey for example notebooks by @willkill07 in #912
- feat: Add .env loading support to NAT cli by @willkill07 in #952
- feat: make built-in agents input adaptable by @willkill07 in #959
- UI submodule update 1.3 by @ericevans-nv in #1002
- feat: switch to nemotron reasoning models by @willkill07 in #1036
🔧 Improvements
- Collapse the
docsdependency group into thedevdependencies group by @dagardner-nv in #591 - Forward-merge release/1.2 into develop by @dagardner-nv in #679
- Forward-merge release/1.2 into develop by @dagardner-nv in #690
- Weave: Group workflow traces under the parent evaluation call by @AnuradhaKaruppiah in #663
- Misc release script improvements by @dagardner-nv in #692
- Fix
pytestfixture deprecation warning by @willkill07 in #698 - Adopt ruff in CI by @dagardner-nv in #694
- Upload test results to codecov by @dagardner-nv in #699
- Add Coderabbit config by @dagardner-nv in #710
- Allow custom post-processing of EvalInput after the workflow is run by @AnuradhaKaruppiah in #701
- Adding a Needs Triage label to issues which are created externally by @mdemoret-nv in #700
- Add fixtures allowing e2e tests to be optionally skipped upon missing environment variables by @dagardner-nv in #720
- Enable running e2e tests for nightly CI by @dagardner-nv in #727
- Enable the forward merger plugin of the rapids ops bot by @dagardner-nv in #728
- Ensure error reporting and propagating in a consistent pattern by @yczhang-nv in #722
- Improve input normalization of
ReActagent by @yczhang-nv in #730 - Update version of numpy to be more recent by @zhongxuanwang-nv in #746
- chore: update LangChain and LangGraph versions by @Willki...
v1.2.1
📦 Overview
This is a documentation only release, there are no code changes in this release.
📜 Full Change Log
- Add a version switcher to the documentation builds by @dagardner-nv in #681
- Add link to GitHub repository from documentation by @dagardner-nv in #687
Full Changelog: v1.2.0...v1.2.1
v1.2.0
📦 Overview
The NeMo Agent toolkit, formerly known as Agent Intelligence (AIQ) toolkit, has been renamed to align with the NVIDIA NeMo family of products. This release brings significant new capabilities and improvements across authentication, resource management, observability, and developer experience. The toolkit continues to offer backwards compatibility, making the transition seamless for existing users.
While NeMo Agent Toolkit is designed to be compatible with the previous version, users are encouraged to update their code to follow the latest conventions and best practices. Migration instructions are provided in the migration guide.
🚨 Breaking Changes
- Remove outdated/unsupported devcontainer by @dagardner-nv in #626
- Rename
aiqnamespace tonatby @dagardner-nv in #618 - Update
AIQtoNATin documentation and comments by @yczhang-nv in #614 - Remove
AIQprefix from class and function names by @dagardner-nv in #606 - Rename aiqtoolkit packages to nvidia-nat by @dagardner-nv in #598
- Observability redesign to reduce dependencies and improve flexibility by @mpenn in #379
🚀 Notable Features and Improvements
- Authentication for Tool Calling: Implement robust authentication mechanisms that enable secure and configurable access management for tool invocation within agent workflows.
- Test Time Compute: Dynamically reallocate compute resources after model training, allowing agents to optimize reasoning, factual accuracy, and system robustness without retraining the base model.
- Sizing Calculator: Estimate GPU cluster requirements to support your target number of users and desired response times, simplifying deployment planning and scaling.
- Object Store Integration: Connect and manage data through supported object stores, improving agent extensibility and enabling advanced data workflows.
- Enhanced Cursor Rules: Build new workflows or extend existing ones by leveraging cursor rules, making agent development faster and more flexible.
- Interactive Notebooks: Access a suite of onboarding and example notebooks to accelerate agent workflow development, testing, and experimentation.
- Observability Refactor: Onboard new observability and monitoring platforms more easily, and take advantage of improved plug-in architecture for workflow inspection and analysis.
- Examples Reorganization: Organize examples by functionality, making it easier to find and use the examples.
📜 Full Change Log
- Use consistent casing for ReAct agent by @dagardner-nv in #293
- Update alert triage agent's prompt by @hsin-c in #297
- Move Wikipedia search to separate file by @jkornblum-nv in #237
- Release documentation fixes by @dagardner-nv in #300
- Add a
pyproject.tomltosimple_ragexample allowing for declared dependencies by @dagardner-nv in #284 - Update version in develop, in prep for the next release by @AnuradhaKaruppiah in #294
- Add field validation for the evaluate API by @dagardner-nv in #311
- Intermediate steps: evaluation fix by @titericz in #312
- Fix or silence warnings emitted by tests by @dagardner-nv in #305
- Add documentation for
load_workflow()by @yczhang-nv in #306 - Adding pytest-pretty for nice test outputs by @benomahony in #194
- feat(telemetry): add langfuse and langsmith telemetry exporters #233 by @briancaffey in #235
- Check links in markdown files by @dagardner-nv in #323
- Eval doc updates by @AnuradhaKaruppiah in #322
- Add unit tests for the alert triage agent example by @hsin-c in #252
- Add support for AWS Bedrock LLM Provider by @yczhang-nv in #238
- Add missing import in
load_workflowdocumentation by @yczhang-nv in #329 - propose another solution to problem[copy] by @LunaticMaestro in #298
- Support additional_instructions by @gfreeman-nvidia in #302
- Update installing.md by @manny-pi in #316
- Add an async version of the /generate endpoint by @dagardner-nv in #315
- Update trajectory eval documentation by @hsin-c in #338
- Rename test mode to offline mode by @hsin-c in #343
- Simplify offline mode with
aiq evalby @hsin-c in #344 - fix mcp client schema creation in flat lists by @slopp in #346
- Refactor for better prompt and tool description organization by @hsin-c in #350
- Extend
IntermediateStepto support tool schemas in tool calling LLM requests by @mpenn in #357 - Fix AttributeError bug for otel_telemetry_exporter by @ZhongxuanWang in #335
- Update
OpenAIModelConfigto supportstream_usageoption by @mdemoret-nv in #328 - Rename to NeMo Agent toolkit by @dagardner-nv in #359
- fix(phoenix): set project name when using phoenix telemetry exporter (#337) by @briancaffey in #347
- Account for the "required fields" list in the mcp_input_schema by @AnuradhaKaruppiah in #360
- Provide a config to pass the complete dataset entry as an EvalInputItem field to evaluators by @AnuradhaKaruppiah in #355
- Simplify custom evaluator definition by @AnuradhaKaruppiah in #358
- Add Patronus OTEL Exporter by @hersheybar in #341
- Expand Alert Triage Agent Offline Dataset by @hsin-c in #369
- Add Custom Classification Accuracy Evaluator for the Alert Triage Agent by @hsin-c in #373
- Add
Cursor rulesto improve Cursor support for development by @yczhang-nv in #319 - Added LLM retry logic to handle rate limiting LLM without frequent Exception by @liamy-nv in #368
- Fixes Function and LambdaFunction classes to push active function instance names by @mpenn in #374
- TunableRagEvaluator: Re-enable inheriting from the base abc by @AnuradhaKaruppiah in #375
- Add Job ID Appending to Output Directories and Maximum Folders Threshold by @ZhongxuanWang in #331
- Add support for custom functions in bottleneck analysis by @dnandakumar-nv in #380
- Persist chat conversation ID for workflow tool usage by @ericevans-nv in #326
- Add support for Weave evaluation by @ayulockin in #264
- Update the information displayed in the Weave Eval dashboard by @AnuradhaKaruppiah in #390
- Allow non-json string outputs for workflows that use unstructured datasets by @AnuradhaKaruppiah in #396
- Add aws region config for s3 eval uploads by @munjalp6 in #397
- add support for union types in mcp client by @cheese-head in #372
- Add percentile computation (p90, p95, p99) to profiling by @dnandakumar-nv in https://github.com/NVIDIA/NeMo-Agent-Toolkit/pull...
v1.1.0
Key Features
- Full Model Context Protocol (MCP) support. Workflows/tools can now be exposed as MCP servers.
- Deep integration with Weights and Biases’ Weave for logging and tracing support.
- Addition of the Agno LLM framework.
- A new ReWOO agent which improves on ReAct by removing the tool output from the LLM context, reducing token counts.
- A new Alert Triage Agent example which demonstrates how to build a full application with AIQ toolkit to automatically analyze system monitoring alerts, performs diagnostic checks using various tools, and generates structured triage reports with root cause categorization.
- Support for Python 3.11.
- Various quality of life improvements.
What's Changed
- Add subpackage readmes redirecting to the main package by @AnuradhaKaruppiah in #20
- Update README.md by @gzitzlsb-nv in #25
- Fix #27 Documentation fix by @atalhens in #28
- Fix #29 - Simple_calculator example throws error - list index out of range when given subtraction by @atalhens in #31
- Fix: #32 Recursion Issue by @atalhens in #33
- "Sharing NVIDIA AgentIQ Components" docs typo fix by @avoroshilov in #42
- First pass at setting up issue templates by @dagardner-nv in #6
- Provide a cleaner progress bar when running evaluators in parallel by @AnuradhaKaruppiah in #38
- Setup GHA CI by @dagardner-nv in #46
- Switch UI submodule to https by @AnuradhaKaruppiah in #53
- gitlab ci pipeline cleanup by @AnuradhaKaruppiah in #54
- Allow str or None for retriever description by @AnuradhaKaruppiah in #55
- Fix case where res['categories'] = None by @balvisio in #22
- Misc CI improvements by @dagardner-nv in #56
- CI Documentation improvements by @dagardner-nv in #24
- Add missing
platformdirsdependency by @yczhang-nv in #62 - Fix
aiqcommand error when the parent directory ofAIQ_CONFIG_DIRdoes not exist by @yczhang-nv in #63 - Fix broken image link in multi_frameworks documentation by @dagardner-nv in #61
- Updating doc string for AIQSessionManager class. by @ericevans-nv in #64
- Fix ragas evaluate unit tests by @AnuradhaKaruppiah in #68
- Normalize Gannt Chart Timestamps in Profiler Nested Stack Analysis by @dnandakumar-nv in #70
- Scripts for running CI locally by @dagardner-nv in #59
- Update types for
topicanddescriptionattributes inAIQRetrieverConfigto allowNoneby @dagardner-nv in #76 - Add support for customizing output and uploading it to remote storage (S3 bucket) by @AnuradhaKaruppiah in #71
- Support ARM in CI by @dagardner-nv in #73
- Allow overriding configuration values not set in the YAML by @dagardner-nv in #85
- Fix bug where
--workersflag was being ignored by @dagardner-nv in #88 - Adding Cors config for api server by @ericevans-nv in #89
- Update changelog for 1.1.0a1 alpha release by @AnuradhaKaruppiah in #90
- Merge develop to main for v1.1.0a1 by @AnuradhaKaruppiah in #92
- Updated changelog with another bug fix by @AnuradhaKaruppiah in #93
- Updated changelog with another bug fix (#93) by @AnuradhaKaruppiah in #94
- Adjust how the base_sha is passed into the workflow by @dagardner-nv in #81
- Changes for evaluating remote workflows by @AnuradhaKaruppiah in #57
- Fix a bug in our pytest plugin causing test coverage to be under-reported by @dagardner-nv in #105
- Docker container for AgentIQ by @dagardner-nv in #87
- Modify JSON serialization to handle non-serializable objects by @dnandakumar-nv in #106
- Upload nightly builds and release builds to pypi by @dagardner-nv in #112
- Ensure the nightly builds have a unique alpha version number by @dagardner-nv in #115
- Ensure tags are fetched prior to determining the version by @dagardner-nv in #116
- Fix CI variable value by @dagardner-nv in #117
- Use setuptools_scm environment variables to set the version by @dagardner-nv in #118
- Only set the setuptools_scm variable when performing a nightly build by @dagardner-nv in #119
- Add a release PR template by @dagardner-nv in #123
- Add an async /evaluate endpoint to trigger evaluation jobs on a remote cluster by @AnuradhaKaruppiah in #109
- Update /evaluate endpoint doc by @AnuradhaKaruppiah in #126
- Add function tracking decorator and update IntermediateStep by @dnandakumar-nv in #98
- Fix typo in aiq.profiler.decorators by @dnandakumar-nv in #132
- Update the start command to use
validate_schemaby @dagardner-nv in #82 - Document using local/self-hosted models by @dagardner-nv in #101
- added Agno integration by @wenqiglantz in #36
- MCP Front-End Implementation by @VictorYudin in #133
- Make kwargs optional to the eval output customizer scripts by @AnuradhaKaruppiah in #139
- Add an example that shows simple_calculator running with a MCP service. by @AnuradhaKaruppiah in #131
- add
gitdiagramto README by @yczhang-nv in #141 - Updating HITL reference guide to instruct users to toggle ws mode and… by @ericevans-nv in #142
- Add override option to the eval CLI command by @Hritik003 in #129
- Implement ReWOO Agent by @yczhang-nv in #75
- Fix type hints and docstrings for
ModelTrainerby @dagardner-nv in #107 - Delete workflow confirmation check in CLI - #114 by @atalhens in #137
- Improve Agent logging by @yczhang-nv in #136
- Add nicer error message for agents without tools by @jkornblum-nv in #146
- Add
coloramato core dependency by @yczhang-nv in #149 - Rename packages agentiq -> aiqtoolkit by @dagardner-nv in #152
- Rename AIQ_COMPONENT_NAME, remove unused COMPONENT_NAME by @dagardner-nv in #153
- Group wheels under a common
aiqtoolkitdirectory by @dagardner-nv in #154 - Fix wheel upload wildcards by @dagardner-nv in #155
- Support Python
3.11for AgentIQ by @yczhang-nv in #148 - fix pydantic version incompatibility, closes #74 by @zac-wang-nv in #159
- Rename AgentIQ to Agent Intelligence Toolkit by @dagardner-nv in #160
- Create config file symlink with
aiq workflow createcommand by @mpenn in #166 - Rename generate/stream/full to generate/full and add filter_steps parameter by @AnuradhaKaruppiah in #164
- Add support for environment variable interpolation in config files by @mpenn in #157
- UI submodule rename by @AnuradhaKaruppiah in #168
- Consistent Trace Nesting in Parallel Function Calling by @dnandakumar-nv in #162
- Fix broken links in examples documentation by @dagardner-nv in #177
- Remove support for Python
3.13by @yczhang-nv in htt...
Version 1.0.0
Initial Release of NVIDIA AgentIQ
v1.0.0-rc8
Release Candidate 8 of the 1.0.0 release.
Full Changelog: https://github.com/NVIDIA/AgentIQ/commits/v1.0.0-rc8