Skip to content

docs: add Agent 365 in-depth guides - #2942

Open
Aamir Jawaid (heyitsaamir) wants to merge 12 commits into
mainfrom
docs-agent-365-guides
Open

docs: add Agent 365 in-depth guides#2942
Aamir Jawaid (heyitsaamir) wants to merge 12 commits into
mainfrom
docs-agent-365-guides

Conversation

@heyitsaamir

Copy link
Copy Markdown
Collaborator

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

  • Identity terminology follows the upcoming SDK APIs. The blueprint is the reusable runtime, the Agentic App Instance is its deployed identity, and the Agentic User is the conversational sender. AgenticIdentity is described as the operation scope rather than another identity type.
  • Shared narrative, language-specific code. Templates keep concepts and guidance consistent while includes show the actual C#, TypeScript, and Python APIs, release status, token acquisition, lifecycle handlers, and proactive identity scoping.
  • Learn owns platform setup. These pages explain what Teams SDK contributes and link to Microsoft Learn for Agent 365 onboarding, Microsoft OpenTelemetry Distro, Defender, and Purview configuration.
  • Observability layers stay distinct. Teams SDK telemetry, Agent 365 baggage, and exporter configuration are presented separately so baggage is not mistaken for a complete governance pipeline.

Deferred

Final API naming and preview details may be adjusted before this leaves draft as the corresponding language feature branches merge.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3d0efbfa-9fba-4560-b1d7-b75d5e788ccb
Aamir Jawaid (heyitsaamir) and others added 10 commits July 31, 2026 22:17
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
@heyitsaamir
Aamir Jawaid (heyitsaamir) marked this pull request as ready for review August 4, 2026 14:38
Copilot AI lite review requested due to automatic review settings August 4, 2026 14:38

Copilot AI 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.

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 logger but never defines/imports it; use ctx.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 logger but never defines/imports it; use ctx.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);
});
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.

4 participants