-
Notifications
You must be signed in to change notification settings - Fork 396
Consistent Trace Nesting in Parallel Function Calling #162
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
rapids-bot
merged 6 commits into
NVIDIA:develop
from
dnandakumar-nv:async-span-interleave
Apr 30, 2025
Merged
Consistent Trace Nesting in Parallel Function Calling #162
rapids-bot
merged 6 commits into
NVIDIA:develop
from
dnandakumar-nv:async-span-interleave
Apr 30, 2025
+161
−11
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Updated span stack to use a dictionary for improved traceability and optimized span handling logic. Adjusted step ID restoration to handle context switching correctly. These changes improve robustness and maintainability in asynchronous environments. Signed-off-by: dnandakumar-nv <168006707+dnandakumar-nv@users.noreply.github.com>
Introduces unit tests for IntermediateStepManager, covering events, context preservation, cross-thread behavior, and error handling. These tests ensure the robustness of step tracking and state transitions. Added minimal stubs to enable isolated testing without dependencies on the full codebase. Signed-off-by: dnandakumar-nv <168006707+dnandakumar-nv@users.noreply.github.com>
Introduces unit tests for IntermediateStepManager, covering events, context preservation, cross-thread behavior, and error handling. These tests ensure the robustness of step tracking and state transitions. Added minimal stubs to enable isolated testing without dependencies on the full codebase. Signed-off-by: dnandakumar-nv <168006707+dnandakumar-nv@users.noreply.github.com>
mdemoret-nv
approved these changes
Apr 30, 2025
|
/ok to test ee4f3f4 |
This commit adds the Apache 2.0 license header to ensure compliance with licensing requirements. The header includes copyright information for NVIDIA Corporation and references to the license terms. Signed-off-by: dnandakumar-nv <168006707+dnandakumar-nv@users.noreply.github.com>
|
/ok to test 4d96eb1 |
The removed assertion was unnecessary as its condition is implied by other checks in the test. Simplifying the test improves readability and maintains functionality without altering test coverage. Signed-off-by: dnandakumar-nv <168006707+dnandakumar-nv@users.noreply.github.com>
|
/ok to test 97533e5 |
|
/merge |
yczhang-nv
pushed a commit
to yczhang-nv/NeMo-Agent-Toolkit
that referenced
this pull request
May 8, 2025
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios. Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel). The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly, Functionality changed from old trace like so: <img width="475" alt="old trace" src="https://github.com/user-attachments/assets/1e577ee0-dbfc-4dae-80fb-8c03a57e75fb" /> to a new trace like this: <img width="475" alt="new trace" src="https://github.com/user-attachments/assets/aeced7ae-9876-420b-8632-dd78a5fd4a1f" /> ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.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. Authors: - Dhruv Nandakumar (https://github.com/dnandakumar-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: NVIDIA#162 Signed-off-by: Yuchen Zhang <134643420+yczhang-nv@users.noreply.github.com>
ericevans-nv
pushed a commit
to ericevans-nv/agent-iq
that referenced
this pull request
Jun 3, 2025
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios. Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel). The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly, Functionality changed from old trace like so: <img width="475" alt="old trace" src="https://github.com/user-attachments/assets/1e577ee0-dbfc-4dae-80fb-8c03a57e75fb" /> to a new trace like this: <img width="475" alt="new trace" src="https://github.com/user-attachments/assets/aeced7ae-9876-420b-8632-dd78a5fd4a1f" /> ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.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. Authors: - Dhruv Nandakumar (https://github.com/dnandakumar-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: NVIDIA#162 Signed-off-by: Eric Evans <194135482+ericevans-nv@users.noreply.github.com>
ericevans-nv
pushed a commit
to ericevans-nv/agent-iq
that referenced
this pull request
Jun 3, 2025
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios. Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel). The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly, Functionality changed from old trace like so: <img width="475" alt="old trace" src="https://github.com/user-attachments/assets/1e577ee0-dbfc-4dae-80fb-8c03a57e75fb" /> to a new trace like this: <img width="475" alt="new trace" src="https://github.com/user-attachments/assets/aeced7ae-9876-420b-8632-dd78a5fd4a1f" /> ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.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. Authors: - Dhruv Nandakumar (https://github.com/dnandakumar-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: NVIDIA#162 Signed-off-by: Eric Evans <194135482+ericevans-nv@users.noreply.github.com>
AnuradhaKaruppiah
pushed a commit
to AnuradhaKaruppiah/oss-agentiq
that referenced
this pull request
Aug 4, 2025
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios. Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel). The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly, Functionality changed from old trace like so: <img width="475" alt="old trace" src="https://github.com/user-attachments/assets/1e577ee0-dbfc-4dae-80fb-8c03a57e75fb" /> to a new trace like this: <img width="475" alt="new trace" src="https://github.com/user-attachments/assets/aeced7ae-9876-420b-8632-dd78a5fd4a1f" /> ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.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. Authors: - Dhruv Nandakumar (https://github.com/dnandakumar-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: NVIDIA#162
scheckerNV
pushed a commit
to scheckerNV/aiq-factory-reset
that referenced
this pull request
Aug 22, 2025
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios. Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel). The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly, Functionality changed from old trace like so: <img width="475" alt="old trace" src="https://github.com/user-attachments/assets/1e577ee0-dbfc-4dae-80fb-8c03a57e75fb" /> to a new trace like this: <img width="475" alt="new trace" src="https://github.com/user-attachments/assets/aeced7ae-9876-420b-8632-dd78a5fd4a1f" /> ## By Submitting this PR I confirm: - I am familiar with the [Contributing Guidelines](https://github.com/NVIDIA/AgentIQ/blob/develop/docs/source/advanced/contributing.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. Authors: - Dhruv Nandakumar (https://github.com/dnandakumar-nv) Approvers: - Michael Demoret (https://github.com/mdemoret-nv) URL: NVIDIA#162
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Updated span stack to use a dictionary for improved traceability and optimized span handling logic. Adjusted step ID restoration to handle context switching correctly. These changes improve robustness and maintainability in asynchronous environments.
Description
Refactors intermediate step manager, otel adaptor, and langchain callback handler to work in async scenarios.
Crucially, the biggest changes came in otel adaptor to make traces nest appropriately in asyn function call scenarios (many calls in parallel).
The fixes to the langchain callback handler allows for the callback intermediate step to nest the function call underneath it. The intermediate step manager needed to be refactored to prevent cross-context resets of the context variable. Ostensibly,
Functionality changed from old trace like so:

to a new trace like this:

By Submitting this PR I confirm: