Skip to content

feat(agents): root Relay traces at the platform session [ASTD-534] - #2574

Draft
marcusds wants to merge 1 commit into
mainfrom
relay-session-root/mschwab
Draft

marcusds wants to merge 1 commit into
mainfrom
relay-session-root/mschwab

Conversation

@marcusds

@marcusds marcusds commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

What

Each turn of a platform agent session now sends relay_session_root in the Fabric caller context, next to session_id. It is 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, which is why the key cannot just carry session_id.

Why

Studio chats and other session-backed calls land in Intake as one session per turn. Relay 0.9 derives the ATIF session_id from the propagation root, and Fabric roots propagation at each request unless the caller supplies a session root. NVIDIA/NeMo-Fabric#358 adds that key; this sends it, so a conversation records as one Intake session with one trajectory per turn.

Dependencies and limits

  • Has no effect until nemo-helix depends on a Fabric release that includes feat: root Relay propagation at the caller's session NVIDIA/NeMo-Fabric#358. Fabric 0.4.0 passes the key through and ignores it, so this is safe to merge either way.
  • Deep Agents agents, including the Studio assistant, and mini-SWE-agent group by session. Hermes, Claude, and Codex agents keep one session per turn: their Relay integrations do not read the key.
  • Stateless calls without X-Nemo-Session-Id are unchanged.

Still to land before this is ready

  • Bump nemo-fabric* pins to the release with feat: root Relay propagation at the caller's session NVIDIA/NeMo-Fabric#358 and relock.
  • Confirm Intake keeps one row per trajectory now that turns share a session_id: ClickHouse spans and the evaluation rollup group on session_id, and trajectory_id becomes the unique key.
  • Verify against a running platform: two turns on one session give two traces under one session_id with distinct trajectory_id.

Verification

  • plugins/nemo-agents/tests/unit/test_fabric_server.py and test_fabric_runtime.py: 67 passed. New test_turns_of_one_session_share_a_relay_session_root pins a stable root per session, a distinct root per session, and a root Relay can use.
  • Ruff, format, and ty clean.

Send a relay_session_root UUID in the Fabric caller context for every turn
of a platform agent session. Fabric adapters that own an in-process Relay
scope use it as the propagation root, and 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.

Fabric 0.4.0 ignores the key; this takes effect with the Fabric release
that includes NVIDIA/NeMo-Fabric#358.

Signed-off-by: mschwab <mschwab@nvidia.com>
@github-actions github-actions Bot added the feat label Oct 2, 2026
@datadog-official

datadog-official Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Pipelines

❌ Errors

Your PR has failed checks. Please review the issues below and take necessary action before merging.

🚦 4 Pipeline jobs failed

CI | CI status

View in Datadog · View in GitHub Actions

CI | Python integration tests

View in Datadog · View in GitHub Actions

CI | Python unit tests

View in Datadog · View in GitHub Actions

View all 4 failed jobs.

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: e104d0a | Docs | View more details | Give us feedback!

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 50299/62281 80.8% 65.2%
Integration Tests 32692/59339 55.1% 26.5%

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant