Repository navigation
Conversation
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 2 Pipeline jobs failed
Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: 639cb52 | Docs | View more details | Give us feedback! |
Contributor
|
Send a relay_session_root UUID on every turn of a platform agent session. Fabric 0.5 takes it as the typed RunRequest.relay_session_root field, and adapters that own an in-process Relay scope use it as the propagation root. Relay 0.9 derives the ATIF session id from the root, so the turns land in Intake as one session with a trajectory each. Platform session ids are not UUIDs, so the root is a UUIDv5 of the session id under a fixed namespace. The field is carried on the platform's invocation requests and copied to Fabric's RunRequest only when set. Fabric 0.4 has no such field; its Rust core drops the unknown key, so this is inert until the Fabric 0.5 bump. Signed-off-by: mschwab <mschwab@nvidia.com>
marcusds
force-pushed
the
relay-session-root/mschwab
branch
from
October 9, 2026 09:57
e104d0a to
639cb52
Compare
This branch has not been deployed
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
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.
What
Each turn of a platform agent session now carries
relay_session_root: a UUIDv5 of the platform session id under a fixed namespace, so every turn of one session sends the same value and different sessions never collide. Platform session ids are not UUIDs, so the session id itself cannot be used.The value rides on the platform's invocation requests (
FabricInvocationRequest,FabricOneShotRequest) through the session manager and is passed to Fabric as the typedRunRequest.relay_session_rootfield, only when set.caller_contextis unchanged.Why
Studio chats and other session-backed calls land in Intake as one session per turn. Relay 0.9 derives the ATIF
session_idfrom the propagation root, and Fabric roots propagation at each request unless the caller supplies a session root. NVIDIA/NeMo-Fabric#358, merged for Fabric 0.5, adds that field; this sends it, so a conversation records as one Intake session with one trajectory per turn.Dependencies and limits
RunRequestkeeps the unknown field as an extra and Fabric's Rust core drops it, so this is inert and safe to merge before the bump.X-Nemo-Session-Idare unchanged.Still to land before this is ready
nemo-fabric*pins to>=0.5.0,<0.6.0once Fabric 0.5 is published, relock, and run the agents plugin against it.session_id: ClickHouse spans and the evaluation rollup group onsession_id, andtrajectory_idbecomes the unique key.session_idwith distincttrajectory_id.Verification
test_fabric_server.py,test_fabric_runtime.py,test_fabric_session_manager.py: 102 passed. Covers a stable root per session and a distinct root per session, no root without a session, the session manager copying the field to the one-shot request, andinvoke_fabric_runtimesending it onRunRequestonly when set.tyclean on the changed files.