feat: support end_user_id for agentex agents & automatically include in spans - #477
Draft
smustaqa-scale wants to merge 1 commit into
Draft
feat: support end_user_id for agentex agents & automatically include in spans#477smustaqa-scale wants to merge 1 commit into
smustaqa-scale wants to merge 1 commit into
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
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.
Propagates a caller-supplied end_user_id onto trace spans automatically, so agents get end-user attribution without threading the value through their own code.
The identifier arrives as a new optional field on the four ACP routes (seen in companion agentex PR scaleapi/scale-agentex#386)
The framework then includes this field as a context var. Sync agent handling is simple, however temporal require a interceptor that harvests it from the workflow's start and signal args and rehydrates it per activity for async ones.
Trace.start_span then merges it into span.data, which has to happen at span construction rather than at export because export runs on a shared background task that no longer knows which request a given span came from.
Extensibility: Adding another request-scoped value (tenant id, correlation id, experiment variant) means widening one contextvar behind an allowlist rather than touching the tracing code.