Update currency agent A2A example instructions to use openai models#1372
Conversation
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
|
Warning Rate limit exceeded@AnuradhaKaruppiah has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 15 minutes and 46 seconds before requesting another review. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📒 Files selected for processing (1)
WalkthroughUpdated three A2A example READMEs to reframe workflows around the NVIDIA NeMo Agent Toolkit, replace Google Gemini key guidance with NVIDIA/OpenAI API key setup and a Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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 |
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @examples/A2A/currency_agent_a2a/README.md:
- Line 87: The comment labeling gpt-3.5-turbo as a "Mini model" is incorrect;
update the line that sets TOOL_LLM_NAME (e.g., TOOL_LLM_NAME=gpt-3.5-turbo) to
either change the comment to accurately describe it as a standard model (e.g.,
"# Standard model") or switch the value to a true mini model like gpt-4o-mini if
you intend a cost-effective option, and ensure the inline comment matches the
chosen model.
- Line 57: Update the first substantive mention of the toolkit in the README
sentence "Follow the instructions in the Install Guide... to create the
development environment and install NeMo Agent toolkit" to use the full name
"NVIDIA NeMo Agent toolkit" (i.e., replace "NeMo Agent toolkit" with "NVIDIA
NeMo Agent toolkit") while leaving subsequent occurrences unchanged to maintain
consistent branding.
🧹 Nitpick comments (1)
examples/A2A/currency_agent_a2a/README.md (1)
77-77: Consider using consistent toolkit version reference.The comment references "NAT 1.4.0," which uses an acronym form. For consistency with documentation standards, consider using the full product name "NVIDIA NeMo Agent Toolkit 1.4.0" or the established lowercase identifier form in version contexts.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
examples/A2A/currency_agent_a2a/README.md
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{md,mdx}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx}: Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Files:
examples/A2A/currency_agent_a2a/README.md
**/*.{md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx,rst}: Documentation must be clear, comprehensive, and free of TODOs, FIXMEs, placeholder text, offensive or outdated terms, and spelling mistakes
Do not use words listed in 'ci/vale/styles/config/vocabularies/nat/reject.txt' in documentation
Words listed in 'ci/vale/styles/config/vocabularies/nat/accept.txt' are acceptable even if they appear to be spelling mistakes
Files:
examples/A2A/currency_agent_a2a/README.md
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}: Every file must start with the standard SPDX Apache-2.0 header
Confirm that copyright years are up-to-date whenever a file is changed
All source files must include the SPDX Apache-2.0 header template
Files:
examples/A2A/currency_agent_a2a/README.md
**/*.{py,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
Version numbers are derived automatically by 'setuptools-scm'; never hard-code them in code or docs
Files:
examples/A2A/currency_agent_a2a/README.md
**/*
⚙️ 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 (except for return values of
None,
in that situation no return type hint is needed).
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.
- Documentation in Markdown files should not contain usage of a possessive 's with inanimate objects
(ex: "the system's performance" should be "the performance of the system").- Documentation in Markdown files should not use NAT as an acronym, always spell out NeMo Agent Toolkit.
The exception to this rule is when referring to package names or code identifiers that contain "nat", th...
Files:
examples/A2A/currency_agent_a2a/README.md
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/A2A/currency_agent_a2a/README.md
🧠 Learnings (4)
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T16:32:00.641Z
Learnt from: mnajafian-nv
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1324
File: examples/config_inheritance/pyproject.toml:15-15
Timestamp: 2026-01-05T16:32:00.641Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, the develop branch may reference unreleased versions of nvidia-nat (e.g., 1.5) in pyproject.toml dependency specifications even before those versions are published to PyPI. This is intentional pre-release version management, and the workspace dependencies use editable local installs (e.g., `nvidia-nat = { path = "../..", editable = true }`) to ensure development works correctly with the local sources.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Use technical identifiers: 'nat' for API namespace and CLI tool, 'nvidia-nat' for package name, 'NAT_' prefix for environment variables, 'NeMo-Agent-Toolkit' for URLs and directory names
Applied to files:
examples/A2A/currency_agent_a2a/README.md
🔇 Additional comments (2)
examples/A2A/currency_agent_a2a/README.md (2)
59-66: Clear and well-structured API key setup instructions.The "Set Up API Keys" prerequisite section is clear and provides proper guidance for users on setting NVIDIA and OpenAI credentials.
82-86: Verify environment variable names match the external LangGraph agent expectations.The new .env configuration (lines 84-87) sets variables for the external LangGraph currency agent. Confirm that the variable names (
API_KEY,model_source,TOOL_LLM_URL,TOOL_LLM_NAME) and values match what the LangGraph agent expects from its.envfile.
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
…agent-model-change
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
examples/A2A/math_assistant_a2a/README.md (1)
19-19: Fix toolkit naming convention in body text.The first reference to the toolkit in body text should use lowercase "toolkit". Per coding guidelines, use "NVIDIA NeMo Agent toolkit" for the full name in body text.
🔧 Proposed fix
-This example demonstrates an end-to-end A2A workflow with NVIDIA NeMo Agent Toolkit functioning as both A2A client and server. The workflow performs mathematical calculations integrated with time queries and logical reasoning, combining remote calculator operations with local time services and conditional evaluation tools. +This example demonstrates an end-to-end A2A workflow with NVIDIA NeMo Agent toolkit functioning as both A2A client and server. The workflow performs mathematical calculations integrated with time queries and logical reasoning, combining remote calculator operations with local time services and conditional evaluation tools.examples/A2A/currency_agent_a2a/README.md (2)
20-20: Fix grammatical error and toolkit naming convention.Two issues on this line:
- Grammatical: "a NVIDIA" should be "an NVIDIA" (NVIDIA starts with a vowel sound)
- Naming convention: Use "NVIDIA NeMo Agent toolkit" (lowercase "toolkit") for the full name in body text per coding guidelines
🔧 Proposed fix
-This example demonstrates a NVIDIA NeMo Agent Toolkit workflow connecting to a third-party A2A server, the LangGraph-based currency agent. The workflow acts as an A2A client to perform currency conversions and financial queries with time-based context. +This example demonstrates an NVIDIA NeMo Agent toolkit workflow connecting to a third-party A2A server, the LangGraph-based currency agent. The workflow acts as an A2A client to perform currency conversions and financial queries with time-based context.
77-77: Remove hardcoded version number from documentation.Per coding guidelines, version numbers should not be hard-coded in code or documentation since they are derived automatically by
setuptools-scm. The reference to "NAT 1.4.0" should be removed or made more generic.🔧 Proposed fix
-git checkout eb3885f # tested on 12/2025 with NAT 1.4.0 +git checkout eb3885f # tested on 12/2025
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
examples/A2A/currency_agent_a2a/README.mdexamples/A2A/math_assistant_a2a/README.md
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{md,mdx}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx}: Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
**/*.{md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx,rst}: Documentation must be clear, comprehensive, and free of TODOs, FIXMEs, placeholder text, offensive or outdated terms, and spelling mistakes
Do not use words listed in 'ci/vale/styles/config/vocabularies/nat/reject.txt' in documentation
Words listed in 'ci/vale/styles/config/vocabularies/nat/accept.txt' are acceptable even if they appear to be spelling mistakes
Files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}: Every file must start with the standard SPDX Apache-2.0 header
Confirm that copyright years are up-to-date whenever a file is changed
All source files must include the SPDX Apache-2.0 header template
Files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
**/*.{py,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
Version numbers are derived automatically by 'setuptools-scm'; never hard-code them in code or docs
Files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
**/*
⚙️ 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 (except for return values of
None,
in that situation no return type hint is needed).
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.
- Documentation in Markdown files should not contain usage of a possessive 's with inanimate objects
(ex: "the system's performance" should be "the performance of the system").- Documentation in Markdown files should not use NAT as an acronym, always spell out NeMo Agent Toolkit.
The exception to this rule is when referring to package names or code identifiers that contain "nat", th...
Files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
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/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
🧠 Learnings (6)
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Applied to files:
examples/A2A/math_assistant_a2a/README.mdexamples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Use technical identifiers: 'nat' for API namespace and CLI tool, 'nvidia-nat' for package name, 'NAT_' prefix for environment variables, 'NeMo-Agent-Toolkit' for URLs and directory names
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2025-12-12T20:49:51.370Z
Learnt from: zterek
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1243
File: examples/risk_and_security/retail_agent/src/nat_retail_agent/configs/red-teaming.yml:1-98
Timestamp: 2025-12-12T20:49:51.370Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, most YAML configuration files use 2-space indentation rather than 4-space indentation. When reviewing YAML files, prefer consistency with the existing codebase style (2-space indentation) over the stated coding guideline (4-space indentation) until a repository-wide standardization is performed.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2025-08-22T20:29:13.433Z
Learnt from: AnuradhaKaruppiah
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 701
File: examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-with-custom-post-process.yml:16-18
Timestamp: 2025-08-22T20:29:13.433Z
Learning: In the NeMo-Agent-Toolkit project, configuration consistency across example files is prioritized over removing unused config options, even when those options aren't currently implemented in the runtime.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T16:32:00.641Z
Learnt from: mnajafian-nv
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1324
File: examples/config_inheritance/pyproject.toml:15-15
Timestamp: 2026-01-05T16:32:00.641Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, the develop branch may reference unreleased versions of nvidia-nat (e.g., 1.5) in pyproject.toml dependency specifications even before those versions are published to PyPI. This is intentional pre-release version management, and the workspace dependencies use editable local installs (e.g., `nvidia-nat = { path = "../..", editable = true }`) to ensure development works correctly with the local sources.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
🔇 Additional comments (3)
examples/A2A/math_assistant_a2a/README.md (1)
61-65: LGTM!The subsequent references to "NeMo Agent toolkit" correctly use lowercase "toolkit" per coding guidelines. Content is well-organized, clear, and free of TODOs, FIXMEs, and spelling errors.
examples/A2A/currency_agent_a2a/README.md (2)
59-99: API key setup is well-documented.The new "Set Up API Keys" section and the updated Step 3 with OpenAI model configuration are clear and comprehensive. The shift from Gemini to OpenAI aligns with the PR objectives. The environment variable setup and .env file creation instructions are appropriately detailed. Based on learnings, YAML configuration files in this repository use 2-space indentation, though no YAML is directly shown in these README changes.
52-186: Content structure and clarity are solid.The README follows a consistent structure with the math_assistant_a2a example, providing clear architecture diagrams, setup instructions, configuration details, troubleshooting guidance, and related examples. Documentation is free of TODOs, FIXMEs, and spelling errors. The tool composition explanation clearly distinguishes between per-user A2A clients and shared MCP tools, which is important for understanding the architecture.
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
willkill07
left a comment
There was a problem hiding this comment.
Approving with suggestion of using a newer OpenAI model
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
There was a problem hiding this comment.
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)
examples/A2A/math_assistant_a2a_protected/README.md (1)
233-233: Avoid possessive 's with inanimate objects.Line 233 uses "Keycloak's standard paths" which should be rewritten without the possessive 's to follow documentation style guidelines.
Rewrite possessive construction
- **Note:** These endpoints use Keycloak's standard paths (`/protocol/openid-connect/*`), not generic `/oauth/*` paths. The NeMo Agent toolkit A2A client discovers these URLs automatically from the discovery endpoint. + **Note:** These endpoints use standard Keycloak paths (`/protocol/openid-connect/*`), not generic `/oauth/*` paths. The NeMo Agent toolkit A2A client discovers these URLs automatically from the discovery endpoint.
🤖 Fix all issues with AI agents
In @examples/A2A/currency_agent_a2a/README.md:
- Line 82: Fix the heading spacing in the README by updating the line that
currently reads "# Step 3:Set the environment variables for the currency agent"
to include a space after the colon so it reads "# Step 3: Set the environment
variables for the currency agent"; this is the only change needed in the README
entry for Step 3.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
examples/A2A/currency_agent_a2a/README.mdexamples/A2A/math_assistant_a2a_protected/README.mdexamples/README.md
🧰 Additional context used
📓 Path-based instructions (7)
**/*.{md,mdx}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx}: Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
**/*.{md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{md,mdx,rst}: Documentation must be clear, comprehensive, and free of TODOs, FIXMEs, placeholder text, offensive or outdated terms, and spelling mistakes
Do not use words listed in 'ci/vale/styles/config/vocabularies/nat/reject.txt' in documentation
Words listed in 'ci/vale/styles/config/vocabularies/nat/accept.txt' are acceptable even if they appear to be spelling mistakes
Files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
**/*.{py,js,ts,tsx,jsx,sh,yaml,yml,json,toml,md,mdx,rst}: Every file must start with the standard SPDX Apache-2.0 header
Confirm that copyright years are up-to-date whenever a file is changed
All source files must include the SPDX Apache-2.0 header template
Files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
**/*.{py,md,mdx,rst}
📄 CodeRabbit inference engine (.cursor/rules/general.mdc)
Version numbers are derived automatically by 'setuptools-scm'; never hard-code them in code or docs
Files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
**/*
⚙️ 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 (except for return values of
None,
in that situation no return type hint is needed).
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.
- Documentation in Markdown files should not contain usage of a possessive 's with inanimate objects
(ex: "the system's performance" should be "the performance of the system").- Documentation in Markdown files should not use NAT as an acronym, always spell out NeMo Agent Toolkit.
The exception to this rule is when referring to package names or code identifiers that contain "nat", th...
Files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
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/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.mdexamples/README.md
examples/README.md
⚙️ CodeRabbit configuration file
- Ensure that the README.md file is up-to-date with the latest changes in the project. - Ensure that there is an entry for each example under the examples directory which contains a README.md file in the examples list. - Any added examples should be added to the README.md file. - Any removed examples should be removed from the README.md file. - Example entries should be categorized by the directory they are located in.
Files:
examples/README.md
🧠 Learnings (8)
📓 Common learnings
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Use technical identifiers: 'nat' for API namespace and CLI tool, 'nvidia-nat' for package name, 'NAT_' prefix for environment variables, 'NeMo-Agent-Toolkit' for URLs and directory names
Learnt from: AnuradhaKaruppiah
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 701
File: examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-with-custom-post-process.yml:16-18
Timestamp: 2025-08-22T20:29:13.433Z
Learning: In the NeMo-Agent-Toolkit project, configuration consistency across example files is prioritized over removing unused config options, even when those options aren't currently implemented in the runtime.
Learnt from: zterek
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1243
File: examples/risk_and_security/retail_agent/src/nat_retail_agent/configs/red-teaming.yml:1-98
Timestamp: 2025-12-12T20:49:51.370Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, most YAML configuration files use 2-space indentation rather than 4-space indentation. When reviewing YAML files, prefer consistency with the existing codebase style (2-space indentation) over the stated coding guideline (4-space indentation) until a repository-wide standardization is performed.
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Examples should contain at minimum a 'README.md' or 'README.ipynb' file
Applied to files:
examples/A2A/math_assistant_a2a_protected/README.mdexamples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Never use deprecated names: 'Agent Intelligence toolkit', 'aiqtoolkit', 'AgentIQ', 'AIQ', or 'aiq' in documentation; update any occurrences unless intentionally referring to deprecated versions or implementing compatibility layers
Applied to files:
examples/A2A/currency_agent_a2a/README.mdexamples/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Applies to **/*.{md,mdx} : Use 'NVIDIA NeMo Agent toolkit' for full name (first use), 'NeMo Agent toolkit' or 'the toolkit' for subsequent references, and 'Toolkit' (capital T) in titles/headings, 'toolkit' (lowercase t) in body text
Applied to files:
examples/A2A/currency_agent_a2a/README.mdexamples/README.md
📚 Learning: 2026-01-05T15:46:49.676Z
Learnt from: CR
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 0
File: .cursor/rules/general.mdc:0-0
Timestamp: 2026-01-05T15:46:49.676Z
Learning: Use technical identifiers: 'nat' for API namespace and CLI tool, 'nvidia-nat' for package name, 'NAT_' prefix for environment variables, 'NeMo-Agent-Toolkit' for URLs and directory names
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2025-12-12T20:49:51.370Z
Learnt from: zterek
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1243
File: examples/risk_and_security/retail_agent/src/nat_retail_agent/configs/red-teaming.yml:1-98
Timestamp: 2025-12-12T20:49:51.370Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, most YAML configuration files use 2-space indentation rather than 4-space indentation. When reviewing YAML files, prefer consistency with the existing codebase style (2-space indentation) over the stated coding guideline (4-space indentation) until a repository-wide standardization is performed.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2025-08-22T20:29:13.433Z
Learnt from: AnuradhaKaruppiah
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 701
File: examples/evaluation_and_profiling/simple_calculator_eval/src/nat_simple_calculator_eval/configs/config-with-custom-post-process.yml:16-18
Timestamp: 2025-08-22T20:29:13.433Z
Learning: In the NeMo-Agent-Toolkit project, configuration consistency across example files is prioritized over removing unused config options, even when those options aren't currently implemented in the runtime.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
📚 Learning: 2026-01-05T16:32:00.641Z
Learnt from: mnajafian-nv
Repo: NVIDIA/NeMo-Agent-Toolkit PR: 1324
File: examples/config_inheritance/pyproject.toml:15-15
Timestamp: 2026-01-05T16:32:00.641Z
Learning: In the NVIDIA/NeMo-Agent-Toolkit repository, the develop branch may reference unreleased versions of nvidia-nat (e.g., 1.5) in pyproject.toml dependency specifications even before those versions are published to PyPI. This is intentional pre-release version management, and the workspace dependencies use editable local installs (e.g., `nvidia-nat = { path = "../..", editable = true }`) to ensure development works correctly with the local sources.
Applied to files:
examples/A2A/currency_agent_a2a/README.md
🔇 Additional comments (5)
examples/README.md (1)
157-160: Excellent A2A example descriptions that clearly distinguish workflow patterns.The three A2A example descriptions clearly communicate their distinct purposes: external client integration, end-to-end toolkit workflows, and OAuth2-protected variants. Naming conventions correctly use "NVIDIA NeMo Agent Toolkit" and proper toolkit references throughout.
examples/A2A/currency_agent_a2a/README.md (1)
20-20: Strong update to example overview that clearly positions the toolkit's role.The revised description effectively communicates the per-user A2A client pattern and external integration, setting clear expectations for what this example demonstrates. The naming convention properly uses "NVIDIA NeMo Agent Toolkit" on first reference.
examples/A2A/math_assistant_a2a_protected/README.md (3)
19-22: Excellent comprehensive documentation for OAuth2-protected A2A workflow.The updated overview clearly establishes the three-component architecture and per-user OAuth2 patterns. The detailed descriptions of Protected A2A Server, OAuth2 A2A Client, and Authorization Server roles are accurate and well-articulated. Naming conventions properly use "NVIDIA NeMo Agent Toolkit" and maintain consistent terminology throughout.
38-139: Excellent architectural documentation with clear diagrams and OAuth2 flow explanation.The mermaid diagrams effectively visualize the three-component architecture and the OAuth2 flow sequence. The detailed flow explanation with numbered steps (discovery, authorization, token exchange, authenticated communication) provides clear understanding of the per-user OAuth2 workflow. This level of documentation clarity is valuable for developers implementing similar patterns.
161-378: Comprehensive setup and production guidance with clear step-by-step instructions.The setup instructions are thorough and well-organized, from Keycloak initialization through client registration to running both server and client. The inclusion of expected behaviors (lines 298-305, 348-351), terminal labels, and example outputs greatly improves clarity. The Production Considerations section appropriately emphasizes security practices like HTTPS, secret management, and realm separation for production deployments.
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
Signed-off-by: Anuradha Karuppiah <anuradhak@nvidia.com>
|
Thx for the review Will |
|
/merge |
…VIDIA#1372) Closes: nvbugs-5792154 This PR adds documentation and configuration support for using openai models with the LangGraph currency agent. Additionally the summary of the three a2a examples have been updated to highlight the difference between them: 1. currency_agent_a2a: The toolkit is an a2a client and the example demonstrates interop with a 3rd party a2a server 2. math_assistant_a2a: The toolkit is both a2a client and a2a server 3. math_assistant_a2a_protected: Same as (2) but with oauth2-protected secure communication between the a2a client and a2a server ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/NeMo-Agent-Toolkit/blob/develop/docs/source/resources/contributing/index.md). - 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 * **Documentation** * Rewrote A2A example READMEs to center NVIDIA NeMo Agent Toolkit roles (client/server) and clearer A2A workflows, including OAuth2-protected scenarios. * Added API key setup guidance (NVIDIA_API_KEY, OPENAI_API_KEY) with .env examples; removed Google Gemini key instructions. * Expanded step-by-step usage, architecture, OAuth2 configuration, per-user flows, and runtime expectations. <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> Authors: - Anuradha Karuppiah (https://github.com/AnuradhaKaruppiah) Approvers: - Will Killian (https://github.com/willkill07) URL: NVIDIA#1372
Description
Closes: nvbugs-5792154
This PR adds documentation and configuration support for using openai models with the LangGraph currency agent.
Additionally the summary of the three a2a examples have been updated to highlight the difference between them:
By Submitting this PR I confirm:
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.