Skip to content

fix: haystack deep research agent must be part of examples#927

Merged
rapids-bot[bot] merged 1 commit intoNVIDIA:release/1.3from
willkill07:wkk_fix-haystack-deep-research-agent-integration
Oct 6, 2025
Merged

fix: haystack deep research agent must be part of examples#927
rapids-bot[bot] merged 1 commit intoNVIDIA:release/1.3from
willkill07:wkk_fix-haystack-deep-research-agent-integration

Conversation

@willkill07
Copy link
Member

@willkill07 willkill07 commented Oct 6, 2025

Prior to this PR, we did not have the Haystack Deep Research Agent part of the examples.

This PR:

  • Adds it to toplevel examples
  • Adds python 3.13 support
  • Hoists nvidia_haystack as a common package

The update to uv.lock is superficial since there is no new package introduced.

Description

Closes

By Submitting this PR I confirm:

  • I am familiar with the Contributing Guidelines.
  • We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.
    • Any contribution which contains commits that are not Signed-Off will not be accepted.
  • When the PR is ready for review, new or existing tests cover these changes.
  • When the PR is ready for review, the documentation is up to date with these changes.

Summary by CodeRabbit

  • New Features

    • Added “Haystack Deep Research Agent” example to the examples catalog.
    • Introduced an optional “nvidia_haystack” feature for streamlined installation via extras.
    • Unified multi-framework setup to use the consolidated extra instead of a separate package.
  • Chores

    • Updated and pinned dependencies for improved stability; removed deprecated NVIDIA Haystack package in favor of extras.
    • Expanded Python compatibility to include 3.13 (now <3.14).
    • Aligned workspace configuration to reference the new example and extras setup.

…ples

Signed-off-by: Will Killian <wkillian@nvidia.com>
@willkill07 willkill07 requested review from a team as code owners October 6, 2025 21:12
@coderabbitai
Copy link

coderabbitai bot commented Oct 6, 2025

Walkthrough

Dependency specifications updated to use nvidia-nat extras (including nvidia_haystack), removed standalone nvidia-haystack in examples, pinned haystack-ai, adjusted Python upper bound to <3.14, and added a new example (nat_haystack_deep_research_agent) with corresponding workspace source mappings.

Changes

Cohort / File(s) Summary of Changes
Examples dependency updates
examples/frameworks/haystack_deep_research_agent/pyproject.toml, examples/frameworks/multi_frameworks/pyproject.toml
Switch nvidia-haystack to nvidia-nat extras; remove separate nvidia-haystack in multi_frameworks; pin haystack-ai to ~2.18.1 in haystack_deep_research_agent; set Python <3.14; add tool.uv.sources for nvidia-nat (path "../../..", editable=true).
Root project metadata
pyproject.toml
Add optional dependency group "nvidia_haystack" (nvidia-haystack~=0.3.0); register example "nat_haystack_deep_research_agent" in examples list; add workspace source under tool.uv.sources pointing to examples/frameworks/haystack_deep_research_agent (editable=true).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

improvement, non-breaking

Pre-merge checks and finishing touches

Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error)
Check name Status Explanation Resolution
Title Check ❌ Error Although the title concisely describes the change and falls within the length limit, it is written as a declarative statement of necessity (“must be part of examples”) rather than using the imperative mood required for pull request titles. Please rephrase the title in the imperative mood, for example “Add haystack deep research agent to examples,” to clearly convey the action being performed.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@coderabbitai coderabbitai bot added improvement Improvement to existing functionality non-breaking Non-breaking change labels Oct 6, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (3)
pyproject.toml (3)

145-154: Restore the documented sort order in optional deps.

The nvidia_haystack entry should follow the existing alphabetical ordering (“Keep sorted!!!”). Please move it after litellm and before openai.

Apply this diff to restore the ordering:

-nvidia_haystack = [
-  "nvidia-haystack~=0.3.0",
-]
 litellm = [
   "litellm==1.74.9"
 ]
+nvidia_haystack = [
+  "nvidia-haystack~=0.3.0",
+]
 openai = [
   "openai~=1.106"
 ]

98-126: Keep the examples list alphabetical.

Every entry is alphabetized; the new nat_haystack_deep_research_agent should land after nat_email_phishing_analyzer and before nat_multi_frameworks.

Apply this diff to reinsert the example in the sorted position:

   "nat_agno_personal_finance",
-  "nat_haystack_deep_research_agent",
   "nat_alert_triage_agent",
   "nat_automated_description_generation",
   "nat_email_phishing_analyzer",
+  "nat_haystack_deep_research_agent",
   "nat_multi_frameworks",

184-212: Match the workspace source ordering to the examples list.

