Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .secrets.baseline

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Unreleased changes targeting AI-Q v2.2.0

These entries track candidate work merged to `develop`. AI-Q `v2.1.0` remains the latest stable
These entries track candidate work on `release/2.2`. AI-Q `v2.1.0` remains the latest stable
release; the candidate will be stabilized before the final `v2.2.0` release.

**Research and reports**
Expand All @@ -14,8 +14,12 @@ release; the candidate will be stabilized before the final `v2.2.0` release.
**Sources and integrations**

- OpenSearch is a first-class knowledge backend for self-hosted, Amazon OpenSearch Service, and Amazon OpenSearch Serverless deployments
- Azure AI Search is a managed knowledge backend with API-key or Azure identity authentication, namespaced index ownership, and hybrid retrieval
- Paper search adds SerpAPI and SearchAPI providers alongside Serper; the routed-research profile adds DuckDuckGo news and Polymarket sources
- You.com adds configurable web search, page-content extraction, cited open-domain research, and finance-focused research tools
- Nimble adds configurable web search with lite and deep modes, plus an Enterprise-only fast mode and optional focus, country, and locale controls
- Per-user MCP OAuth adds status, connect, callback, and reconnect flows backed by a token store shared by the API and workers; disconnect and in-worker token refresh are not included
- A standalone public MCP server exposes stateless submit, poll, and final-report tools over Streamable HTTP with PostgreSQL-backed job state

**Sandboxes, artifacts, and policy**

Expand All @@ -33,12 +37,12 @@ release; the candidate will be stabilized before the final `v2.2.0` release.

**Agent Skills, UX, and developer workflow**

- Consumer Agent Skills now include `aiq-deploy` and `aiq-research`; maintainer skills cover data sources, tools, release QA, PR preparation, prompt/model customization, and CI maintenance
- Consumer Agent Skills now include `aiq-deploy` and `aiq-research`; maintainer skills cover workflow configuration, data sources, tools, release QA, PR preparation, prompt/model customization, and CI maintenance
- The UI surfaces batched researcher activity and improves research-session recovery, expiry handling, and WebSocket delivery reliability
- Contributor governance and product-level Agent Skill evaluation checks expand release and contribution tooling
- Pinned to NeMo Agent Toolkit (NAT) v1.8.0

The nine checked-in workflow configurations are focused profiles; no single profile enables every 2.2 capability.
The eleven checked-in workflow configurations are focused profiles; no single profile enables every 2.2 capability.

Release v2.1.0

Expand Down
17 changes: 14 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@ The NVIDIA AI-Q Blueprint is an enterprise-grade research agent built on the [NV
- **Skills, sandbox execution, and durable outputs** — Built-in research/synthesis skills run code through a provider-neutral sandbox contract. Modal is fresh per job; the experimental OpenShell profile uses one shared, pre-provisioned sandbox and is not a multi-tenant isolation boundary. Opt-in rich-file capture checkpoints manifest-declared files after successful sandbox commands, finalizes on success/failure, stores bytes in SQL or S3-compatible storage, and delivers metadata to the Files tab live and on replay.
- **Portable Agent Skills** — `aiq-deploy` selects, starts, and validates an AI-Q deployment; `aiq-research` calls routed chat and async research from compatible coding harnesses.
- **Data source registry** — UI toggles and request payloads can select web, paper, enterprise, collaboration, and knowledge-layer sources per message.
- **Expanded sources** — Paper search supports Serper, SerpAPI, and SearchAPI; focused profiles demonstrate DuckDuckGo news, Polymarket, and OpenSearch knowledge retrieval.
- **Production API and auth** — REST endpoints, async job ownership, per-user OAuth-protected MCP sources, token validator entry points, and provider lifecycle hooks support authenticated deployments.
- **Expanded sources** — Paper search supports Serper, SerpAPI, and SearchAPI; You.com adds web, contents, general-research, and finance-research tools; Nimble adds configurable web search; focused profiles demonstrate DuckDuckGo news, Polymarket, OpenSearch, and Azure AI Search knowledge retrieval.
- **Production API and auth** — REST endpoints, async job ownership, per-user OAuth-protected MCP sources, token validator entry points, and provider lifecycle hooks support authenticated deployments; a separate public MCP server exposes stateless research tools for trusted networks.
- **Opt-in policy controls** — NeMo Guardrails middleware covers selected workflow and agent boundaries, and narrow application-level encryption can protect final async output plus selected artifact-event content.
- **Observability, profiling, and cost analysis** — NAT-exported async traces preserve task, named-agent, and model/tool hierarchy across concurrent researchers. Tokenomics reports combine profiler traces with pricing configuration for cost, latency, and cache analysis.
- **Evaluation harnesses** — Built-in benchmarks (for example, FreshQA, DeepResearch) and evaluation scripts to measure quality and iterate on prompts and agent architecture.
Expand All @@ -90,7 +90,8 @@ Recent changes include:
the new `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.
- **Enterprise data and policy controls** — OpenSearch joins the knowledge backends; per-user MCP
- **Sources, integrations, and policy controls** — OpenSearch and Azure AI Search join the knowledge backends;
You.com adds four search and research tools, Nimble adds configurable web search, and the standalone public MCP server exposes submit/poll/report operations; per-user MCP
OAuth, opt-in NeMo Guardrails middleware, and narrowly scoped async-content encryption add
deployment controls without making them universal defaults.
- **Operations and user experience** — Async traces preserve the agent hierarchy, the source Helm
Expand Down Expand Up @@ -212,6 +213,8 @@ 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/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]"
```

Expand All @@ -222,6 +225,8 @@ uv pip install -e "./sources/knowledge_layer[llamaindex,foundational_rag]"
| ---------- | -------------------- | ------------------------- | ----------------------------------------------------------- |
| 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) |
| 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) |
| Serper | `SERPER_API_KEY` | Academic paper search | No (if not specified, agent continues without paper search) |


Expand All @@ -236,6 +241,11 @@ uv pip install -e "./sources/knowledge_layer[llamaindex,foundational_rag]"
2. Navigate to your dashboard
3. Generate an API key

#### Obtain a You.com API Key

Follow the [You.com quickstart](https://you.com/docs/quickstart) to create an API key and add it to `deploy/.env` as
`YDC_API_KEY`. Refer to [You.com API Suite](docs/source/customization/you-com.md) for tool configuration.

#### Obtain a Paper Search API Key

Paper search supports three interchangeable providers. Set the `provider` field on the `paper_search` function in your workflow config (defaults to `serper`):
Expand Down Expand Up @@ -270,6 +280,7 @@ The `configs/` directory holds YAML workflow configs that define agents, tools,
| `config_web_default_llamaindex.yml` | Nemotron 3 Super; Nemotron Mini summary | Default web/API chat pipeline with LlamaIndex/ChromaDB and Tavily. Paper search is commented out. |
| `config_web_frag.yml` | Nemotron 3 Super | Web/API and Helm base with Foundational RAG plus Tavily. Requires separately deployed RAG query and ingestion services. |
| `config_web_opensearch.yml` | Nemotron 3 Super; NVIDIA embedding model | 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 Super; NVIDIA embedding model | Web/API with Azure AI Search knowledge retrieval plus Tavily; supports API-key and Azure identity authentication. |
| `config_frontier_models.yml` | GPT-5.2; Nemotron 3 Super; Nemotron Mini summary | LlamaIndex profile using GPT-5.2 for orchestration/planning/writing and Nemotron Super for routing/research. Requires `OPENAI_API_KEY`. |
| `config_web_default_guardrails.yml` | GPT-OSS-120B; Nemotron 3 Super; Nemotron Mini summary | LlamaIndex profile with workflow Guardrails attached and async deep-agent Guardrails selected; shallow middleware is defined but not attached. |
| `config_web_frag_mcp_auth.yml` | Nemotron 3 Super | Foundational RAG plus an opt-in protected per-user OAuth MCP source example. Requires a real MCP endpoint and shared token store. |
Expand Down
6 changes: 6 additions & 0 deletions ci/markdown-link-check-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@
{
"pattern": "^https?://modal\\.com/docs/reference/modal\\.config$"
},
{
"pattern": "^https://nimbleway\\.com/?$"
},
{
"pattern": "^https://docs\\.nimbleway\\.com/nimble-sdk/web-tools/search/?$"
},
Comment thread
coderabbitai[bot] marked this conversation as resolved.
{
"pattern": "^https?://huggingface\\.co/spaces/muset-ai/DeepResearch-Bench-Leaderboard$"
}
Expand Down
13 changes: 13 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,16 @@ python -m http.server --directory docs/build/html 8080
```bash
make -C docs linkcheck
```

## Release Metadata

[`source/project.json`](source/project.json) is the single source of truth for the published documentation version.
The Sphinx configuration reads its `name` and `version` fields, and the NVIDIA Docs publisher uses the same file to
select the deployment directory.

Use the exact release artifact version, without a leading `v`. For example, the `v2.2.0-rc1` Git tag uses
`2.2.0-rc1`. Update only `source/project.json` when advancing the documentation version.

The version switcher reads the publisher-managed index at
`https://docs.nvidia.com/aiq-blueprint/versions1.json`. Do not add a per-build `versions1.json`; a copied index becomes
stale and relative switcher URLs resolve differently on top-level and nested pages.
19 changes: 15 additions & 4 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
# SPDX-FileCopyrightText: Copyright (c) 2025-2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0

project = "NVIDIA AI-Q Blueprint"
import json
from pathlib import Path

_DOCS_SOURCE_DIR = Path(__file__).resolve().parent
_PROJECT_METADATA = json.loads((_DOCS_SOURCE_DIR / "project.json").read_text(encoding="utf-8"))
_PUBLISHED_DOCS_URL = "https://docs.nvidia.com/aiq-blueprint"

project = _PROJECT_METADATA["name"]
copyright = "2025-%Y, NVIDIA Corporation"
author = "NVIDIA Corporation"
release = "1.2.1"
release = _PROJECT_METADATA["version"]

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down Expand Up @@ -48,7 +55,7 @@

html_theme = "nvidia_sphinx_theme"
html_theme_options = {
"switcher": {"json_url": "../versions1.json", "version_match": release},
"switcher": {"json_url": f"{_PUBLISHED_DOCS_URL}/versions1.json", "version_match": release},
"public_docs_features": True,
"icon_links": [
{
Expand All @@ -62,7 +69,7 @@
"show_nav_level": 1,
}

html_extra_path = ["project.json", "versions1.json"]
html_extra_path = ["project.json"]
html_static_path = ["_static"]
html_favicon = "_static/favicon.ico"
html_css_files = ["css/custom.css"]
Expand All @@ -78,4 +85,8 @@
r"http://127\.0\.0\.1.*",
r".*github\.com.*",
r".*githubusercontent\.com.*",
# These specific Nimble URLs have a certificate chain that Python/OpenSSL
# linkcheck cannot validate, although they remain browser-accessible.
r"^https://nimbleway\.com/?$",
r"^https://docs\.nimbleway\.com/nimble-sdk/web-tools/search/?$",
]
6 changes: 4 additions & 2 deletions docs/source/customization/configuration-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,8 @@ functions:

### `nimble_web_search`

Web search powered by the [Nimble API](https://nimbleway.com/) via `langchain-nimble`.
Web search powered by the [Nimble Search API](https://docs.nimbleway.com/nimble-sdk/web-tools/search) via
`langchain-nimble`.

```yaml
functions:
Expand Down Expand Up @@ -636,7 +637,7 @@ workflow:

## Provided Config Files

The repository includes nine top-level workflow configurations. They are focused reference profiles, not cumulative
The repository includes eleven top-level workflow configurations. They are focused reference profiles, not cumulative
layers, and no single profile enables every capability. Start from the profile closest to the deployment and merge
only the additional sections you need.

Expand All @@ -652,6 +653,7 @@ only the additional sections you need.
| `configs/config_web_frag_mcp_auth.yml` | Web API | Foundational RAG plus a protected per-user OAuth MCP source example. Requires a real protected MCP endpoint and shared token-store configuration; it is not a zero-config default. |
| `configs/config_domain_routing_and_skills.yml` | Direct deep-research workflow | Automatic domain routing, Tavily, DuckDuckGo news, Polymarket, LlamaIndex, enabled Serper paper search, built-in skills, and a Modal sandbox. Requires the corresponding service credentials and Modal setup. |
| `configs/config_openshell.yml` | Web API, experimental | Skills and artifact capture over one pre-provisioned named OpenShell sandbox. Intended for trusted single-operator use; per-job directories are not multi-tenant isolation. |
| `configs/config_mcp.yml` | Standalone MCP server | Public NIM and Tavily research over stateless submit, poll, and final-report tools with PostgreSQL-backed job state. Requires `NVIDIA_API_KEY`, `TAVILY_API_KEY`, and `AIQ_CHECKPOINT_DB`. |

## Related

Expand Down
3 changes: 2 additions & 1 deletion docs/source/customization/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,9 @@ SPDX-License-Identifier: Apache-2.0
- **[Configuration Reference](./configuration-reference.md)** — Complete YAML schema with all parameters
- **[Swapping Models](./swapping-models.md)** — Use different LLMs (hosted NIM, self-hosted NIM, mixing models)
- **[Tools and Sources](./tools-and-sources.md)** — Enable, disable, and configure search tools
- **[You.com API Suite](./you-com.md)** — Configure web search, contents extraction, general research, and finance research
- **[MCP Tools](./mcp-tools.md)** — Add external tools through Model Context Protocol
- **[Guardrails](./guardrails.md)** — Configure NeMo Guardrails at workflow and agent boundaries
- **[Knowledge Layer](./knowledge-layer.md)** — Add document retrieval with LlamaIndex, Foundational RAG, or OpenSearch
- **[Knowledge Layer](./knowledge-layer.md)** — Add document retrieval with LlamaIndex, Foundational RAG, OpenSearch, or Azure AI Search
- **[Prompts](./prompts.md)** — Modify agent behavior through Jinja2 prompt templates
- **[Human-in-the-Loop](./hitl.md)** — Configure the clarifier
7 changes: 7 additions & 0 deletions docs/source/customization/tools-and-sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ SPDX-License-Identifier: Apache-2.0
-->
# Tools and Sources

AI-Q ships provider integrations for Tavily, Google Scholar search providers, Exa, DuckDuckGo News, Polymarket, and
the [You.com API Suite](./you-com.md). Knowledge retrieval is configured separately through the
[Knowledge Layer](./knowledge-layer.md).

Nimble provides configurable web search with lite and deep modes, plus an Enterprise-only fast mode. Refer to the
[configuration reference](./configuration-reference.md) for its focus, country, and locale controls.

## Data Source Registry

The `data_source_registry` function is the **single source of truth** for which tools exist and which data source they belong to. It controls the UI toggles, per-message filtering, and -- by default -- which tools each agent receives.
Expand Down
Loading
Loading