docs: add Agent 365 in-depth guides - #2942
Open
Aamir Jawaid (heyitsaamir) wants to merge 12 commits into
Open
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
- TypeScript: document exact npm version 2.1.0-preview.3 with install command for @microsoft/teams.apps and @microsoft/teams.api - Python: document exact PyPI version 2.1.0a1 with install command for microsoft-teams-apps and microsoft-teams-api - Both call out that default registry tags/versions still resolve to the 2.0.x stable line, so readers pin the exact preview version Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d4049730-8c8e-4a8f-ac12-e33893f87618
- TypeScript: use npm @next tag instead of pinning the exact version. @next correctly resolves to 2.1.0-preview.3; the @Preview tag is stale (still 2.0.0-preview.12), so call that out explicitly. - Python: use pip --pre instead of pinning the exact version, since PyPI has no npm-style dist-tags. --pre resolves to the latest prerelease (currently 2.1.0a1). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d4049730-8c8e-4a8f-ac12-e33893f87618
Keep the actionable guidance (which tag/flag to use) without the internal explanation of why other tags/versions behave the way they do — that's not useful to a reader installing the package. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d4049730-8c8e-4a8f-ac12-e33893f87618
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d4049730-8c8e-4a8f-ac12-e33893f87618
The code block already shows the tag/flag to use; the extra sentence just restated it. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d4049730-8c8e-4a8f-ac12-e33893f87618
Aamir Jawaid (heyitsaamir)
marked this pull request as ready for review
August 4, 2026 14:38
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new “Agent 365” in-depth guide section to teams.md, with shared narrative pages and per-language include snippets (C#/TypeScript/Python) covering identity concepts, setup, messaging, lifecycle events, and observability/governance.
Changes:
- Add Agent 365 guide pages: concepts/benefits, setup, reactive+proactive messaging, lifecycle events, and observability/governance.
- Add language-specific include snippets for messaging, lifecycle handlers, and observability setup/token acquisition.
- Add Agent 365 docs category metadata and per-language availability notes.
Show a summary per file
| File | Description |
|---|---|
| teams.md/src/pages/templates/in-depth-guides/agent-365/README.mdx | New Agent 365 guide landing page + availability include hook |
| teams.md/src/pages/templates/in-depth-guides/agent-365/category.json | New sidebar category config for Agent 365 section |
| teams.md/src/pages/templates/in-depth-guides/agent-365/concepts-and-benefits.mdx | Defines Agent 365 identity model + benefits framing |
| teams.md/src/pages/templates/in-depth-guides/agent-365/setup.mdx | Links to Learn setup + maps blueprint/tenant values to app auth settings |
| teams.md/src/pages/templates/in-depth-guides/agent-365/use-agent-365.mdx | Reactive messaging, reactions, and proactive messaging guidance |
| teams.md/src/pages/templates/in-depth-guides/agent-365/lifecycle-events.mdx | Lifecycle event overview + LanguageInclude hook |
| teams.md/src/pages/templates/in-depth-guides/agent-365/observability-and-governance.mdx | Observability layering explanation + LanguageInclude hooks |
| teams.md/src/components/include/in-depth-guides/agent-365/csharp.incl.md | C# availability note include |
| teams.md/src/components/include/in-depth-guides/agent-365/typescript.incl.md | TypeScript preview availability note include |
| teams.md/src/components/include/in-depth-guides/agent-365/python.incl.md | Python preview availability note include |
| teams.md/src/components/include/in-depth-guides/agent-365/use-agent-365/csharp.incl.md | C# reactive/reaction/proactive messaging snippets |
| teams.md/src/components/include/in-depth-guides/agent-365/use-agent-365/typescript.incl.md | TypeScript reactive/reaction/proactive messaging snippets |
| teams.md/src/components/include/in-depth-guides/agent-365/use-agent-365/python.incl.md | Python reactive/reaction/proactive messaging snippets |
| teams.md/src/components/include/in-depth-guides/agent-365/lifecycle-events/csharp.incl.md | C# lifecycle handler snippet |
| teams.md/src/components/include/in-depth-guides/agent-365/lifecycle-events/typescript.incl.md | TypeScript lifecycle handlers snippet |
| teams.md/src/components/include/in-depth-guides/agent-365/lifecycle-events/python.incl.md | Python lifecycle handlers snippet |
| teams.md/src/components/include/in-depth-guides/agent-365/observability-and-governance/csharp.incl.md | C# exporter auth + proactive scope snippet |
| teams.md/src/components/include/in-depth-guides/agent-365/observability-and-governance/typescript.incl.md | TypeScript telemetry config + exporter auth + proactive scope snippet |
| teams.md/src/components/include/in-depth-guides/agent-365/observability-and-governance/python.incl.md | Python telemetry config + exporter auth + proactive scope snippet |
Review details
Suppressed comments (2)
teams.md/src/components/include/in-depth-guides/agent-365/lifecycle-events/python.incl.md:26
- [HIGH] Python sample uses
loggerbut never defines/imports it; usectx.logger(consistent with other Python docs) so the snippet runs as-is.
logger.info("Agentic User created: %s", ctx.activity.value.agentic_user_id)
teams.md/src/components/include/in-depth-guides/agent-365/lifecycle-events/python.incl.md:33
- [HIGH] Python sample uses
loggerbut never defines/imports it; usectx.logger(consistent with other Python docs) so the snippet runs as-is.
logger.info("Agentic User disabled: %s", ctx.activity.value.agentic_user_id)
- Files reviewed: 19/19 changed files
- Comments generated: 3
- Review effort level: Lite
| async def handle_lifecycle( | ||
| ctx: ActivityContext[AgentLifecycleEventActivity], | ||
| ) -> None: | ||
| logger.info("Lifecycle event: %s", ctx.activity.value_type) |
Comment on lines
+4
to
+26
| teamsApp.OnAgentLifecycle((context, _) => | ||
| { | ||
| logger.LogInformation( | ||
| "Lifecycle event: {ValueType}", | ||
| context.Activity.ValueType); | ||
| return Task.CompletedTask; | ||
| }); | ||
|
|
||
| teamsApp.OnAgenticUserIdentityCreated((context, _) => | ||
| { | ||
| logger.LogInformation( | ||
| "Agentic User created: {AgenticUserId}", | ||
| context.Activity.Value?.AgenticUserId); | ||
| return Task.CompletedTask; | ||
| }); | ||
|
|
||
| teamsApp.OnAgenticUserDisabled((context, _) => | ||
| { | ||
| logger.LogInformation( | ||
| "Agentic User disabled: {AgenticUserId}", | ||
| context.Activity.Value?.AgenticUserId); | ||
| return Task.CompletedTask; | ||
| }); |
Comment on lines
+4
to
+12
| teamsApp.OnMessage(async (context, cancellationToken) => | ||
| { | ||
| AgenticIdentity? agenticIdentity = | ||
| context.Activity.Recipient?.GetAgenticIdentity(); | ||
|
|
||
| await context.ReplyAsync( | ||
| $"Hi! I'm an Agentic User, and my user ID is {agenticIdentity?.AgenticUserId}. Nice to meet you!", | ||
| cancellationToken); | ||
| }); |
Corina (corinagum)
approved these changes
Aug 4, 2026
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.
Summary
Adds the In-Depth Guide for Agent 365 support arriving in Teams SDK v2.1 (C#) and v2.1 preview (TypeScript and Python). The guide gives SDK users one path from the Agent 365 identity model through setup, messaging, lifecycle events, and governance-aware observability without duplicating Microsoft Learn’s tenant and product setup guidance.
This is a draft while the related SDK surfaces and observability integrations finish landing across the three implementations.
Decisions
AgenticIdentityis described as the operation scope rather than another identity type.Deferred
Final API naming and preview details may be adjusted before this leaves draft as the corresponding language feature branches merge.