The sources here mirror the examples list and are kept alphabetical. Please relocate nat_haystack_deep_research_agent after nat_email_phishing_analyzer.

Apply this diff to keep the section sorted:

 nat_agno_personal_finance = { path = "examples/frameworks/agno_personal_finance", editable = true }
-nat_haystack_deep_research_agent = { path = "examples/frameworks/haystack_deep_research_agent", editable = true }
 nat_alert_triage_agent = { path = "examples/advanced_agents/alert_triage_agent", editable = true }
 nat_automated_description_generation = { path = "examples/custom_functions/automated_description_generation", editable = true }
 nat_email_phishing_analyzer = { path = "examples/evaluation_and_profiling/email_phishing_analyzer", editable = true }
+nat_haystack_deep_research_agent = { path = "examples/frameworks/haystack_deep_research_agent", editable = true }
 nat_multi_frameworks = { path = "examples/frameworks/multi_frameworks", editable = true }
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 94e64ac and 8bae206.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • examples/frameworks/haystack_deep_research_agent/pyproject.toml (1 hunks)
  • examples/frameworks/multi_frameworks/pyproject.toml (1 hunks)
  • pyproject.toml (3 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/*

⚙️ CodeRabbit configuration file

**/*: # Code Review Instructions

  • Ensure the code follows best practices and coding standards. - For Python code, follow
    PEP 20 and
    PEP 8 for style guidelines.
  • Check for security vulnerabilities and potential issues. - Python methods should use type hints for all parameters and return values.
    Example:
    def my_function(param1: int, param2: str) -> bool:
        pass
  • For Python exception handling, ensure proper stack trace preservation:
    • When re-raising exceptions: use bare raise statements to maintain the original stack trace,
      and use logger.error() (not logger.exception()) to avoid duplicate stack trace output.
    • When catching and logging exceptions without re-raising: always use logger.exception()
      to capture the full stack trace information.

Documentation Review Instructions - Verify that documentation and comments are clear and comprehensive. - Verify that the documentation doesn't contain any TODOs, FIXMEs or placeholder text like "lorem ipsum". - Verify that the documentation doesn't contain any offensive or outdated terms. - Verify that documentation and comments are free of spelling mistakes, ensure the documentation doesn't contain any

words listed in the ci/vale/styles/config/vocabularies/nat/reject.txt file, words that might appear to be
spelling mistakes but are listed in the ci/vale/styles/config/vocabularies/nat/accept.txt file are OK.

Misc. - All code (except .mdc files that contain Cursor rules) should be licensed under the Apache License 2.0,

and should contain an Apache License 2.0 header comment at the top of each file.

  • Confirm that copyright years are up-to date whenever a file is changed.

Files:

  • examples/frameworks/multi_frameworks/pyproject.toml
  • examples/frameworks/haystack_deep_research_agent/pyproject.toml
  • pyproject.toml
examples/**/*

⚙️ CodeRabbit configuration file

examples/**/*: - This directory contains example code and usage scenarios for the toolkit, at a minimum an example should
contain a README.md or file README.ipynb.

  • If an example contains Python code, it should be placed in a subdirectory named src/ and should
    contain a pyproject.toml file. Optionally, it might also contain scripts in a scripts/ directory.
  • If an example contains YAML files, they should be placed in a subdirectory named configs/. - If an example contains sample data files, they should be placed in a subdirectory named data/, and should
    be checked into git-lfs.

Files:

  • examples/frameworks/multi_frameworks/pyproject.toml
  • examples/frameworks/haystack_deep_research_agent/pyproject.toml
🧠 Learnings (2)
📓 Common learnings
Learnt from: CR
PR: NVIDIA/NeMo-Agent-Toolkit#0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-23T18:39:15.023Z
Learning: Applies to packages/*/pyproject.toml : In packages, declare a dependency on nvidia-nat or packages starting with nvidia-nat-
📚 Learning: 2025-09-23T18:39:15.023Z
Learnt from: CR
PR: NVIDIA/NeMo-Agent-Toolkit#0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2025-09-23T18:39:15.023Z
Learning: Applies to packages/*/pyproject.toml : In packages, declare a dependency on nvidia-nat or packages starting with nvidia-nat-

Applied to files:

  • examples/frameworks/multi_frameworks/pyproject.toml
  • examples/frameworks/haystack_deep_research_agent/pyproject.toml
  • pyproject.toml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: CI Pipeline / Check

@willkill07
Copy link
Member Author

/merge

@rapids-bot rapids-bot bot merged commit 6460b4b into NVIDIA:release/1.3 Oct 6, 2025
17 checks passed
@willkill07 willkill07 deleted the wkk_fix-haystack-deep-research-agent-integration branch October 23, 2025 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement to existing functionality non-breaking Non-breaking change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants