Skip to content

docs: document AI-Q 2.2 candidate scope - #322

Merged
AjayThorve merged 22 commits into
developfrom
ajay/docs-aiq-2.2-release
Jul 10, 2026
Merged

docs: document AI-Q 2.2 candidate scope#322
AjayThorve merged 22 commits into
developfrom
ajay/docs-aiq-2.2-release

Conversation

@AjayThorve

@AjayThorve AjayThorve commented Jul 8, 2026

Copy link
Copy Markdown
Member

Overview

Refresh the AI-Q documentation against the live 2.2 milestone and current develop implementation while keeping branch-facing documentation portable across future release cuts.

  • keeps the root README version-free: “What’s New” highlights current capabilities without embedding release numbers, RC status, or a branch-cut lifecycle
  • keeps version-specific 2.2 targeting in the existing changelog, which is the detailed unreleased ledger; no separate release-notes document is introduced
  • makes the roadmap describe implementation in the checked-out branch rather than implying availability in a published release
  • updates configuration, deployment, quick-start, profiling, and docs-navigation wording to describe current behavior instead of a “2.2 candidate”
  • documents the newly merged artifact lifecycle (feat: persist and surface sandbox artifacts #314), Helm release-namespace behavior (fix(helm): honor release namespace instead of hardcoded ns-aiq #309), and async trace hierarchy (fix(aiq-api): preserve agent trace hierarchy #321)
  • keeps the remaining open capabilities explicit: no per-job isolated/attested OpenShell lifecycle (feat: isolate and attest OpenShell jobs #298) and no standalone public AI-Q MCP server (feat(mcp): add public AI-Q MCP server #319)
  • resolves Linette's review feedback across link-referral wording, terminology, and documentation clarity
  • preserves runtime boundaries for advisory routing, focused configuration profiles, MCP reconnect behavior, narrow forward-only encryption, best-effort artifact capture, and best-effort tokenomics phase attribution

Milestone audit as of July 10, 2026: 49 items (47 PRs and 2 issues), including 41 PRs merged to develop, one PR merged only to release/2.1, three open PRs (#298, #319, and this documentation PR), and two closed-unmerged PRs superseded by merged work. AI-Q v2.1.0 remains the latest stable release. v2.2.0-rc1 is a prerelease snapshot from develop; there is no final v2.2.0 tag yet, and release/2.2 has not been cut. These lifecycle details intentionally remain outside the develop-facing README.

Validation

  • make -C docs SPHINXBUILD=../.venv/bin/sphinx-build SPHINXOPTS='-W --keep-going -n' html

  • make -C docs SPHINXBUILD=../.venv/bin/sphinx-build linkcheck

  • pre-commit run --all-files

  • git diff --check origin/develop...HEAD

  • independent release-lifecycle, version-free wording, milestone, review-thread, and semantic whole-diff reviews found no remaining Critical or Important issues

  • I ran the relevant local checks or explained why they are not applicable.

  • I added or updated tests for behavior changes. Not applicable: this PR changes documentation only.

  • I updated documentation for user-facing or contributor-facing changes.

  • I confirmed this PR does not include secrets, credentials, or internal-only data.

  • I certify this contribution under the Developer Certificate of Origin (DCO) and signed my commits with git commit -s or an equivalent sign-off.

Where should reviewers start?

  1. README.md for the version-free “What’s New” highlights and current-branch roadmap semantics.
  2. CHANGELOG.md for the detailed unreleased 2.2 ledger and release lifecycle.
  3. docs/source/architecture/agents/deep-researcher.md for the routed planner/researcher/writer contract.
  4. docs/source/architecture/data-flow.md and docs/source/integration/rest-api.md for artifact checkpoint, SSE, replay, and authorization semantics.
  5. docs/source/deployment/kubernetes.md and docs/source/deployment/observability.md for the newly merged namespace and trace-hierarchy behavior.

Related Issues

Summary by CodeRabbit

  • Documentation
    • Updated “Unreleased” release notes targeting AI-Q v2.2.0, including deep research workflow changes, async job reporting, and sandbox/artifact behavior.
    • Added/expanded REST API documentation for event-derived job state and durable artifact listing/streaming.
    • Documented OpenSearch support for knowledge retrieval and multiple paper-search providers, plus refined configuration, guardrails, MCP OAuth behavior, and observability trace hierarchy.
  • Chores
    • Refreshed secrets baseline metadata timestamps/line references only.

@copy-pr-bot

copy-pr-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@coderabbitai

coderabbitai Bot commented Jul 8, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This documentation-only PR aligns AI-Q materials with the v2.2 candidate scope, covering deep research, durable artifacts, OpenSearch, guardrails, MCP, deployment, integrations, examples, observability, and release navigation.

Changes

Release metadata and navigation

Layer / File(s) Summary
Release status and navigation
CHANGELOG.md, README.md, docs/source/index.md, docs/source/get-started/quick-start.md, docs/source/resources/changelog.md, .secrets.baseline
Documents v2.2 candidate status, refreshes release navigation and feature descriptions, and updates generated secret-scan metadata.

Deep research workflow and prompt contracts

Layer / File(s) Summary
Deep research architecture and configuration
docs/source/architecture/agents/*, docs/source/architecture/overview.md, src/aiq_agent/agents/deep_researcher/README.md, docs/source/customization/configuration-reference.md
Describes source routing, structured planning, concurrent workers, writer synthesis, filtering, configuration, citation verification, and defensive report handling.
Prompt, routing, and user-facing workflow guidance
docs/source/customization/prompts.md, docs/source/customization/tools-and-sources.md, docs/source/resources/faq.md, docs/source/examples/cli-with-local-nims.md
Documents prompt roles, domain catalogs, source eligibility, clarifier behavior, and removal of plan approval from the CLI flow.

Sandbox artifacts and REST event contracts

Layer / File(s) Summary
Durable artifact lifecycle and API
docs/source/architecture/data-flow.md, docs/source/integration/rest-api.md, docs/source/architecture/agents/sandbox.md
Documents artifact checkpointing, metadata-only events, warnings, replay behavior, event-derived state, listing, content streaming, and retention semantics.
Provider-backed sandbox examples
docs/source/architecture/index.md, docs/source/examples/*
Updates sandbox terminology and documents Modal/OpenShell behavior, artifact capture, execution, and isolation constraints.

Knowledge layer and OpenSearch backend

Layer / File(s) Summary
OpenSearch configuration and usage
docs/source/customization/knowledge-layer.md, docs/source/customization/configuration-reference.md, docs/source/customization/index.md
Adds OpenSearch backend configuration, authentication, ingestion, embeddings, supported files, session indexes, and troubleshooting guidance.
Installation and deployment prerequisites
docs/source/get-started/installation.md, docs/source/deployment/aws-opensearch-serverless.md
Updates installation options, provider credentials, OpenSearch extras, and EKS Pod Identity namespace guidance.

Policy, MCP, and agent skills guidance

Layer / File(s) Summary
Guardrails and MCP behavior
docs/source/customization/guardrails.md, docs/source/customization/mcp-tools.md
Clarifies middleware attachment and failure semantics, MCP OAuth actions, token expiry handling, and async authentication behavior.
Agent skills and portable outputs
docs/source/integration/agent-skills.md
Adds report follow-up, portable output, artifact download, and canonical skill-reference documentation.

Deployment, examples, and observability

Layer / File(s) Summary
Helm and Kubernetes namespace guidance
deploy/helm/*, docs/source/deployment/kubernetes.md
Documents .Release.Namespace, helm -n, Namespace rendering, and consistent namespace usage across deployment resources and identity bindings.
Tracing and profiling documentation
docs/source/deployment/observability.md, docs/source/profiling/index.md
Documents async trace hierarchy and qualifies NAT phase attribution as best-effort with adapter-specific bucket behavior.

Estimated code review effort: 3 (Moderate) | ~25 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title follows Conventional Commits and accurately summarizes the doc-only AI-Q 2.2 scope refresh.
Description check ✅ Passed The description matches the required template sections and includes overview, validation, reviewer starting points, and related issues.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ajay/docs-aiq-2.2-release

Comment @coderabbitai help to get the list of available commands.

@AjayThorve AjayThorve added documentation Improvements or additions to documentation DO NOT MERGE labels Jul 8, 2026
@AjayThorve
AjayThorve marked this pull request as ready for review July 8, 2026 13:22

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/customization/knowledge-layer.md`:
- Around line 167-168: The Markdown section before the OpenSearch YAML block is
missing the required blank line separator, which will trigger MD031. Update the
content around the OpenSearch heading so there is an empty line between the
bolded text and the YAML fenced block, keeping the surrounding docs formatting
consistent.

In `@docs/source/customization/prompts.md`:
- Around line 124-130: Move the `parent_report_context_available` entry out of
the orchestrator prompt table and into the writer prompt table in the docs,
since `factory.py` sends this flag to the writer subagent rather than the
orchestrator. Update the surrounding table entries in `prompts.md` so the
orchestrator inventory only lists fields actually used there, and ensure the
writer section includes `parent_report_context_available` alongside the other
writer-specific inputs.

In `@docs/source/customization/tools-and-sources.md`:
- Around line 91-103: The no-catalog fallback prose is inaccurate and should
match the behavior in source_routing.py. Update the documentation around the
domain table and fallback paragraph to describe the actual default path in the
source-routing logic: when no catalog file is configured, the router builds the
general_research route, filters preferred sources against the active tool set,
and selects web_search or the first available mapped source as fallback. Also
remove the mention of an unconfigured domain so the description aligns with the
routing behavior implemented in the source_routing flow.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: ac475c55-842e-44c6-bdbf-ad4a337d2a4e

📥 Commits

Reviewing files that changed from the base of the PR and between 4449963 and 347afe7.

📒 Files selected for processing (30)
  • .secrets.baseline
  • CHANGELOG.md
  • README.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/agents/index.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/data-flow.md
  • docs/source/architecture/index.md
  • docs/source/architecture/overview.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/index.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/mcp-tools.md
  • docs/source/customization/prompts.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/get-started/installation.md
  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/integration/rest-api.md
  • docs/source/profiling/index.md
  • docs/source/resources/changelog.md
  • docs/source/resources/faq.md
  • docs/source/resources/release-notes.md
  • src/aiq_agent/agents/deep_researcher/README.md
📜 Review details
⚠️ CI failures not shown inline (2)

GitHub Actions: AIQ CI / Script Validation: docs: correct durable artifact event shape

Conclusion: failure

View job details

##[group]Run . .venv/bin/activate
 �[36;1m. .venv/bin/activate�[0m
 �[36;1mchmod +x ci/scripts/test_scripts.sh�[0m
 �[36;1mci/scripts/test_scripts.sh --skip-setup�[0m
 shell: /usr/bin/bash -e {0}
 env:
   pythonLocation: /opt/hostedtoolcache/Python/3.13.14/x64
   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.13.14/x64/lib/pkgconfig
   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.14/x64
   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.14/x64
   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.13.14/x64
   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.13.14/x64/lib
   UV_CACHE_DIR: /home/runner/work/_temp/setup-uv-cache
 ##[endgroup]
 ================================================
   AI-Q Blueprint - Script Tests
 ================================================
 Repository: /home/runner/work/aiq/aiq
 Scripts:    /home/runner/work/aiq/aiq/scripts
 ============================================
   Testing Bash Syntax
 ============================================
 �[0;32m✅ PASS�[0m: dev.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: setup.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: setup_openshell.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: start_as_skill.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: start_cli.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: start_e2e.sh - valid bash syntax
 �[0;32m✅ PASS�[0m: start_server_in_debug_mode.sh - valid bash syntax
 �[1;33m⏭️  SKIP�[0m: setup.sh - skipped (--skip-setup flag)
 ============================================
   Testing --help Flags
 ============================================
 �[0;32m✅ PASS�[0m: start_cli.sh --help
 �[0;32m✅ PASS�[0m: start_server_in_debug_mode.sh --help
 ============================================
   Testing Virtual Environment Checks
 ============================================
 �[0;32m✅ PASS�[0m: start_cli.sh - venv check works
 �[0;32m✅ PASS�[0m: start_server_in_debug_mode.sh - venv check works
 ============================================
   Testing Pytest Integration
 =====================...

GitHub Actions: AIQ CI / 3_Script Validation.txt: docs: correct durable artifact event shape

Conclusion: failure

View job details

Current runner version: '2.335.1'
 ##[group]Runner Image Provisioner
 Hosted Compute Agent
 Version: 20260624.560
 Commit: 925d229a51159bc391ae97e54a2dd1fe20af789d
 Build Date:
 Worker ID: {e3ffda1b-55cd-4a33-a728-f5de9568e34b}
 Azure Region: eastus
 ##[endgroup]
 ##[group]Operating System
 Ubuntu
 24.04.4
 LTS
 ##[endgroup]
 ##[group]Runner Image
 Image: ubuntu-24.04
 Version: 20260628.225.1
 Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20260628.225/images/ubuntu/Ubuntu2404-Readme.md
 Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20260628.225
 ##[endgroup]
 ##[group]GITHUB_TOKEN Permissions
 Contents: read
 Metadata: read
 ##[endgroup]
 Secret source: Actions
 Prepare workflow directory
 Prepare all required actions
 Getting action download info
 Download action repository 'actions/checkout@v4' (SHA:34e114876b0b11c390a56381ad16ebd13914f8d5)
 Download action repository 'actions/setup-python@v5' (SHA:a26af69be951a213d495a4c3e4e4022e16d87065)
 Download action repository 'astral-sh/setup-uv@v4' (SHA:38f3f104447c67c051c4a08e39b64a148898af3a)
 Complete job name: Script Validation
 Node 20 is being deprecated. This workflow is running with Node 24 by default. If you need to temporarily use Node 20, you can set the ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true environment variable. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
 ##[group]Run actions/checkout@v4
 with:
   repository: NVIDIA-AI-Blueprints/aiq
   ***REDACTED***
   ssh-strict: true
   ssh-user: git
   persist-credentials: true
   clean: true
   sparse-checkout-cone-mode: true
   fetch-depth: 1
   fetch-tags: false
   show-progress: true
   lfs: false
   submodules: false
   set-safe-directory: true
 ##[endgroup]
 Syncing repository: NVIDIA-AI-Blueprints/aiq
 ##[group]Getting Git version info
 Working directory is '/home/runner/work/aiq/aiq'
 [command]/usr/bin/git version
 git v...
🧰 Additional context used
📓 Path-based instructions (4)
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update the docs under docs/source/ when behavior, configuration, or workflows change

Files:

  • docs/source/examples/index.md
  • docs/source/architecture/index.md
  • docs/source/customization/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/resources/release-notes.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/index.md
  • docs/source/resources/faq.md
  • docs/source/get-started/installation.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/profiling/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/customization/prompts.md
  • docs/source/customization/guardrails.md
  • docs/source/architecture/overview.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/integration/rest-api.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/configuration-reference.md
**

⚙️ CodeRabbit configuration file

**:

AI-Q Agent Guidance

Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in .agents/skills/ — load the
relevant skill before starting a workflow it covers.

Project overview

AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.

Primary boundaries:

  • Backend Python package: src/aiq_agent/.
  • Data-source and tool packages: sources/ (each is its own package).
  • Frontends and tooling: frontends/ (web UI in frontends/ui/, eval harnesses
    in frontends/benchmarks/).
  • Configs, deployment, docs: configs/, deploy/, docs/.

Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treat sources/* as independent packages: prefer the smallest change
scoped to the package you are touching.

Repository structure

Path Purpose
src/aiq_agent/ Backend agent, FastAPI extensions, auth, observability, knowledge
sources/ Data-source / tool packages (e.g. tavily_web_search, google_scholar_paper_search)
configs/ Workflow YAML configs (e.g. config_cli_default.yml)
frontends/ui/ Next.js / React / TypeScript / Tailwind / KUI web UI
frontends/benchmarks/ Eval harnesses: freshqa, deepsearch_qa, deepresearch_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/source/ ...

Files:

  • docs/source/examples/index.md
  • docs/source/architecture/index.md
  • docs/source/customization/index.md
  • src/aiq_agent/agents/deep_researcher/README.md
  • docs/source/examples/cli-with-local-nims.md
  • CHANGELOG.md
  • docs/source/resources/release-notes.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/index.md
  • docs/source/resources/faq.md
  • docs/source/get-started/installation.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/profiling/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/customization/prompts.md
  • docs/source/customization/guardrails.md
  • docs/source/architecture/overview.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/integration/rest-api.md
  • README.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/configuration-reference.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • docs/source/examples/index.md
  • docs/source/architecture/index.md
  • docs/source/customization/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/resources/release-notes.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/index.md
  • docs/source/resources/faq.md
  • docs/source/get-started/installation.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/profiling/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/customization/prompts.md
  • docs/source/customization/guardrails.md
  • docs/source/architecture/overview.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/integration/rest-api.md
  • README.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/configuration-reference.md
src/aiq_agent/agents/**/*

⚙️ CodeRabbit configuration file

src/aiq_agent/agents/**/*: Review agent changes for research workflow correctness, graph state transitions, prompt/tool contracts,
HITL behavior, and failure handling. Flag changes that weaken source attribution, report generation,
async cancellation, checkpointing, or data-source selection without focused tests and docs.

Files:

  • src/aiq_agent/agents/deep_researcher/README.md
🪛 LanguageTool
src/aiq_agent/agents/deep_researcher/README.md

[style] ~27-~27: Consider a different adjective to strengthen your wording.
Context: ...is path. - Clarification happens before deep research only when request scope or out...

(DEEP_PROFOUND)

CHANGELOG.md

[style] ~7-~7: Consider a different adjective to strengthen your wording.
Context: ...ed) Research and reports - Routed deep research now uses explicit source-route...

(DEEP_PROFOUND)

docs/source/resources/faq.md

[grammar] ~29-~29: Ensure spelling is correct
Context: ...ies. - Deep research is thorough (2-10min). An orchestrator coordinates an option...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~43-~43: Consider a different adjective to strengthen your wording.
Context: ... it escalates to the clarifier and then deep research. The clarifier asks only for m...

(DEEP_PROFOUND)


[style] ~45-~45: Consider a different adjective to strengthen your wording.
Context: .../architecture/overview.md). How does deep research choose data sources? The re...

(DEEP_PROFOUND)

docs/source/customization/tools-and-sources.md

[style] ~51-~51: Consider a different adjective to strengthen your wording.
Context: ... the UI | ## Automatic Source Routing Deep research can run an optional source-rou...

(DEEP_PROFOUND)

docs/source/examples/skills-sandbox/index.md

[style] ~8-~8: Consider a different adjective to strengthen your wording.
Context: ...box This example shows how to run AI-Q deep research with DeepAgents skills and a p...

(DEEP_PROFOUND)

docs/source/profiling/index.md

[style] ~128-~128: ‘at a discount’ might be wordy. Consider a shorter alternative.
Context: ...tion path. - Cached tokens are billed at a discount. Without explicit tracking, you canno...

(EN_WORDINESS_PREMIUM_AT_A_DISCOUNT)

docs/source/customization/guardrails.md

[style] ~71-~71: Consider a different adjective to strengthen your wording.
Context: ...ent in the reference profile. For async deep research, the worker does not invoke th...

(DEEP_PROFOUND)

docs/source/architecture/overview.md

[style] ~88-~88: Consider a different adjective to strengthen your wording.
Context: ...rorNone| Preserved user query for deep research | |available_documents|l...

(DEEP_PROFOUND)


[style] ~94-~94: Consider a different adjective to strengthen your wording.
Context: ...ing loop) while reserving multi-stage deep research for complex cases. The intent ...

(DEEP_PROFOUND)

docs/source/architecture/agents/deep-researcher.md

[grammar] ~162-~162: Ensure spelling is correct
Context: ...ries concurrently. ## State Model ### DeepResearchAgentState | Field | Type | Default | Description |...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/source/customization/configuration-reference.md

[style] ~425-~425: Consider using “incompatible” to avoid wordiness.
Context: ...only when the active source formats are not compatible with verification. | | skills | objec...

(NOT_ABLE_PREMIUM)

🪛 markdownlint-cli2 (0.22.1)
docs/source/resources/changelog.md

[warning] 6-6: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

docs/source/customization/knowledge-layer.md

[warning] 168-168: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

🔇 Additional comments (31)
docs/source/architecture/agents/sandbox.md (1)

18-20: 📐 Maintainability & Code Quality | ⚡ Quick win

Use a repo-relative link here.

This hard-coded develop URL will drift with branch changes and is less portable than a canonical docs/source link. As per path instructions, review docs for links that no longer match repository layout.

Source: Path instructions

docs/source/architecture/index.md (1)

13-13: LGTM!

docs/source/architecture/data-flow.md (1)

26-26: LGTM!

Also applies to: 46-52, 90-93, 106-108, 118-118, 134-178, 228-241

docs/source/integration/rest-api.md (2)

17-17: LGTM!

Also applies to: 36-38, 238-242


283-362: 🎯 Functional Correctness

Verify the new artifact lifecycle claims against the implementation.

This section now asserts server-wide retention independent of expiry_seconds and extension-based MIME fallback, but the server-side snippet we have only confirms auth-scoped reads, Content-Disposition selection, and nosniff. Please confirm the extra lifecycle/classification details before treating them as API guarantees.

docs/source/examples/index.md (1)

17-17: LGTM!

docs/source/examples/skills-sandbox/index.md (2)

8-11: LGTM!

Also applies to: 23-23, 90-95, 140-141, 202-209


71-88: 🎯 Functional Correctness

Confirm the published sandbox profile still matches the supported example runtime.

Switching the container image to python:3.13-slim and setting enable_citation_verification: false both change the executable walkthrough. Please confirm those are intentional and still match the repo’s supported/tested deep-research setup.

Source: Coding guidelines

docs/source/customization/guardrails.md (1)

10-23: LGTM!

Also applies to: 37-45, 71-82, 121-135

docs/source/customization/mcp-tools.md (1)

34-35: LGTM!

Also applies to: 217-218, 305-307, 384-385

docs/source/integration/agent-skills.md (1)

14-14: LGTM!

Also applies to: 69-86, 145-145

docs/source/profiling/index.md (1)

118-132: LGTM!

Also applies to: 194-196, 205-208, 226-226, 243-257

CHANGELOG.md (1)

3-36: LGTM!

docs/source/resources/release-notes.md (1)

6-109: LGTM!

docs/source/index.md (1)

16-16: LGTM!

Also applies to: 25-29, 137-137

docs/source/get-started/quick-start.md (1)

140-141: LGTM!

README.md (1)

27-27: LGTM!

Also applies to: 64-102, 134-135, 251-259, 318-319, 406-418, 419-426

.secrets.baseline (1)

136-136: LGTM!

Also applies to: 358-358

docs/source/resources/changelog.md (1)

6-7: 📐 Maintainability & Code Quality

No MD041 suppression needed. This repo doesn’t run markdownlint/MD041 on docs; CI and pre-commit only include markdown-link-check for this file.

			> Likely an incorrect or invalid review comment.
docs/source/architecture/agents/deep-researcher.md (1)

8-143: LGTM!

Also applies to: 144-202, 213-218, 232-296, 297-353

docs/source/architecture/agents/index.md (1)

13-15: LGTM!

docs/source/architecture/overview.md (1)

30-32: LGTM!

Also applies to: 69-72, 82-128

docs/source/resources/faq.md (1)

29-67: LGTM!

Also applies to: 81-85

docs/source/customization/prompts.md (1)

12-22: LGTM!

Also applies to: 36-40, 49-49, 106-106, 132-182, 207-212, 274-281

docs/source/customization/tools-and-sources.md (1)

50-90: LGTM!

Also applies to: 105-108

src/aiq_agent/agents/deep_researcher/README.md (1)

1-30: LGTM!

Also applies to: 31-45, 46-57

docs/source/examples/cli-with-local-nims.md (1)

183-186: LGTM!

docs/source/customization/index.md (1)

19-19: LGTM!

docs/source/deployment/aws-opensearch-serverless.md (1)

10-16: LGTM!

Also applies to: 69-74

docs/source/get-started/installation.md (1)

28-33: LGTM!

Also applies to: 54-54, 99-104, 139-150

docs/source/customization/configuration-reference.md (1)

262-309: 🎯 Functional Correctness

No change needed. The example shows the shipped OpenSearch profile (auto), while the config default remains local.

			> Likely an incorrect or invalid review comment.

Comment thread docs/source/customization/knowledge-layer.md
Comment thread docs/source/customization/prompts.md
Comment thread docs/source/customization/tools-and-sources.md Outdated
@AjayThorve AjayThorve added this to the v2.2 milestone Jul 8, 2026
@AjayThorve
AjayThorve force-pushed the ajay/docs-aiq-2.2-release branch from 347afe7 to d4707dc Compare July 8, 2026 21:39
@copy-pr-bot

copy-pr-bot Bot commented Jul 8, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/integration/rest-api.md`:
- Around line 343-347: Document and address the anonymous artifact-read behavior
for the durable artifact endpoints: when REQUIRE_AUTH is false, the artifact
content path remains reachable without ownership checks, so callers with a valid
job ID can read bytes. Update the REST API docs near the durable artifact
endpoint description to call out this exposure clearly, and if the
implementation should be tightened, require authentication or a signed artifact
token in the artifact-serving flow before returning content.

In `@docs/source/profiling/index.md`:
- Around line 118-132: The Tavily cost example in the profiling docs uses exact
call-count and dollar figures as if they were generally applicable, which makes
the guidance look like a fixed benchmark. Update the example in the profiling
section to either include the run/date/source for those numbers or rewrite it as
an illustrative estimate without exact figures, keeping the surrounding
explanation in docs/source/profiling/index.md consistent with the tokenomics
report wording.

In `@docs/source/resources/changelog.md`:
- Around line 6-7: The include-only changelog page is triggering MD041 because
it has no top-level heading. Update the changelog page by either adding a short
page title before the existing include directive in the changelog document, or
by disabling MD041 for that file if that is the intended pattern. Use the
changelog page content and the existing include directive as the location cues.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: b73a18c4-b6b0-4023-94a1-d8270887db3a

📥 Commits

Reviewing files that changed from the base of the PR and between 347afe7 and d4707dc.

📒 Files selected for processing (30)
  • .secrets.baseline
  • CHANGELOG.md
  • README.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/agents/index.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/data-flow.md
  • docs/source/architecture/index.md
  • docs/source/architecture/overview.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/index.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/mcp-tools.md
  • docs/source/customization/prompts.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/get-started/installation.md
  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/integration/rest-api.md
  • docs/source/profiling/index.md
  • docs/source/resources/changelog.md
  • docs/source/resources/faq.md
  • docs/source/resources/release-notes.md
  • src/aiq_agent/agents/deep_researcher/README.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (4)
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update the docs under docs/source/ when behavior, configuration, or workflows change

Files:

  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/resources/changelog.md
  • docs/source/index.md
  • docs/source/customization/index.md
  • docs/source/architecture/index.md
  • docs/source/get-started/quick-start.md
  • docs/source/resources/faq.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/resources/release-notes.md
  • docs/source/integration/agent-skills.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/integration/rest-api.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/prompts.md
  • docs/source/architecture/data-flow.md
  • docs/source/get-started/installation.md
  • docs/source/customization/mcp-tools.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/customization/configuration-reference.md
**

⚙️ CodeRabbit configuration file

**:

AI-Q Agent Guidance

Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in .agents/skills/ — load the
relevant skill before starting a workflow it covers.

Project overview

AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.

Primary boundaries:

  • Backend Python package: src/aiq_agent/.
  • Data-source and tool packages: sources/ (each is its own package).
  • Frontends and tooling: frontends/ (web UI in frontends/ui/, eval harnesses
    in frontends/benchmarks/).
  • Configs, deployment, docs: configs/, deploy/, docs/.

Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treat sources/* as independent packages: prefer the smallest change
scoped to the package you are touching.

Repository structure

Path Purpose
src/aiq_agent/ Backend agent, FastAPI extensions, auth, observability, knowledge
sources/ Data-source / tool packages (e.g. tavily_web_search, google_scholar_paper_search)
configs/ Workflow YAML configs (e.g. config_cli_default.yml)
frontends/ui/ Next.js / React / TypeScript / Tailwind / KUI web UI
frontends/benchmarks/ Eval harnesses: freshqa, deepsearch_qa, deepresearch_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/source/ ...

Files:

  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/resources/changelog.md
  • docs/source/index.md
  • docs/source/customization/index.md
  • docs/source/architecture/index.md
  • docs/source/get-started/quick-start.md
  • docs/source/resources/faq.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/resources/release-notes.md
  • CHANGELOG.md
  • docs/source/integration/agent-skills.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • src/aiq_agent/agents/deep_researcher/README.md
  • docs/source/integration/rest-api.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/prompts.md
  • docs/source/architecture/data-flow.md
  • docs/source/get-started/installation.md
  • docs/source/customization/mcp-tools.md
  • README.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/customization/configuration-reference.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/agents/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/resources/changelog.md
  • docs/source/index.md
  • docs/source/customization/index.md
  • docs/source/architecture/index.md
  • docs/source/get-started/quick-start.md
  • docs/source/resources/faq.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/resources/release-notes.md
  • docs/source/integration/agent-skills.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/integration/rest-api.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/prompts.md
  • docs/source/architecture/data-flow.md
  • docs/source/get-started/installation.md
  • docs/source/customization/mcp-tools.md
  • README.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/customization/configuration-reference.md
src/aiq_agent/agents/**/*

⚙️ CodeRabbit configuration file

src/aiq_agent/agents/**/*: Review agent changes for research workflow correctness, graph state transitions, prompt/tool contracts,
HITL behavior, and failure handling. Flag changes that weaken source attribution, report generation,
async cancellation, checkpointing, or data-source selection without focused tests and docs.

Files:

  • src/aiq_agent/agents/deep_researcher/README.md
🪛 LanguageTool
docs/source/resources/faq.md

[grammar] ~29-~29: Ensure spelling is correct
Context: ...ies. - Deep research is thorough (2-10min). An orchestrator coordinates an option...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~43-~43: Consider a different adjective to strengthen your wording.
Context: ... it escalates to the clarifier and then deep research. The clarifier asks only for m...

(DEEP_PROFOUND)


[style] ~45-~45: Consider a different adjective to strengthen your wording.
Context: .../architecture/overview.md). How does deep research choose data sources? The re...

(DEEP_PROFOUND)

docs/source/customization/tools-and-sources.md

[style] ~51-~51: Consider a different adjective to strengthen your wording.
Context: ... the UI | ## Automatic Source Routing Deep research can run an optional source-rou...

(DEEP_PROFOUND)

CHANGELOG.md

[style] ~7-~7: Consider a different adjective to strengthen your wording.
Context: ...ed) Research and reports - Routed deep research now uses explicit source-route...

(DEEP_PROFOUND)

docs/source/examples/skills-sandbox/index.md

[style] ~8-~8: Consider a different adjective to strengthen your wording.
Context: ...box This example shows how to run AI-Q deep research with DeepAgents skills and a p...

(DEEP_PROFOUND)

src/aiq_agent/agents/deep_researcher/README.md

[style] ~27-~27: Consider a different adjective to strengthen your wording.
Context: ...is path. - Clarification happens before deep research only when request scope or out...

(DEEP_PROFOUND)

docs/source/architecture/overview.md

[style] ~88-~88: Consider a different adjective to strengthen your wording.
Context: ...rorNone| Preserved user query for deep research | |available_documents|l...

(DEEP_PROFOUND)


[style] ~94-~94: Consider a different adjective to strengthen your wording.
Context: ...ing loop) while reserving multi-stage deep research for complex cases. The intent ...

(DEEP_PROFOUND)

docs/source/profiling/index.md

[style] ~128-~128: ‘at a discount’ might be wordy. Consider a shorter alternative.
Context: ...tion path. - Cached tokens are billed at a discount. Without explicit tracking, you canno...

(EN_WORDINESS_PREMIUM_AT_A_DISCOUNT)

docs/source/customization/guardrails.md

[style] ~71-~71: Consider a different adjective to strengthen your wording.
Context: ...ent in the reference profile. For async deep research, the worker does not invoke th...

(DEEP_PROFOUND)

docs/source/architecture/agents/deep-researcher.md

[grammar] ~162-~162: Ensure spelling is correct
Context: ...ries concurrently. ## State Model ### DeepResearchAgentState | Field | Type | Default | Description |...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

docs/source/customization/configuration-reference.md

[style] ~425-~425: Consider using “incompatible” to avoid wordiness.
Context: ...only when the active source formats are not compatible with verification. | | skills | objec...

(NOT_ABLE_PREMIUM)

🪛 markdownlint-cli2 (0.22.1)
docs/source/resources/changelog.md

[warning] 6-6: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

docs/source/customization/knowledge-layer.md

[warning] 168-168: Fenced code blocks should be surrounded by blank lines

(MD031, blanks-around-fences)

🔇 Additional comments (35)
CHANGELOG.md (1)

3-34: LGTM!

docs/source/resources/release-notes.md (1)

6-110: LGTM!

docs/source/index.md (1)

16-16: LGTM!

Also applies to: 25-29, 137-137

docs/source/get-started/quick-start.md (1)

140-141: LGTM!

README.md (1)

27-27: LGTM!

Also applies to: 64-102, 134-135, 251-259, 318-319, 406-426

.secrets.baseline (1)

136-136: LGTM!

Also applies to: 358-358

docs/source/customization/guardrails.md (1)

10-23: LGTM!

Also applies to: 37-45, 71-82, 121-135

docs/source/customization/mcp-tools.md (1)

34-35: LGTM!

Also applies to: 214-218, 305-308, 383-385

docs/source/integration/agent-skills.md (1)

14-14: LGTM!

Also applies to: 69-86, 145-145

docs/source/profiling/index.md (2)

194-196: LGTM!

Also applies to: 205-208, 226-226


243-257: 📐 Maintainability & Code Quality

Verify the runtime-path explanation.

The supplied src/aiq_agent/tokenomics/nat_adapter.py snippets support the completion-time bucketing fallback, but they do not prove the run_research_batch / direct-call behavior described here. Please confirm that against the workflow implementation, or narrow this paragraph to the adapter behavior the docs can actually observe. As per path instructions, review documentation for public vs internal boundary clarity.

Source: Path instructions

docs/source/customization/knowledge-layer.md (2)

167-194: 📐 Maintainability & Code Quality

Add a blank line before the OpenSearch YAML fence.

This is the same MD031 markdownlint issue already flagged previously; the fenced block still starts immediately after the heading.

Source: Linters/SAST tools


18-18: LGTM!

Also applies to: 46-59, 78-78, 118-123, 220-220, 255-259, 336-336, 442-449, 463-464, 486-486

docs/source/customization/index.md (1)

19-19: LGTM!

docs/source/customization/configuration-reference.md (1)

155-169: LGTM!

Also applies to: 207-228, 229-232, 262-281, 292-309, 386-388, 399-410, 421-438, 470-474, 580-594

docs/source/deployment/aws-opensearch-serverless.md (1)

10-16: LGTM!

Also applies to: 69-74

docs/source/get-started/installation.md (1)

28-33: LGTM!

Also applies to: 54-54, 99-104, 139-150

docs/source/architecture/agents/deep-researcher.md (1)

8-143: LGTM!

Also applies to: 144-202, 213-218, 232-296, 297-353

docs/source/architecture/agents/index.md (1)

13-15: LGTM!

docs/source/architecture/overview.md (1)

30-32: LGTM!

Also applies to: 69-71, 82-90, 91-128

docs/source/resources/faq.md (1)

29-67: LGTM!

Also applies to: 81-85

docs/source/integration/rest-api.md (1)

17-17: LGTM!

Also applies to: 36-38, 238-242, 283-336, 357-361

docs/source/examples/index.md (1)

17-17: LGTM!

docs/source/examples/skills-sandbox/index.md (3)

8-11: LGTM!

Also applies to: 23-23, 90-95, 140-141, 202-209


75-75: 📐 Maintainability & Code Quality

Verify the Python 3.13 sandbox image.

This example now pins python:3.13-slim; please confirm the sandbox provider and dependencies are actually validated on 3.13, or the copy-paste config will drift from the supported runtime profile. As per path instructions, docs under docs/** should keep example runtime details accurate.

Source: Path instructions


85-88: 🎯 Functional Correctness

Confirm the citation-verification opt-out is intentional.

This snippet disables enable_citation_verification even though the deep-research docs describe verification as enabled by default. If this sandbox workflow truly needs the exception, call it out explicitly; otherwise keep the safer default on. As per path instructions, docs under docs/** should keep copy-paste examples aligned with documented defaults.

Source: Path instructions

docs/source/customization/prompts.md (2)

124-130: Remove parent_report_context_available from the orchestrator table.

This is the same contract mismatch already called out in the earlier review: the flag is passed to the writer subagent, so keeping it in the orchestrator inventory is still misleading.


12-22: LGTM!

Also applies to: 36-40, 49-49, 106-106, 132-182, 207-212, 274-281

docs/source/customization/tools-and-sources.md (2)

88-103: Align the no-catalog fallback wording with the router.

The text still describes a synthetic unconfigured domain, but the router builds general_research and falls back to web_search or the first mapped source. This is the same mismatch flagged in the earlier review.


50-87: LGTM!

Also applies to: 104-108

src/aiq_agent/agents/deep_researcher/README.md (1)

1-57: LGTM!

docs/source/examples/cli-with-local-nims.md (1)

180-186: LGTM!

docs/source/architecture/agents/sandbox.md (1)

20-20: LGTM!

docs/source/architecture/index.md (1)

13-13: LGTM!

docs/source/architecture/data-flow.md (1)

26-26: LGTM!

Also applies to: 46-52, 90-93, 106-108, 118-118, 134-178, 228-241

Comment thread docs/source/integration/rest-api.md
Comment thread docs/source/profiling/index.md Outdated
Comment thread docs/source/resources/changelog.md

@lvojtku lvojtku left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please change all the "See..." to "Refer to..." when referring to users to external links. Approved with minor fixes.

Comment thread docs/source/architecture/agents/deep-researcher.md Outdated
Comment thread docs/source/architecture/agents/deep-researcher.md Outdated
Comment thread docs/source/architecture/data-flow.md Outdated
Comment thread docs/source/architecture/overview.md Outdated
Comment thread docs/source/architecture/overview.md Outdated
Comment thread docs/source/resources/release-notes.md Outdated
Comment thread docs/source/resources/release-notes.md Outdated
Comment thread docs/source/resources/release-notes.md Outdated
Comment thread docs/source/resources/release-notes.md Outdated
Comment thread src/aiq_agent/agents/deep_researcher/README.md Outdated
AjayThorve added 18 commits July 9, 2026 16:16
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@AjayThorve
AjayThorve force-pushed the ajay/docs-aiq-2.2-release branch from d4707dc to bed1fb1 Compare July 10, 2026 07:50
@AjayThorve
AjayThorve requested a review from lvojtku July 10, 2026 07:52

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/source/customization/knowledge-layer.md`:
- Around line 176-181: Update the OpenSearch configuration example to explicitly
warn that opensearch_auth_type: none is only suitable for a protected local
development endpoint; instruct users to configure authentication for all remote
or production deployments and avoid presenting the unauthenticated default as
generally safe.
- Around line 187-190: Document the exact `opensearch_embedding_dim` YAML key
and corresponding environment variable in the OpenSearch configuration section
and environment-variable table, including the default value of `2048`; add a
concrete validation example showing that the embedding model output dimension
must equal the configured value before creating the index.

In `@docs/source/get-started/installation.md`:
- Around line 28-33: Update the link labels in the installation model table for
the Nemotron and GPT-OSS entries to accurately describe their destinations as
“model card” links, or replace them with actual support-matrix URLs where
available. Ensure all affected labels match the linked NVIDIA pages, including
the entries for the intent classifier, deep research researcher, and optional
orchestrator/planner models.

In `@docs/source/profiling/index.md`:
- Line 128: Update the cached-token pricing statement in the profiling
documentation to say cached tokens “may be billed at a discount” rather than
asserting a discount always applies, aligning it with the provider-dependent
pricing guidance elsewhere.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 17ff8bb5-d12f-4ac0-8e91-4b5acdc7c8fc

📥 Commits

Reviewing files that changed from the base of the PR and between d4707dc and bed1fb1.

📒 Files selected for processing (34)
  • .secrets.baseline
  • CHANGELOG.md
  • README.md
  • deploy/helm/README.md
  • deploy/helm/deployment-k8s/README.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/architecture/agents/index.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/architecture/data-flow.md
  • docs/source/architecture/index.md
  • docs/source/architecture/overview.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/guardrails.md
  • docs/source/customization/index.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/mcp-tools.md
  • docs/source/customization/prompts.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/deployment/kubernetes.md
  • docs/source/deployment/observability.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/examples/index.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/get-started/installation.md
  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/integration/agent-skills.md
  • docs/source/integration/rest-api.md
  • docs/source/profiling/index.md
  • docs/source/resources/changelog.md
  • docs/source/resources/faq.md
  • docs/source/resources/release-notes.md
  • src/aiq_agent/agents/deep_researcher/README.md
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: UI Unit Tests
  • GitHub Check: CodeRabbit / Review
  • GitHub Check: Run Harbor skill eval
🧰 Additional context used
📓 Path-based instructions (5)
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update the docs under docs/source/ when behavior, configuration, or workflows change

Files:

  • docs/source/architecture/index.md
  • docs/source/architecture/agents/index.md
  • docs/source/customization/index.md
  • docs/source/examples/index.md
  • docs/source/resources/release-notes.md
  • docs/source/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/observability.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/integration/agent-skills.md
  • docs/source/resources/faq.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/customization/guardrails.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/get-started/installation.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/prompts.md
  • docs/source/deployment/kubernetes.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/integration/rest-api.md
**

⚙️ CodeRabbit configuration file

**:

AI-Q Agent Guidance

Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in .agents/skills/ — load the
relevant skill before starting a workflow it covers.

Project overview

AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.

Primary boundaries:

  • Backend Python package: src/aiq_agent/.
  • Data-source and tool packages: sources/ (each is its own package).
  • Frontends and tooling: frontends/ (web UI in frontends/ui/, eval harnesses
    in frontends/benchmarks/).
  • Configs, deployment, docs: configs/, deploy/, docs/.

Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treat sources/* as independent packages: prefer the smallest change
scoped to the package you are touching.

Repository structure

Path Purpose
src/aiq_agent/ Backend agent, FastAPI extensions, auth, observability, knowledge
sources/ Data-source / tool packages (e.g. tavily_web_search, google_scholar_paper_search)
configs/ Workflow YAML configs (e.g. config_cli_default.yml)
frontends/ui/ Next.js / React / TypeScript / Tailwind / KUI web UI
frontends/benchmarks/ Eval harnesses: freshqa, deepsearch_qa, deepresearch_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/source/ ...

Files:

  • docs/source/architecture/index.md
  • docs/source/architecture/agents/index.md
  • docs/source/customization/index.md
  • docs/source/examples/index.md
  • docs/source/resources/release-notes.md
  • docs/source/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/observability.md
  • docs/source/architecture/agents/sandbox.md
  • deploy/helm/deployment-k8s/README.md
  • CHANGELOG.md
  • docs/source/integration/agent-skills.md
  • docs/source/resources/faq.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/customization/guardrails.md
  • deploy/helm/README.md
  • src/aiq_agent/agents/deep_researcher/README.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/get-started/installation.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/prompts.md
  • docs/source/deployment/kubernetes.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/integration/rest-api.md
  • README.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • docs/source/architecture/index.md
  • docs/source/architecture/agents/index.md
  • docs/source/customization/index.md
  • docs/source/examples/index.md
  • docs/source/resources/release-notes.md
  • docs/source/index.md
  • docs/source/resources/changelog.md
  • docs/source/get-started/quick-start.md
  • docs/source/deployment/observability.md
  • docs/source/architecture/agents/sandbox.md
  • docs/source/integration/agent-skills.md
  • docs/source/resources/faq.md
  • docs/source/examples/skills-sandbox/index.md
  • docs/source/examples/cli-with-local-nims.md
  • docs/source/customization/tools-and-sources.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/customization/guardrails.md
  • docs/source/architecture/data-flow.md
  • docs/source/customization/mcp-tools.md
  • docs/source/architecture/overview.md
  • docs/source/profiling/index.md
  • docs/source/get-started/installation.md
  • docs/source/customization/knowledge-layer.md
  • docs/source/customization/configuration-reference.md
  • docs/source/customization/prompts.md
  • docs/source/deployment/kubernetes.md
  • docs/source/architecture/agents/deep-researcher.md
  • docs/source/integration/rest-api.md
  • README.md
{deploy/**,configs/**}

⚙️ CodeRabbit configuration file

{deploy/**,configs/**}: Review deployment and config changes for secret separation, safe defaults, local-vs-production behavior, Helm and
Docker portability, and documentation parity. Flag committed credentials, environment-specific NVIDIA internals in
public defaults, and changes that make examples diverge from CI-tested paths.

Files:

  • deploy/helm/deployment-k8s/README.md
  • deploy/helm/README.md
src/aiq_agent/agents/**/*

⚙️ CodeRabbit configuration file

src/aiq_agent/agents/**/*: Review agent changes for research workflow correctness, graph state transitions, prompt/tool contracts,
HITL behavior, and failure handling. Flag changes that weaken source attribution, report generation,
async cancellation, checkpointing, or data-source selection without focused tests and docs.

Files:

  • src/aiq_agent/agents/deep_researcher/README.md
🪛 LanguageTool
CHANGELOG.md

[style] ~7-~7: Consider a different adjective to strengthen your wording.
Context: ...ed) Research and reports - Routed deep research now uses explicit source-route...

(DEEP_PROFOUND)

docs/source/resources/faq.md

[grammar] ~29-~29: Ensure spelling is correct
Context: ...ies. - Deep research is thorough (2-10min). An orchestrator coordinates an option...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)


[style] ~43-~43: Consider a different adjective to strengthen your wording.
Context: ... it escalates to the clarifier and then deep research. The clarifier asks only for m...

(DEEP_PROFOUND)


[style] ~45-~45: Consider a different adjective to strengthen your wording.
Context: .../architecture/overview.md). How does deep research choose data sources? The re...

(DEEP_PROFOUND)

docs/source/examples/skills-sandbox/index.md

[style] ~8-~8: Consider a different adjective to strengthen your wording.
Context: ...box This example shows how to run AI-Q deep research with DeepAgents skills and a p...

(DEEP_PROFOUND)

docs/source/customization/tools-and-sources.md

[style] ~51-~51: Consider a different adjective to strengthen your wording.
Context: ... the UI | ## Automatic Source Routing Deep research can run an optional source-rou...

(DEEP_PROFOUND)

docs/source/customization/guardrails.md

[style] ~71-~71: Consider a different adjective to strengthen your wording.
Context: ...ent in the reference profile. For async deep research, the worker does not invoke th...

(DEEP_PROFOUND)

src/aiq_agent/agents/deep_researcher/README.md

[style] ~27-~27: Consider a different adjective to strengthen your wording.
Context: ...is path. - Clarification happens before deep research only when request scope or out...

(DEEP_PROFOUND)

docs/source/architecture/overview.md

[style] ~88-~88: Consider a different adjective to strengthen your wording.
Context: ...rorNone| Preserved user query for deep research | |available_documents|l...

(DEEP_PROFOUND)


[style] ~94-~94: Consider a different adjective to strengthen your wording.
Context: ...ing loop) while reserving multi-stage deep research for complex cases. The intent ...

(DEEP_PROFOUND)

docs/source/profiling/index.md

[style] ~128-~128: ‘at a discount’ might be wordy. Consider a shorter alternative.
Context: ...tion path. - Cached tokens are billed at a discount. Without explicit tracking, you canno...

(EN_WORDINESS_PREMIUM_AT_A_DISCOUNT)

docs/source/customization/configuration-reference.md

[style] ~425-~425: Consider using “incompatible” to avoid wordiness.
Context: ...only when the active source formats are not compatible with verification. | | skills | objec...

(NOT_ABLE_PREMIUM)

docs/source/architecture/agents/deep-researcher.md

[grammar] ~162-~162: Ensure spelling is correct
Context: ...ries concurrently. ## State Model ### DeepResearchAgentState | Field | Type | Default | Description |...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.22.1)
docs/source/resources/changelog.md

[warning] 6-6: First line in a file should be a top-level heading

(MD041, first-line-heading, first-line-h1)

🔇 Additional comments (39)
docs/source/architecture/index.md (1)

13-13: LGTM!

docs/source/architecture/agents/index.md (1)

13-15: LGTM!

docs/source/customization/index.md (1)

19-19: LGTM!

docs/source/examples/index.md (1)

17-17: LGTM!

docs/source/profiling/index.md (2)

118-127: LGTM!

Also applies to: 129-133, 195-197, 206-209, 227-227, 244-260


165-165: 🎯 Functional Correctness

eval.general.output_dir is already used by the tokenomics report

The report CLI already reads eval.general.output_dir from the pricing YAML and uses it as the default tokenomics_report.html path when --output is omitted.

			> Likely an incorrect or invalid review comment.
docs/source/get-started/installation.md (1)

54-54: LGTM!

Also applies to: 99-104, 139-150

docs/source/customization/knowledge-layer.md (1)

18-18: LGTM!

Also applies to: 46-59, 78-78, 118-124, 167-175, 182-185, 192-194, 221-221, 256-260, 337-337, 443-450, 464-465, 487-487

docs/source/resources/changelog.md (1)

6-7: 📐 Maintainability & Code Quality

The include-only changelog still triggers MD041.

This file begins with an {include} directive and has no top-level heading, so markdownlint will continue to fail unless you add an H1 or disable MD041 locally.

Source: Linters/SAST tools

docs/source/customization/prompts.md (1)

124-128: 🎯 Functional Correctness

Verify parent_report_context_available ownership.

The variable is documented for both the orchestrator and writer. A previous review identified it as writer-specific; confirm the current runtime passes it to both before retaining the orchestrator entry.

Also applies to: 166-169

docs/source/resources/release-notes.md (1)

1-133: LGTM!

docs/source/index.md (1)

16-16: LGTM!

Also applies to: 25-29, 137-137

.secrets.baseline (1)

136-136: LGTM!

Also applies to: 172-172, 358-358

docs/source/get-started/quick-start.md (1)

71-71: LGTM!

Also applies to: 140-141

docs/source/customization/configuration-reference.md (1)

82-82: LGTM!

Also applies to: 155-169, 207-232, 262-309, 386-438, 470-474, 580-594

docs/source/deployment/observability.md (1)

18-46: LGTM!

docs/source/architecture/agents/sandbox.md (1)

15-21: LGTM!

Also applies to: 45-50, 59-61, 73-73

deploy/helm/deployment-k8s/README.md (1)

5-5: LGTM!

Also applies to: 18-23, 111-111

CHANGELOG.md (1)

3-40: LGTM!

docs/source/integration/agent-skills.md (1)

14-14: LGTM!

Also applies to: 69-86, 145-145

docs/source/deployment/kubernetes.md (1)

100-112: LGTM!

Also applies to: 132-132, 204-208, 261-261

docs/source/architecture/agents/deep-researcher.md (5)

8-143: LGTM!


144-202: LGTM!


213-226: LGTM!


232-296: LGTM!


297-353: LGTM!

docs/source/resources/faq.md (1)

29-57: LGTM!

Also applies to: 58-67, 81-85

docs/source/examples/skills-sandbox/index.md (1)

8-13: LGTM!

Also applies to: 23-23, 53-53, 75-75, 85-95, 140-141, 202-210

docs/source/examples/cli-with-local-nims.md (1)

183-186: LGTM!

docs/source/customization/tools-and-sources.md (1)

50-109: LGTM!

Also applies to: 208-208

docs/source/deployment/aws-opensearch-serverless.md (1)

10-16: LGTM!

Also applies to: 69-74, 104-104, 241-244

README.md (1)

27-27: LGTM!

Also applies to: 64-84, 134-135, 231-231, 251-259, 318-319, 406-426

docs/source/integration/rest-api.md (1)

238-242: 🗄️ Data Integrity & Integration

No issue: the response shape already matches the docs example. JobStateResponse carries the reconstructed event data in artifacts; state is a null placeholder here, so there’s no separate canonical field for clients to deserialize.

			> Likely an incorrect or invalid review comment.
docs/source/customization/guardrails.md (1)

10-23: LGTM!

Also applies to: 37-45, 71-82, 121-136

deploy/helm/README.md (1)

30-43: LGTM!

Also applies to: 175-178, 293-293, 415-415

src/aiq_agent/agents/deep_researcher/README.md (1)

1-30: LGTM!

Also applies to: 31-45, 46-57

docs/source/architecture/data-flow.md (1)

26-26: LGTM!

Also applies to: 44-68, 99-102, 115-116, 126-126, 142-194, 244-257

docs/source/customization/mcp-tools.md (1)

33-35: LGTM!

Also applies to: 217-218, 284-284, 305-307, 330-330, 381-385

docs/source/architecture/overview.md (1)

30-32: LGTM!

Also applies to: 69-71, 82-128

Comment thread docs/source/customization/knowledge-layer.md
Comment thread docs/source/customization/knowledge-layer.md Outdated
Comment thread docs/source/get-started/installation.md Outdated
Comment thread docs/source/profiling/index.md Outdated
Signed-off-by: Ajay Thorve <athorve@nvidia.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/source/get-started/installation.md (1)

148-150: 🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win

Clarify that none authentication is local-only.

This copy-paste installation guidance lists none alongside remote authentication modes without stating that it is only safe for a protected local development endpoint. Explicitly require basic or SigV4 for remote, shared, and production deployments.

As per coding guidelines, security and authentication guidance must not weaken auth gating or encourage unsafe defaults.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/source/get-started/installation.md` around lines 148 - 150, Update the
OpenSearch authentication guidance near the `configs/config_web_opensearch.yml`
reference to state that `none` is only for protected local development
endpoints; explicitly require `basic` or SigV4 authentication for remote,
shared, and production deployments.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@docs/source/get-started/installation.md`:
- Around line 148-150: Update the OpenSearch authentication guidance near the
`configs/config_web_opensearch.yml` reference to state that `none` is only for
protected local development endpoints; explicitly require `basic` or SigV4
authentication for remote, shared, and production deployments.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: 023312a9-ee13-4ee6-a7c2-a4f37c033512

📥 Commits

Reviewing files that changed from the base of the PR and between bed1fb1 and 21fcfa1.

📒 Files selected for processing (3)
  • docs/source/customization/knowledge-layer.md
  • docs/source/get-started/installation.md
  • docs/source/profiling/index.md
📜 Review details
⏰ Context from checks skipped due to timeout. (4)
  • GitHub Check: Run Harbor skill eval
  • GitHub Check: CodeRabbit / Review
  • GitHub Check: Lint and Hooks
  • GitHub Check: Pytest and Coverage
🧰 Additional context used
📓 Path-based instructions (3)
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update the docs under docs/source/ when behavior, configuration, or workflows change

Files:

  • docs/source/get-started/installation.md
  • docs/source/profiling/index.md
  • docs/source/customization/knowledge-layer.md
**

⚙️ CodeRabbit configuration file

**:

AI-Q Agent Guidance

Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in .agents/skills/ — load the
relevant skill before starting a workflow it covers.

Project overview

AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.

Primary boundaries:

  • Backend Python package: src/aiq_agent/.
  • Data-source and tool packages: sources/ (each is its own package).
  • Frontends and tooling: frontends/ (web UI in frontends/ui/, eval harnesses
    in frontends/benchmarks/).
  • Configs, deployment, docs: configs/, deploy/, docs/.

Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treat sources/* as independent packages: prefer the smallest change
scoped to the package you are touching.

Repository structure

Path Purpose
src/aiq_agent/ Backend agent, FastAPI extensions, auth, observability, knowledge
sources/ Data-source / tool packages (e.g. tavily_web_search, google_scholar_paper_search)
configs/ Workflow YAML configs (e.g. config_cli_default.yml)
frontends/ui/ Next.js / React / TypeScript / Tailwind / KUI web UI
frontends/benchmarks/ Eval harnesses: freshqa, deepsearch_qa, deepresearch_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/source/ ...

Files:

  • docs/source/get-started/installation.md
  • docs/source/profiling/index.md
  • docs/source/customization/knowledge-layer.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • docs/source/get-started/installation.md
  • docs/source/profiling/index.md
  • docs/source/customization/knowledge-layer.md
🪛 LanguageTool
docs/source/profiling/index.md

[style] ~128-~128: ‘at a discount’ might be wordy. Consider a shorter alternative.
Context: ...n path. - Cached tokens may be billed at a discount. Without explicit tracking, you canno...

(EN_WORDINESS_PREMIUM_AT_A_DISCOUNT)

🔇 Additional comments (3)
docs/source/customization/knowledge-layer.md (1)

18-18: LGTM!

Also applies to: 46-59, 78-78, 119-123, 167-204, 216-216, 231-231, 266-270, 347-347, 453-460, 474-475, 497-497

docs/source/get-started/installation.md (1)

28-33: LGTM!

Also applies to: 54-54, 99-104, 139-146

docs/source/profiling/index.md (1)

118-133: LGTM!

Also applies to: 165-165, 195-197, 206-209, 227-227, 244-260

@AjayThorve

Copy link
Copy Markdown
Member Author

@coderabbitai can you re-review/approve?

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@AjayThorve AjayThorve changed the title docs: document AI-Q 2.2 release scope docs: document AI-Q 2.2 candidate scope Jul 10, 2026
@AjayThorve
AjayThorve requested review from a team, lvojtku and tanleach July 10, 2026 18:50

@tanleach tanleach left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for doing this.

Signed-off-by: Ajay Thorve <athorve@nvidia.com>
@AjayThorve

Copy link
Copy Markdown
Member Author

@coderabbitai can you review?

@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

@AjayThorve Triggering a review now.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
README.md (1)

271-271: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Describe es and aoss as SigV4 service values, not authentication modes.

The configuration reference defines authentication modes as none, basic, and sigv4; es and aoss select the SigV4 service. Reword this profile description to avoid users configuring an invalid opensearch_auth_type.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` at line 271, Update the config_web_opensearch.yml profile
description to state that it supports the SigV4 authentication mode with `es`
and `aoss` as service values, rather than describing them as authentication
modes; retain the self-hosted and Tavily details.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 5-6: Update the CHANGELOG introductory text to remove the
nonexistent `release/2.2` branch reference, replacing it with “a future release
branch” or omitting the branch name while preserving the candidate stabilization
context.

---

Outside diff comments:
In `@README.md`:
- Line 271: Update the config_web_opensearch.yml profile description to state
that it supports the SigV4 authentication mode with `es` and `aoss` as service
values, rather than describing them as authentication modes; retain the
self-hosted and Tavily details.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: ac12b2cc-2514-4665-b1e8-6f59c201ec79

📥 Commits

Reviewing files that changed from the base of the PR and between 21fcfa1 and 5abdfd4.

📒 Files selected for processing (9)
  • .secrets.baseline
  • CHANGELOG.md
  • README.md
  • deploy/helm/README.md
  • docs/source/customization/configuration-reference.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/profiling/index.md
📜 Review details
🧰 Additional context used
📓 Path-based instructions (4)
docs/source/**/*

📄 CodeRabbit inference engine (AGENTS.md)

Update the docs under docs/source/ when behavior, configuration, or workflows change

Files:

  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/profiling/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/customization/configuration-reference.md
**

⚙️ CodeRabbit configuration file

**:

AI-Q Agent Guidance

Repository-global instructions for coding agents and for humans reviewing
agent-authored changes. These rules apply to every task in this repository.
Task-specific runbooks live in .agents/skills/ — load the
relevant skill before starting a workflow it covers.

Project overview

AI-Q is an NVIDIA AI Blueprint: an enterprise research agent built on the
NeMo Agent Toolkit (NAT). The deployed product is a research blueprint, not
a general skill runtime. New retrieval sources and tools are NAT functions;
agent behavior is driven by workflow YAML, Jinja2 prompts, and a data-source
registry — not by hard-coded logic.

Primary boundaries:

  • Backend Python package: src/aiq_agent/.
  • Data-source and tool packages: sources/ (each is its own package).
  • Frontends and tooling: frontends/ (web UI in frontends/ui/, eval harnesses
    in frontends/benchmarks/).
  • Configs, deployment, docs: configs/, deploy/, docs/.

Stay inside this repository. If your workspace also contains adjacent repos
(for example a sibling NeMo-Relay checkout), do not edit them as part of an AI-Q
change. Treat sources/* as independent packages: prefer the smallest change
scoped to the package you are touching.

Repository structure

Path Purpose
src/aiq_agent/ Backend agent, FastAPI extensions, auth, observability, knowledge
sources/ Data-source / tool packages (e.g. tavily_web_search, google_scholar_paper_search)
configs/ Workflow YAML configs (e.g. config_cli_default.yml)
frontends/ui/ Next.js / React / TypeScript / Tailwind / KUI web UI
frontends/benchmarks/ Eval harnesses: freshqa, deepsearch_qa, deepresearch_bench
deploy/ Docker Compose and Helm/Kubernetes assets; deploy/.env for secrets
docs/source/ ...

Files:

  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • CHANGELOG.md
  • docs/source/profiling/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • deploy/helm/README.md
  • docs/source/customization/configuration-reference.md
  • README.md
{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}

⚙️ CodeRabbit configuration file

{docs/**,README.md,CONTRIBUTING.md,SECURITY.md,CODE-OF-CONDUCT.md}: Review documentation for command accuracy, branch-name consistency, current CI and copy-pr-bot behavior, public
vs internal boundary clarity, stale examples, and links that no longer match the repository layout.

Files:

  • docs/source/get-started/quick-start.md
  • docs/source/index.md
  • docs/source/profiling/index.md
  • docs/source/deployment/aws-opensearch-serverless.md
  • docs/source/customization/configuration-reference.md
  • README.md
{deploy/**,configs/**}

⚙️ CodeRabbit configuration file

{deploy/**,configs/**}: Review deployment and config changes for secret separation, safe defaults, local-vs-production behavior, Helm and
Docker portability, and documentation parity. Flag committed credentials, environment-specific NVIDIA internals in
public defaults, and changes that make examples diverge from CI-tested paths.

Files:

  • deploy/helm/README.md
🔇 Additional comments (8)
docs/source/get-started/quick-start.md (1)

71-71: LGTM!

Also applies to: 140-141

docs/source/index.md (1)

16-16: LGTM!

.secrets.baseline (1)

136-136: LGTM!

Also applies to: 172-172, 358-358

docs/source/customization/configuration-reference.md (1)

82-82: LGTM!

Also applies to: 155-169, 207-232, 262-281, 292-309, 386-388, 399-410, 421-438, 470-474, 580-594

README.md (1)

27-27: LGTM!

Also applies to: 64-76, 79-98, 103-119, 151-152, 248-248, 268-270, 272-276, 335-336, 423-438, 439-446

docs/source/profiling/index.md (1)

118-133: LGTM!

Also applies to: 165-165, 195-197, 206-209, 227-227, 244-260

docs/source/deployment/aws-opensearch-serverless.md (1)

10-17: LGTM!

Also applies to: 70-75, 105-105, 242-245

deploy/helm/README.md (1)

30-35: LGTM!

Also applies to: 175-178, 293-293, 415-415

Comment thread CHANGELOG.md Outdated
Signed-off-by: Ajay Thorve <athorve@nvidia.com>

@cdgamarose-nv cdgamarose-nv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like everything is covered and it compiles and looks good to me when hosted! Good to merge on my end

@AjayThorve
AjayThorve merged commit 34b35f5 into develop Jul 10, 2026
10 checks passed
@AjayThorve
AjayThorve deleted the ajay/docs-aiq-2.2-release branch July 14, 2026 07:05
@coderabbitai coderabbitai Bot mentioned this pull request Jul 15, 2026
6 tasks
rapids-bot Bot pushed a commit that referenced this pull request Jul 17, 2026
#### Overview

Correct documentation defects found during v2.2.0 documentation QA. Docs-only — no code or schema changes.

- **`docs/source/customization/guardrails.md`** — the *Configuration Shape* example now includes each middleware's `workflow_functions` field selection (matching `configs/config_web_default_guardrails.yml`). Previously the example attached middleware with no field selection, which resolves to **zero guarded fields** — a boundary that looks configured but is not enforced. The surrounding prose now calls out that failure mode.
- **`docs/source/customization/mcp-tools.md`** — no longer implies `configs/config_web_frag_mcp_auth.yml` declares a `per_user_mcp_client` function group (it deliberately omits it; the per-user MCP client is built in code per job). Security Guidance now shows `per_user_auth` as the nested `PerUserAuthConfig` object instead of a bare boolean.
- **`deploy/.env.example`** — documents `AIQ_CONTENT_ENCRYPTION` / `AIQ_CONTENT_ENCRYPTION_KEY` (content encryption) and `OPENAI_API_KEY` (required by `configs/config_frontier_models.yml`).
- **`skills/aiq-research` and `skills/aiq-deploy`** — version stamps bumped to `2.2.0`.

Two related QA items were already resolved by #322 (stale MCP in-worker-refresh wording; the README config table and researcher-LLM default) and need no change here.

#### DCO sign-off for the squash commit

Signed-off-by: Tanner Leach <tleach@nvidia.com>

#### Validation

- Guardrails example parsed; its `workflow_functions` verified **byte-equal** to `config_web_default_guardrails.yml`, and a config copied from the example yields non-empty guarded targets.
- `per_user_auth` example validated against the real `PerUserAuthConfig` fields and the shipped `gdrive` source.
- `scripts/validate_skills.py` → 11 skills OK; no stale `2.1.x` remains in the edited skills.
- Both changed docs MyST-parsed with the repo's enabled extensions and diffed against their pre-edit versions → **0 new warnings/errors**; the nested `per_user_auth` code block renders inside its list item.
- `git diff --check` clean; new `.env.example` entries are commented placeholders with no values.

- [x] I ran the relevant local checks or explained why they are not applicable.
- [x] I added or updated tests for behavior changes. *(docs-only; no behavior change, so no tests)*
- [x] I updated documentation for user-facing or contributor-facing changes.
- [x] I confirmed this PR does not include secrets, credentials, or internal-only data.
- [x] I certify this contribution under the Developer Certificate of Origin (DCO) and signed my commits with `git commit -s` or an equivalent sign-off.
- [x] I replaced the DCO sign-off placeholder with my GitHub commit identity and kept the required angle brackets around the email address.

#### Where should reviewers start?

`docs/source/customization/guardrails.md` — the security-relevant change. Confirm the *Configuration Shape* example's `workflow_functions` matches `configs/config_web_default_guardrails.yml` so a config copied from the docs actually guards the agent boundary.

#### Related Issues

- N/A — found during v2.2.0 documentation QA; no public tracking issue.



## Summary by CodeRabbit

* **Documentation**
  * Expanded the deployment environment example with optional frontier-model configuration and optional at-rest content encryption settings.
  * Improved NeMo Guardrails “Configuration Shape” examples, clarifying how guarded field selection is applied.
  * Updated per-user MCP OAuth guidance, including the required `per_user_auth` block structure and clearer security/token handling notes.
  * Updated deploy and research skill docs for Blueprint **2.2.0** compatibility.
* **Configuration**
  * Documented the encryption mode and related encryption key variables, plus the frontier-model API key placeholder.

Authors:
  - Tanner Leach (https://github.com/tanleach)

Approvers:
  - Chantal D Gama Rose (https://github.com/cdgamarose-nv)

URL: #359
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants