Skip to content

Agent365 OpenTelemetry: Agent365 baggage bridge - #516

Merged
Aamir Jawaid (heyitsaamir) merged 14 commits into
feature_agent365_supportfrom
heyitsaamir-python-otel-docs
Jul 31, 2026
Merged

Aamir Jawaid (heyitsaamir) merged 14 commits into
feature_agent365_supportfrom
heyitsaamir-python-otel-docs

Conversation

@heyitsaamir

@heyitsaamir Aamir Jawaid (heyitsaamir) commented Jul 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Adds the Agent365 OpenTelemetry baggage bridge on top of the token-provider surface in #530. This is the middle layer of a three-PR stack; the Microsoft OpenTelemetry dependency and runnable example remain in the top PR.

The bridge establishes Agent365 identity context before the SDK's root turn span, so Apps, API, auth, and host-created Agent365 spans share one context. It also provides a reusable scope opener for proactive work, where there is no inbound activity to derive identity from.

Decisions

  • Enabled by default, explicitly disableable. Inbound turns receive identifier-only Agent365 baggage unless telemetry={"agent365": False} is set. This matches the TypeScript SDK and keeps the enrichment at the single app-processing chokepoint.
  • Personal fields require explicit opt-in. Names, emails, and descriptions are controlled independently through the include list; message content is never baggage. user.id remains in the default pseudonymous identifier set for cross-language parity.
  • Standard OpenTelemetry boundary. SDK packages use only the standard OpenTelemetry API and configure no exporter or propagator. The host owns the OTel SDK and Microsoft distro.
  • Current Agent365 identity model. Proactive scopes accept AgenticUser, matching the current Python SDK's agentic_app_instance_id, agentic_user_id, and blueprint terminology.

Deferred

Exporter authentication, Microsoft OpenTelemetry configuration, reactive/proactive sample wiring, and the resulting lockfile change are isolated in the top example PR.

Validation

The complete stack was validated live through Teams: the fresh Python trace appeared in Aspire with Apps/API/auth/invoke_agent nesting, and Defender produced Agent365 InvokeAgent rows. This isolated layer also passes its focused Apps test suite, Ruff, and Pyright.

@corinagum Corina (corinagum) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same feedback as TS

@heyitsaamir Aamir Jawaid (heyitsaamir) changed the title Document Python OpenTelemetry diagnostics Add explicit Agent365 baggage bridge Jul 21, 2026
Base automatically changed from heyitsaamir-python-otel-apps to feature_agent365_support July 22, 2026 21:32
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
@heyitsaamir
Aamir Jawaid (heyitsaamir) changed the base branch from feature_agent365_support to heyitsaamir-agent365-token-provider July 30, 2026 15:27
@heyitsaamir Aamir Jawaid (heyitsaamir) changed the title Add explicit Agent365 baggage bridge Agent365 OpenTelemetry: Agent365 baggage bridge Jul 30, 2026
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Build the Agent365 baggage bridge on the public token-provider layer. Establish identifier-only inbound baggage before the root turn span, support explicit opt-out and granular personal-data includes, and expose reusable proactive scopes without configuring exporters.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Base automatically changed from heyitsaamir-agent365-token-provider to feature_agent365_support July 31, 2026 03:58
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
@heyitsaamir
Aamir Jawaid (heyitsaamir) merged commit 3781421 into feature_agent365_support Jul 31, 2026
5 checks passed
@heyitsaamir
Aamir Jawaid (heyitsaamir) deleted the heyitsaamir-python-otel-docs branch July 31, 2026 04:02
Aamir Jawaid (heyitsaamir) added a commit that referenced this pull request Aug 3, 2026
This is the Python feature branch for Agent 365 and ACF support in 2.1.
It brings the stacked identity, lifecycle, proactive messaging, and
observability work together as one integration point.

## Included commits

-
[`24b0ffa`](24b0ffa)
Start Agent 365 support branch
-
[`ecd2654`](ecd2654)
Add Agent 365 token support (#457)
-
[`02c2091`](02c2091)
Support Entra inbound Agent ID tokens (#462)
-
[`6198553`](6198553)
Add agentic auth provider infrastructure (#485)
-
[`2f8b767`](2f8b767)
Add AgenticIdentity API surface (#478)
-
[`5ce920a`](5ce920a)
Remove ActivitySender send abstraction (#479)
-
[`b65a997`](b65a997)
Add app-level agentic send helpers (#480)
-
[`3b441b8`](3b441b8)
Default agentic app blueprint ID to app client ID
-
[`11a9bb8`](11a9bb8)
Add Agent 365 agentLifecycle event support (#492)
-
[`b5b1d44`](b5b1d44)
Fix Agent365 base branch deprecation errors
-
[`36e7c27`](36e7c27)
Simplify API client scoping (#505)
-
[`b620848`](b620848)
Add OpenTelemetry API middleware (#514)
-
[`fc4cbc0`](fc4cbc0)
Add OpenTelemetry app diagnostics (#515)
-
[`287bee1`](287bee1)
Rename Agent 365 identity surface to AgenticUser (#524)
-
[`af1b76c`](af1b76c)
Agent365 OpenTelemetry: SDK token-provider surface (#530)
-
[`3781421`](3781421)
Agent365 OpenTelemetry: Agent365 baggage bridge (#516)
-
[`c2af463`](c2af463)
Use AgenticIdentity as Python Agent 365 SDK scope (#533)

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copilot-Session: 56462895-549f-4889-82c7-16a7d7232ae3
Copilot-Session: b861cde5-a4a6-4d2b-9ca7-0a4f8ccda4ff
Copilot-Session: 8398c990-e5b5-41b6-8d04-0519128726c1
Copilot-Session: 0d367487-e88d-4423-8016-475637d47ed0
Copilot-Session: 69dcf0c6-166e-4c59-8a3f-6c0b0c1d8071
Copilot-Session: 69dcf0c6-166e-4c59-8a3f-6c0b0c1c05d3
Copilot-Session: a43ae3bd-97f9-4dbb-bfd0-ffc3dce0a3b7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants