The NVIDIA NeMo Agent toolkit is an open-source library for efficiently connecting and optimizing teams of AI agents.
NVIDIA NeMo Agent Toolkit
New Features
AI Coding Agent Skills: Use focused NeMo Agent Toolkit skills to give coding agents task-specific guidance for building, evaluating, optimizing, and observing workflows.
Dynamo Runtime Intelligence:(experimental) Automatically infer per-request latency sensitivity from agent profiles and apply runtime hints for cache control, load-aware routing, and priority-aware serving.
Agent Performance Primitives (APP): Introduce framework-agnostic performance primitives that accelerate graph-based agent frameworks such as LangChain, CrewAI, and Agno with parallel execution, speculative branching, and node-level priority routing.
Public Plugin API for Third-Party Tools: Build provider-managed integrations against the public NeMo Agent Toolkit plugin API instead of framework-specific internal packages. Thank you to the maintainers of externally managed plugins including NeMo-Agent-Toolkit-Tavily, NeMo-Agent-Toolkit-Redis, and NeMo-Agent-Toolkit-ATR. This new workflow is intended to help third-party package maintainers bring their integrations into NeMo Agent Toolkit workflows more quickly. Note that these third-party packages are managed outside the NeMo Agent Toolkit repository and may release, change, or run CI on schedules independent of NeMo Agent Toolkit.
LangSmith Native Integration: Observe end-to-end agent execution with native LangSmith tracing, run evaluation experiments, compare outcomes, and manage prompt versions across development and production workflows.
FastMCP Workflow Publishing: Publish NeMo Agent Toolkit workflows as MCP servers using the FastMCP server runtime to simplify MCP-native deployment and integration.
Migration notice:1.5.0 simplifies package installation and dependency management. See the Migration Guide.
✨ Key Features
️ Building Agents: Accelerate your agent development with tools that make it easier to get your agent into production.
Framework Agnostic: Work side-by-side with agentic frameworks to add the instrumentation necessary for observing, profiling, and optimizing your agents. Use the toolkit with popular frameworks such as LangChain, LlamaIndex, CrewAI, Microsoft Semantic Kernel, and Google ADK, as well as custom enterprise agentic frameworks and simple Python agents.
Reusability: Build components once and use them multiple times to maximize the value from development effort.
⚡ Customization: Start with a pre-built agent, tool, or workflow, and customize it to your needs.
Built-In User Interface: Use the NeMo Agent Toolkit UI chat interface to interact with your agents, visualize output, and debug workflows.
Agent Insights: Utilize NeMo Agent Toolkit instrumentation to better understand how your agents function at runtime.
Profiling: Profile entire workflows from the agent level all the way down to individual tokens to identify bottlenecks, analyze token efficiency, and guide developers in optimizing their agents.
Observability: Track performance, trace execution flows, and gain insights into your agent behaviors in production.
Agent Optimization: Improve your agent's quality, accuracy, and performance with a suite of tools for all phases of the agent lifecycle.
Evaluation System: Validate and maintain accuracy of agentic workflows with a suite of tools for offline evaluation.
Hyper-Parameter and Prompt Optimizer: Automatically identify the best configuration and prompts to ensure you are getting the most out of your agent.
Fine-tuning with Reinforcement Learning: Fine-tune LLMs specifically for your agent and train intrinsic information about your workflow directly into the model.
⚡ NVIDIA Dynamo Integration:(experimental) Use Dynamo and NeMo Agent Toolkit together to improve agent performance at scale.
⚙️ Agent Performance Primitives (APP): Accelerate graph-based agent frameworks such as LangChain, CrewAI, and Agno with parallel execution, speculative branching, and node-level priority routing.
Protocol Support: Integrate with common protocols used to build agents.
With NeMo Agent Toolkit, you can move quickly, experiment freely, and ensure reliability across all your agent-driven projects.
Installation
Before you begin using NeMo Agent Toolkit, ensure that you have Python 3.11, 3.12, or 3.13 installed on your system.
[!NOTE]
For users who want to run the examples, it's required to clone the repository and install from source to get the necessary files required to run the examples. Please refer to the Examples documentation for more information.
To install the latest stable version of NeMo Agent Toolkit from PyPI, run the following command:
bash
pip install nvidia-nat
NeMo Agent Toolkit has many optional dependencies that can be installed with the core package. Optional dependencies are grouped by framework. For example, to install the LangChain/LangGraph plugin, run the following:
bash
pip install "nvidia-nat[langchain]"
Detailed installation instructions, including the full list of optional dependencies and their conflicts, can be found in the Installation Guide.
Hello World Example
Before getting started, it's possible to run this simple workflow and many other examples in Google Colab with no setup. Click here to open the introduction notebook: .
Ensure you have set the NVIDIA_API_KEY environment variable to allow the example to use NVIDIA NIMs. An API key can be obtained by visiting build.nvidia.com and creating an account.
bash
export NVIDIA_API_KEY=<your_api_key>
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:
…
Run the Hello World example using the nat CLI and the workflow.yml file.
bash
nat run --config_file workflow.yml --input "List five subspecies of Aardvarks"
This will run the workflow and output the results to the console.
bash
Workflow Result:
['Here are five subspecies of Aardvarks:\n\n1. Orycteropus afer afer (Southern aardvark)\n2. O. a. adametzi Grote, 1921 (Western aardvark)\n3. O. a. aethiopicus Sundevall, 1843\n4. O. a. angolensis Zukowsky & Haltenorth, 1957\n5. O. a. erikssoni Lönnberg, 1906']
Additional Resources
Documentation: Explore the full documentation for NeMo Agent Toolkit.
Get Started Guide: Set up your environment and start building with NeMo Agent Toolkit.
Contributing: Learn how to contribute to NeMo Agent Toolkit and set up your development environment.
Examples: Explore examples of NeMo Agent Toolkit workflows located in the examples directory of the source repository.
Automatic Reinforcement Learning (RL) to fine-tune LLMs for a specific agent.
Integration with NVIDIA Dynamo to reduce LLM latency at scale.
Improve agent throughput with KV-Cache optimization.
Improved, standalone evaluation harness and migration to ATIF for trajectory format.
Support for additional programming languages (TypeScript, Rust, Go, WASM) with compiled libraries.
Phasing out wrapping architecture to ease onboarding for more agents.
Support for adding skills and sandboxes to existing agents.
MCP authentication improvements.
Improved memory interface to support self-improving agents.
Telemetry
The NeMo Agent Toolkit includes runtime telemetry hooks for the nat command-line tool to help guide improvements. Telemetry is best-effort and never blocks or fails a CLI invocation. Once you opt in (see below), events are sent to the shared NeMo Usage Telemetry ingest.
How consent works
The first time you run an interactive nat command, you'll see a one-time consent prompt explaining what is collected and asking whether to allow it. The prompt defaults to yes (pressing Enter accepts); type n to opt out. Your decision is persisted to ~/.config/nat/telemetry.toml and respected on every subsequent invocation.
In non-interactive contexts (CI, cron, piped scripts, daemons), telemetry is always off unless you explicitly enable it via the environment variable below. We never send data when there's no opportunity to ask.
You can change your decision anytime:
bash
nat configure telemetry --enable# opt in
nat configure telemetry --disable# opt out
nat configure telemetry --status # show the current effective state
Or override the persisted decision (and skip the prompt) via environment variable:
bash
export NAT_TELEMETRY_ENABLED=false# disable for this shell sessionexport NAT_TELEMETRY_ENABLED=true# enable for this shell session
The environment variable takes precedence over the persisted file. If both disagree, nat configure telemetry --status will tell you which one is winning.