fix: haystack deep research agent must be part of examples#927
Conversation
…ples Signed-off-by: Will Killian <wkillian@nvidia.com>
WalkthroughDependency 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
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Suggested labels
Pre-merge checks and finishing touchesImportant Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
✅ Passed checks (2 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
pyproject.toml (3)
145-154: Restore the documented sort order in optional deps.The
nvidia_haystackentry should follow the existing alphabetical ordering (“Keep sorted!!!”). Please move it afterlitellmand beforeopenai.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_agentshould land afternat_email_phishing_analyzerand beforenat_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_agentafternat_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
⛔ Files ignored due to path filters (1)
uv.lockis 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
raisestatements to maintain the original stack trace,
and uselogger.error()(notlogger.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.txtfile, words that might appear to be
spelling mistakes but are listed in theci/vale/styles/config/vocabularies/nat/accept.txtfile 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.tomlexamples/frameworks/haystack_deep_research_agent/pyproject.tomlpyproject.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 apyproject.tomlfile. Optionally, it might also contain scripts in ascripts/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 nameddata/, and should
be checked into git-lfs.
Files:
examples/frameworks/multi_frameworks/pyproject.tomlexamples/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.tomlexamples/frameworks/haystack_deep_research_agent/pyproject.tomlpyproject.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
|
/merge |
Prior to this PR, we did not have the Haystack Deep Research Agent part of the examples.
This PR:
nvidia_haystackas a common packageThe update to uv.lock is superficial since there is no new package introduced.
Description
Closes
By Submitting this PR I confirm:
Summary by CodeRabbit
New Features
Chores