The AI-Q NVIDIA Blueprint is an open reference example for building intelligent AI agents that connect to your enterprise data, reason using state-of-the-art models, and deliver trusted business insights.
860
stars
342
commits
Python
primary language
Sep 2, 2026
updated
🏆 BENCHMARK NOTE 🏆
To obtain results consistent with the nvidia-aiq DeepResearch Bench leaderboard and DeepResearch Bench II benchmark repository results, please use the
drb1anddrb2branches, respectively.
The NVIDIA AI-Q Blueprint is a deployable research backend built on the NVIDIA NeMo Agent Toolkit and LangChain Deep Agents. Teams can self-host the application boundary and connect deployment-owned models, data sources, authentication, policy controls, storage, and observability. It provides both quick, cited answers and in-depth, report-style research, plus benchmarks and evaluation harnesses for measuring quality. AI-Q is focused on governed research workflows; it is not a general-purpose coding-agent harness.
Key features:
aiq-deploy selects, starts, and validates an AI-Q deployment; aiq-research calls routed chat and async research from compatible coding harnesses.Recent changes include:
aiq-deploy skill, expanded aiq-research workflows, opt-in artifact capture, SQL or
S3-compatible storage, and live or replayed Files-tab access turn generated files into durable
outputs.AI-Q v2.2.0 is published on NVIDIA NGC as the
aiq-agent backend container,
aiq-frontend web container,
and aiq2-web Helm chart.
Each artifact uses version 2.2.0.
See the changelog for detailed release history; the linked feature docs describe configuration and current limitations.
The checked-in default CLI and web profiles use these core components:
Known hosted-serving limitation: Nemotron 3.5 Lightning can intermittently produce citation-incomplete or malformed shallow drafts when served through NVIDIA API Catalog. AI-Q fails closed instead of publishing those drafts. The Brev getting-started launchable uses Nemotron Ultra for shallow research; the general-purpose shipped profiles retain Lightning. See Troubleshooting for details and the self-hosted Lightning option.
The shipped frontier profile, configs/config_frontier_models.yml, uses GPT-5.6 Luna for intent classification,
shallow research, source routing, and deep-research execution, with GPT-5.6 Sol for clarification, orchestration,
planning, and writing. Treat any bring-your-own model or modified profile as an experimental customization until the
complete workflow is evaluated with that exact model, prompt, hyperparameter, tool-calling, and structured-output
configuration. Refer to
Configuration Files; there is no single all-features profile.
This project is for:
Optional requirements:
SERPER_API_KEY), SerpAPI (SERPAPI_API_KEY), or SearchAPI (SEARCHAPI_API_KEY)Note: Configure at least one data source (web search, paper search, or knowledge layer) to enable research functionality.
If these optional API keys are not provided, the agent continues to operate without the corresponding search capabilities. Refer to Obtain API Keys for details.
When using NVIDIA API Catalog (the default), inference runs on NVIDIA-hosted infrastructure and there are no local GPU requirements. The hardware references below apply only when self-hosting models via NVIDIA NIM.
| Component | Default Model | Self-Hosted Hardware Reference |
|---|---|---|
| LLM (intent classifier, shallow researcher) | nvidia/nemotron-3.5-lightning-30b-a3b | Nemotron 3.5 Lightning |
| LLM (clarifier and all deep-research roles) | nvidia/nemotron-3-ultra-550b-a55b | Nemotron 3 Ultra |
| Document summary (optional) | google/gemma-4-31b-it | Gemma 4 31B IT |
| Text embedding | nvidia/nemotron-3-embed-1b | NeMo Retriever embedding support matrix |
| VLM (image/chart extraction, optional) | nvidia/nemotron-3-nano-omni-30b-a3b-reasoning | Nemotron 3 Nano Omni |
| Knowledge layer (Foundational RAG, optional) | -- | RAG Blueprint support matrix |
For detailed installation instructions, refer to Installation -- Hardware Requirements.
AI-Q uses a LangGraph-based state machine with the following key components:
Each agent can be run individually or as part of the orchestrated workflow. For detailed architecture documentation, refer to Architecture.
git clone https://github.com/NVIDIA-AI-Blueprints/aiq.git && cd aiq
Run the setup script to initialize the environment:
./scripts/setup.sh
This script:
For selective installation, install packages individually:
# Create and activate virtual environment
uv venv --python 3.13 .venv
source .venv/bin/activate
# Install core with development dependencies
uv pip install -e ".[dev]"
# Install frontends (pick what you need)
uv pip install -e ./frontends/cli # CLI frontend
uv pip install -e ./frontends/debug # Debug console
uv pip install -e ./frontends/aiq_api # Unified API (includes debug)
# Install benchmarks (pick what you need)
uv pip install -e ./frontends/benchmarks/freshqa
# Install data sources (pick what you need)
uv pip install -e ./sources/tavily_web_search
uv pip install -e ./sources/exa_web_search
uv pip install -e ./sources/google_scholar_paper_search
uv pip install -e ./sources/nimble_web_search
uv pip install -e ./sources/you_com
uv pip install -e "./sources/knowledge_layer[llamaindex,foundational_rag]"
| API | Environment Variable | Purpose | Required |
|---|---|---|---|
| NVIDIA API | NVIDIA_API_KEY | LLM inference through NIM | Yes |
| Tavily | TAVILY_API_KEY | Web search | No (if not specified, agent continues without web search) |
| Exa | EXA_API_KEY | Web search | No (required only when Exa search is configured) |
| Nimble | NIMBLE_API_KEY | Configurable web search | No (required only when Nimble search is configured) |
| You.com | YDC_API_KEY | Web, contents, and research APIs | No (required only when You.com tools are configured) |
| Paper search | SERPER_API_KEY, SERPAPI_API_KEY, or SEARCHAPI_API_KEY | Academic paper search | No (choose one matching the configured provider) |
deploy/.env as EXA_API_KEYRefer to the exa_web_search section in the
Configuration Reference for workflow usage.
Follow the You.com quickstart to create an API key and add it to deploy/.env as
YDC_API_KEY. Refer to You.com API Suite for tool configuration.
Paper search supports three interchangeable providers. Set the provider field on the paper_search function in your workflow config (defaults to serper):
| Provider | Environment Variable | Sign-up |
|---|---|---|
| Serper (default) | SERPER_API_KEY | serper.dev |
| SerpAPI | SERPAPI_API_KEY | serpapi.com |
| SearchAPI | SEARCHAPI_API_KEY | searchapi.io |
Refer to sources/google_scholar_paper_search/README.md for configuration details.
Create a .env file in deploy/ directory:
cp deploy/.env.example deploy/.env
Replace your API keys.
Note: Depending on your usecase, deep research report quality can be enhanced by enabling searching across academic research papers. We use Serper for this. If you want to use paper search, follow the steps in the Customization guide to enable it.
The configs/ directory holds YAML workflow configs that define agents, tools, LLMs, and routing. Use the one that matches your run mode and data sources:
| Config | Models | Description |
|---|---|---|
config_cli_default.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | CLI chat pipeline with Tavily and clarification; no knowledge backend. Paper search is a commented opt-in. |
config_web_default_llamaindex.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | Default web/API chat pipeline with LlamaIndex/ChromaDB and Tavily. Paper search is commented out. |
config_web_frag.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Web/API and Helm base with Foundational RAG plus Tavily. Requires separately deployed RAG query and ingestion services. |
config_web_opensearch.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Nemotron 3 Embed | Web/API with built-in OpenSearch knowledge retrieval plus Tavily; supports self-hosted, es, and aoss authentication modes. |
config_web_azure_ai_search.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Nemotron 3 Embed | Web/API with Azure AI Search knowledge retrieval plus Tavily; supports API-key and Azure identity authentication. |
config_frontier_models.yml | GPT Sol/Luna; Gemma 4 summary | LlamaIndex frontier profile using GPT Luna for intent, shallow research, source routing, and research, with GPT Sol for clarification, orchestration, planning, and writing. Requires OPENAI_API_KEY, NVIDIA_API_KEY, and TAVILY_API_KEY for the enabled Tavily tools. |
config_web_default_guardrails.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | LlamaIndex profile with workflow Guardrails explicitly attached, shallow-agent Guardrails dynamically attached through workflow_functions, and async deep-agent Guardrails applied by the AI-Q runner from the same target configuration. |
config_web_frag_mcp_auth.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Foundational RAG plus an opt-in protected per-user OAuth MCP source example. Requires a real MCP endpoint and shared token store. |
config_domain_routing_and_skills.yml | Nemotron 3 Ultra; Gemma 4 summary | Direct deep-research profile with domain routing, DuckDuckGo news, Polymarket, enabled Serper paper search, LlamaIndex, built-in skills, and a fresh per-job Modal sandbox. |
config_openshell.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | Experimental web/API skills profile with artifact capture, fail-closed policy attestation, and one OpenShell sandbox per deep-research job. |
config_mcp.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Standalone MCP server. Public NIM + Tavily research with PostgreSQL-backed stateless submit/poll/report. Requires NVIDIA_API_KEY, TAVILY_API_KEY, and AIQ_CHECKPOINT_DB. |
The frontends/ directory contains different interfaces for interacting with the agents. You can also run agents directly through the NeMo Agent Toolkit CLI.
The CLI provides an interactive research assistant in your terminal:
# Activate the virtual environment
source .venv/bin/activate
# Run with the convenience script
./scripts/start_cli.sh
# Verbose logging
./scripts/start_cli.sh --verbose
# Or run directly with the NeMo Agent Toolkit CLI (dotenv loads deploy/.env into the environment)
dotenv -f deploy/.env run nat run --config_file configs/config_cli_default.yml --input "How do I install CUDA?"
The CLI frontend source is in frontends/cli/.
For a full web-based experience:
./scripts/start_e2e.sh
This starts:
http://localhost:8000http://localhost:3000The web UI source is in frontends/ui/. Refer to frontends/ui/README.md for more details.
You can also run the backend and UI with Docker Compose:
cd deploy/compose
# No-auth local setup (LlamaIndex default)
docker compose --env-file ../.env -f docker-compose.yaml up -d --build
# To select a different backend config, set BACKEND_CONFIG in deploy/.env, for example:
# BACKEND_CONFIG=/app/configs/config_web_frag.yml
For more details, refer to:
deploy/compose/README.mdFor public endpoints, SSE replay, report follow-up, and durable artifact access, refer to the REST API documentation.
Expose AI-Q to MCP clients through the standalone, stateless Streamable HTTP server:
: "${NVIDIA_API_KEY:?Set NVIDIA_API_KEY}"
: "${TAVILY_API_KEY:?Set TAVILY_API_KEY}"
uv sync --project mcp --frozen
AIQ_CHECKPOINT_DB=postgresql://localhost/aiq_jobs \
uv run --project mcp --frozen aiq-mcp-server
The endpoint defaults to http://localhost:9001/mcp and advertises exactly submit_query, poll_query, and
get_final_report. This public server intentionally has no authentication; job UUIDs are bearer capabilities and
the endpoint must not be exposed directly to an untrusted network. See Expose AI-Q as an MCP Server
for the exact JSON protocol, health contracts, security model, and container deployment.
MCP is an independent uv project with its own mcp/uv.lock. The root lock remains compatible with NAT's
cryptography<47 constraint, while the frozen MCP release/container profile pins cryptography==50.0.0 as a
security hardening measure. The release-supported platform is Linux x86_64 with CPython 3.13, through either the
frozen source project or the release container. Other 64-bit source hosts are development-only; x86_64 macOS and
32-bit Windows are unsupported because cryptography 50 does not publish those wheels. Run the release container
on a supported 64-bit Linux/container host. The MCP package's local path dependency closure is not published as a
standalone wheel. See the
MCP security policy for the full platform contract.
To run agents in evaluation mode, refer to the Evaluating the Workflow section.
The docs/notebooks/ directory contains a three-part series that walks through the blueprint from first run to full customization. Run them in order:
| # | Notebook | What it covers | Prerequisites |
|---|---|---|---|
| 0 | Getting Started with AI-Q | Full blueprint overview — environment setup, orchestrated workflow (intent routing, shallow and deep research), and Docker Compose deployment | NVIDIA_API_KEY; optionally TAVILY_API_KEY, SERPER_API_KEY |
| 1 | Deep Researcher — Web Search | Deep researcher in depth — Python API, nat run, and end-to-end evaluation against the DeepResearch Bench with nat eval | Notebook 0 completed; NVIDIA_API_KEY, TAVILY_API_KEY, SERPER_API_KEY; OpenAI or Gemini key for the judge model |
| 2 | Deep Researcher — Customization | Extending the deep researcher — adding paper search, assigning different LLMs per agent role, editing prompts, and enabling the knowledge layer | Notebooks 0 and 1 completed; NVIDIA_API_KEY, TAVILY_API_KEY, SERPER_API_KEY |
The frontends/benchmarks/ directory contains evaluation pipelines for assessing agent performance.
| Benchmark | Description | Location |
|---|---|---|
| Deep Research Bench | RACE and FACT evaluation for research quality | frontends/benchmarks/deepresearch_bench/ |
| FreshQA | Factuality evaluation on time-sensitive questions | frontends/benchmarks/freshqa/ |
The dataset files are not included in the repository. We have included a script to retrieve them from the Deep Research Bench Github Repository and format them for the NeMo Agent Toolkit evaluator.
To download the dataset files, run the following script:
python frontends/benchmarks/deepresearch_bench/scripts/download_drb_dataset.py
dotenv -f deploy/.env run nat eval --config_file frontends/benchmarks/deepresearch_bench/configs/config_deep_research_bench.yml
python frontends/benchmarks/deepresearch_bench/scripts/export_drb_jsonl.py --input <path to your workflow_output.json> --output <path to the output file you want to create with .jsonl extension>
Follow instructions in the Deep Research Bench Github Repository to run evaluation and obtain scores.
If your config enables Phoenix tracing, start the Phoenix server before running nat eval.
Start server (separate terminal):
uvx --from arize-phoenix phoenix serve
For detailed benchmark documentation, refer to:
For development, contribution, and documentation, refer to:
The checkboxes below track implementation in the current branch; a checked item does not by itself indicate availability in a published release.
This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use, found in LICENSE-THIRD-PARTY.
GOVERNING TERMS: AIQ blueprint software and materials are governed by the Apache License, Version 2.0
(top 30 of 35)
Python
65.3%
TypeScript
25.8%
CSS
4.6%
HTML
1.6%
Jinja
1.1%
Shell
1.0%
The AI-Q NVIDIA Blueprint is an open reference example for building intelligent AI agents that connect to your enterprise data, reason using state-of-the-art models, and deliver trusted business insights.
860
stars
342
commits
Python
primary language
Sep 2, 2026
updated
🏆 BENCHMARK NOTE 🏆
To obtain results consistent with the nvidia-aiq DeepResearch Bench leaderboard and DeepResearch Bench II benchmark repository results, please use the
drb1anddrb2branches, respectively.
The NVIDIA AI-Q Blueprint is a deployable research backend built on the NVIDIA NeMo Agent Toolkit and LangChain Deep Agents. Teams can self-host the application boundary and connect deployment-owned models, data sources, authentication, policy controls, storage, and observability. It provides both quick, cited answers and in-depth, report-style research, plus benchmarks and evaluation harnesses for measuring quality. AI-Q is focused on governed research workflows; it is not a general-purpose coding-agent harness.
Key features:
aiq-deploy selects, starts, and validates an AI-Q deployment; aiq-research calls routed chat and async research from compatible coding harnesses.Recent changes include:
aiq-deploy skill, expanded aiq-research workflows, opt-in artifact capture, SQL or
S3-compatible storage, and live or replayed Files-tab access turn generated files into durable
outputs.AI-Q v2.2.0 is published on NVIDIA NGC as the
aiq-agent backend container,
aiq-frontend web container,
and aiq2-web Helm chart.
Each artifact uses version 2.2.0.
See the changelog for detailed release history; the linked feature docs describe configuration and current limitations.
The checked-in default CLI and web profiles use these core components:
Known hosted-serving limitation: Nemotron 3.5 Lightning can intermittently produce citation-incomplete or malformed shallow drafts when served through NVIDIA API Catalog. AI-Q fails closed instead of publishing those drafts. The Brev getting-started launchable uses Nemotron Ultra for shallow research; the general-purpose shipped profiles retain Lightning. See Troubleshooting for details and the self-hosted Lightning option.
The shipped frontier profile, configs/config_frontier_models.yml, uses GPT-5.6 Luna for intent classification,
shallow research, source routing, and deep-research execution, with GPT-5.6 Sol for clarification, orchestration,
planning, and writing. Treat any bring-your-own model or modified profile as an experimental customization until the
complete workflow is evaluated with that exact model, prompt, hyperparameter, tool-calling, and structured-output
configuration. Refer to
Configuration Files; there is no single all-features profile.
This project is for:
Optional requirements:
SERPER_API_KEY), SerpAPI (SERPAPI_API_KEY), or SearchAPI (SEARCHAPI_API_KEY)Note: Configure at least one data source (web search, paper search, or knowledge layer) to enable research functionality.
If these optional API keys are not provided, the agent continues to operate without the corresponding search capabilities. Refer to Obtain API Keys for details.
When using NVIDIA API Catalog (the default), inference runs on NVIDIA-hosted infrastructure and there are no local GPU requirements. The hardware references below apply only when self-hosting models via NVIDIA NIM.
| Component | Default Model | Self-Hosted Hardware Reference |
|---|---|---|
| LLM (intent classifier, shallow researcher) | nvidia/nemotron-3.5-lightning-30b-a3b | Nemotron 3.5 Lightning |
| LLM (clarifier and all deep-research roles) | nvidia/nemotron-3-ultra-550b-a55b | Nemotron 3 Ultra |
| Document summary (optional) | google/gemma-4-31b-it | Gemma 4 31B IT |
| Text embedding | nvidia/nemotron-3-embed-1b | NeMo Retriever embedding support matrix |
| VLM (image/chart extraction, optional) | nvidia/nemotron-3-nano-omni-30b-a3b-reasoning | Nemotron 3 Nano Omni |
| Knowledge layer (Foundational RAG, optional) | -- | RAG Blueprint support matrix |
For detailed installation instructions, refer to Installation -- Hardware Requirements.
AI-Q uses a LangGraph-based state machine with the following key components:
Each agent can be run individually or as part of the orchestrated workflow. For detailed architecture documentation, refer to Architecture.
git clone https://github.com/NVIDIA-AI-Blueprints/aiq.git && cd aiq
Run the setup script to initialize the environment:
./scripts/setup.sh
This script:
For selective installation, install packages individually:
# Create and activate virtual environment
uv venv --python 3.13 .venv
source .venv/bin/activate
# Install core with development dependencies
uv pip install -e ".[dev]"
# Install frontends (pick what you need)
uv pip install -e ./frontends/cli # CLI frontend
uv pip install -e ./frontends/debug # Debug console
uv pip install -e ./frontends/aiq_api # Unified API (includes debug)
# Install benchmarks (pick what you need)
uv pip install -e ./frontends/benchmarks/freshqa
# Install data sources (pick what you need)
uv pip install -e ./sources/tavily_web_search
uv pip install -e ./sources/exa_web_search
uv pip install -e ./sources/google_scholar_paper_search
uv pip install -e ./sources/nimble_web_search
uv pip install -e ./sources/you_com
uv pip install -e "./sources/knowledge_layer[llamaindex,foundational_rag]"
| API | Environment Variable | Purpose | Required |
|---|---|---|---|
| NVIDIA API | NVIDIA_API_KEY | LLM inference through NIM | Yes |
| Tavily | TAVILY_API_KEY | Web search | No (if not specified, agent continues without web search) |
| Exa | EXA_API_KEY | Web search | No (required only when Exa search is configured) |
| Nimble | NIMBLE_API_KEY | Configurable web search | No (required only when Nimble search is configured) |
| You.com | YDC_API_KEY | Web, contents, and research APIs | No (required only when You.com tools are configured) |
| Paper search | SERPER_API_KEY, SERPAPI_API_KEY, or SEARCHAPI_API_KEY | Academic paper search | No (choose one matching the configured provider) |
deploy/.env as EXA_API_KEYRefer to the exa_web_search section in the
Configuration Reference for workflow usage.
Follow the You.com quickstart to create an API key and add it to deploy/.env as
YDC_API_KEY. Refer to You.com API Suite for tool configuration.
Paper search supports three interchangeable providers. Set the provider field on the paper_search function in your workflow config (defaults to serper):
| Provider | Environment Variable | Sign-up |
|---|---|---|
| Serper (default) | SERPER_API_KEY | serper.dev |
| SerpAPI | SERPAPI_API_KEY | serpapi.com |
| SearchAPI | SEARCHAPI_API_KEY | searchapi.io |
Refer to sources/google_scholar_paper_search/README.md for configuration details.
Create a .env file in deploy/ directory:
cp deploy/.env.example deploy/.env
Replace your API keys.
Note: Depending on your usecase, deep research report quality can be enhanced by enabling searching across academic research papers. We use Serper for this. If you want to use paper search, follow the steps in the Customization guide to enable it.
The configs/ directory holds YAML workflow configs that define agents, tools, LLMs, and routing. Use the one that matches your run mode and data sources:
| Config | Models | Description |
|---|---|---|
config_cli_default.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | CLI chat pipeline with Tavily and clarification; no knowledge backend. Paper search is a commented opt-in. |
config_web_default_llamaindex.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | Default web/API chat pipeline with LlamaIndex/ChromaDB and Tavily. Paper search is commented out. |
config_web_frag.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Web/API and Helm base with Foundational RAG plus Tavily. Requires separately deployed RAG query and ingestion services. |
config_web_opensearch.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Nemotron 3 Embed | Web/API with built-in OpenSearch knowledge retrieval plus Tavily; supports self-hosted, es, and aoss authentication modes. |
config_web_azure_ai_search.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Nemotron 3 Embed | Web/API with Azure AI Search knowledge retrieval plus Tavily; supports API-key and Azure identity authentication. |
config_frontier_models.yml | GPT Sol/Luna; Gemma 4 summary | LlamaIndex frontier profile using GPT Luna for intent, shallow research, source routing, and research, with GPT Sol for clarification, orchestration, planning, and writing. Requires OPENAI_API_KEY, NVIDIA_API_KEY, and TAVILY_API_KEY for the enabled Tavily tools. |
config_web_default_guardrails.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | LlamaIndex profile with workflow Guardrails explicitly attached, shallow-agent Guardrails dynamically attached through workflow_functions, and async deep-agent Guardrails applied by the AI-Q runner from the same target configuration. |
config_web_frag_mcp_auth.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Foundational RAG plus an opt-in protected per-user OAuth MCP source example. Requires a real MCP endpoint and shared token store. |
config_domain_routing_and_skills.yml | Nemotron 3 Ultra; Gemma 4 summary | Direct deep-research profile with domain routing, DuckDuckGo news, Polymarket, enabled Serper paper search, LlamaIndex, built-in skills, and a fresh per-job Modal sandbox. |
config_openshell.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra; Gemma 4 summary | Experimental web/API skills profile with artifact capture, fail-closed policy attestation, and one OpenShell sandbox per deep-research job. |
config_mcp.yml | Nemotron 3.5 Lightning; Nemotron 3 Ultra | Standalone MCP server. Public NIM + Tavily research with PostgreSQL-backed stateless submit/poll/report. Requires NVIDIA_API_KEY, TAVILY_API_KEY, and AIQ_CHECKPOINT_DB. |
The frontends/ directory contains different interfaces for interacting with the agents. You can also run agents directly through the NeMo Agent Toolkit CLI.
The CLI provides an interactive research assistant in your terminal:
# Activate the virtual environment
source .venv/bin/activate
# Run with the convenience script
./scripts/start_cli.sh
# Verbose logging
./scripts/start_cli.sh --verbose
# Or run directly with the NeMo Agent Toolkit CLI (dotenv loads deploy/.env into the environment)
dotenv -f deploy/.env run nat run --config_file configs/config_cli_default.yml --input "How do I install CUDA?"
The CLI frontend source is in frontends/cli/.
For a full web-based experience:
./scripts/start_e2e.sh
This starts:
http://localhost:8000http://localhost:3000The web UI source is in frontends/ui/. Refer to frontends/ui/README.md for more details.
You can also run the backend and UI with Docker Compose:
cd deploy/compose
# No-auth local setup (LlamaIndex default)
docker compose --env-file ../.env -f docker-compose.yaml up -d --build
# To select a different backend config, set BACKEND_CONFIG in deploy/.env, for example:
# BACKEND_CONFIG=/app/configs/config_web_frag.yml
For more details, refer to:
deploy/compose/README.mdFor public endpoints, SSE replay, report follow-up, and durable artifact access, refer to the REST API documentation.
Expose AI-Q to MCP clients through the standalone, stateless Streamable HTTP server:
: "${NVIDIA_API_KEY:?Set NVIDIA_API_KEY}"
: "${TAVILY_API_KEY:?Set TAVILY_API_KEY}"
uv sync --project mcp --frozen
AIQ_CHECKPOINT_DB=postgresql://localhost/aiq_jobs \
uv run --project mcp --frozen aiq-mcp-server
The endpoint defaults to http://localhost:9001/mcp and advertises exactly submit_query, poll_query, and
get_final_report. This public server intentionally has no authentication; job UUIDs are bearer capabilities and
the endpoint must not be exposed directly to an untrusted network. See Expose AI-Q as an MCP Server
for the exact JSON protocol, health contracts, security model, and container deployment.
MCP is an independent uv project with its own mcp/uv.lock. The root lock remains compatible with NAT's
cryptography<47 constraint, while the frozen MCP release/container profile pins cryptography==50.0.0 as a
security hardening measure. The release-supported platform is Linux x86_64 with CPython 3.13, through either the
frozen source project or the release container. Other 64-bit source hosts are development-only; x86_64 macOS and
32-bit Windows are unsupported because cryptography 50 does not publish those wheels. Run the release container
on a supported 64-bit Linux/container host. The MCP package's local path dependency closure is not published as a
standalone wheel. See the
MCP security policy for the full platform contract.
To run agents in evaluation mode, refer to the Evaluating the Workflow section.
The docs/notebooks/ directory contains a three-part series that walks through the blueprint from first run to full customization. Run them in order:
| # | Notebook | What it covers | Prerequisites |
|---|---|---|---|
| 0 | Getting Started with AI-Q | Full blueprint overview — environment setup, orchestrated workflow (intent routing, shallow and deep research), and Docker Compose deployment | NVIDIA_API_KEY; optionally TAVILY_API_KEY, SERPER_API_KEY |
| 1 | Deep Researcher — Web Search | Deep researcher in depth — Python API, nat run, and end-to-end evaluation against the DeepResearch Bench with nat eval | Notebook 0 completed; NVIDIA_API_KEY, TAVILY_API_KEY, SERPER_API_KEY; OpenAI or Gemini key for the judge model |
| 2 | Deep Researcher — Customization | Extending the deep researcher — adding paper search, assigning different LLMs per agent role, editing prompts, and enabling the knowledge layer | Notebooks 0 and 1 completed; NVIDIA_API_KEY, TAVILY_API_KEY, SERPER_API_KEY |
The frontends/benchmarks/ directory contains evaluation pipelines for assessing agent performance.
| Benchmark | Description | Location |
|---|---|---|
| Deep Research Bench | RACE and FACT evaluation for research quality | frontends/benchmarks/deepresearch_bench/ |
| FreshQA | Factuality evaluation on time-sensitive questions | frontends/benchmarks/freshqa/ |
The dataset files are not included in the repository. We have included a script to retrieve them from the Deep Research Bench Github Repository and format them for the NeMo Agent Toolkit evaluator.
To download the dataset files, run the following script:
python frontends/benchmarks/deepresearch_bench/scripts/download_drb_dataset.py
dotenv -f deploy/.env run nat eval --config_file frontends/benchmarks/deepresearch_bench/configs/config_deep_research_bench.yml
python frontends/benchmarks/deepresearch_bench/scripts/export_drb_jsonl.py --input <path to your workflow_output.json> --output <path to the output file you want to create with .jsonl extension>
Follow instructions in the Deep Research Bench Github Repository to run evaluation and obtain scores.
If your config enables Phoenix tracing, start the Phoenix server before running nat eval.
Start server (separate terminal):
uvx --from arize-phoenix phoenix serve
For detailed benchmark documentation, refer to:
For development, contribution, and documentation, refer to:
The checkboxes below track implementation in the current branch; a checked item does not by itself indicate availability in a published release.
This project will download and install additional third-party open source software projects. Review the license terms of these open source projects before use, found in LICENSE-THIRD-PARTY.
GOVERNING TERMS: AIQ blueprint software and materials are governed by the Apache License, Version 2.0
(top 30 of 35)
Python
65.3%
TypeScript
25.8%
CSS
4.6%
HTML
1.6%
Jinja
1.1%
Shell
1.0%