From f29695703f15ecf5ee110ed2686759e29ccd3d5c Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Tue, 23 Jun 2026 13:05:07 -0700 Subject: [PATCH 1/6] WIP --- msteams-platform/TOC.yml | 111 +++++------------- msteams-platform/legacy-tools-sdks.md | 16 +++ msteams-platform/teams-sdk-overview.md | 46 ++++++++ .../teams-sdk-programming-model.md | 12 ++ 4 files changed, 106 insertions(+), 79 deletions(-) create mode 100644 msteams-platform/legacy-tools-sdks.md create mode 100644 msteams-platform/teams-sdk-overview.md create mode 100644 msteams-platform/teams-sdk-programming-model.md diff --git a/msteams-platform/TOC.yml b/msteams-platform/TOC.yml index 2c4d74b5d3b..d521dc57d0a 100644 --- a/msteams-platform/TOC.yml +++ b/msteams-platform/TOC.yml @@ -39,9 +39,34 @@ - name: Overview href: concepts/build-and-test/tool-sdk-overview.md displayName: Tools and SDKs - - name: Tools + - name: Teams SDK items: - - name: Microsoft 365 Agents Toolkit + - name: Overview + href: teams-sdk-overview.md + displayName: Teams SDK overview + - name: Teams SDK programming model + href: teams-sdk-programming-model.md + displayName: App + - name: Teams JavaScript client libraries + href: tabs/how-to/using-teams-client-library.md + displayName: Teamsjs, live share, liveshare, tab, iFrame, execute URL, getTabInstances + - name: Teams Developer Portal + items: + - name: Overview + href: concepts/build-and-test/teams-developer-portal.md + displayName: setup runtime environment, Changelog for Developer Portal, Import an existing app, Import published app + - name: Manage your apps in Developer Portal + href: concepts/build-and-test/manage-your-apps-in-developer-portal.md + displayName: AppID, app validation, validate your app, Microsoft's test cases, add owners to bot + - name: Develop your apps with Agents Toolkit + href: concepts/build-and-test/develop-your-apps-with-toolkit.md + displayName: visual studio code, visual studio, agents toolkit, react web app, publish react app, debug + - name: Analyze app and agent usage in Developer Portal + href: concepts/build-and-test/analyze-your-apps-usage-in-developer-portal.md + displayName: App usage, metrics, usage, analytics, insights, telemetry, Import an existing app, agent usage + - name: Microsoft 365 Agents Toolkit + items: + - name: Overview href: toolkit/overview-agents-toolkit.md displayName: ATK, M365, Microsoft 365, Agents Toolkit - name: Agents Toolkit for VSC @@ -182,20 +207,6 @@ displayName: migrate Teams toolkit, new project structure, YAML configuration - name: Microsoft 365 Agents Toolkit CLI href: toolkit/microsoft-365-agents-toolkit-CLI.md - - name: Developer Portal for Teams - items: - - name: Overview - href: concepts/build-and-test/teams-developer-portal.md - displayName: setup runtime environment, Changelog for Developer Portal, Import an existing app, Import published app - - name: Manage your apps in Developer Portal - href: concepts/build-and-test/manage-your-apps-in-developer-portal.md - displayName: AppID, app validation, validate your app, Microsoft's test cases, add owners to bot - - name: Develop your apps with Agents Toolkit - href: concepts/build-and-test/develop-your-apps-with-toolkit.md - displayName: visual studio code, visual studio, agents toolkit, react web app, publish react app, debug - - name: Analyze app and agent usage in Developer Portal - href: concepts/build-and-test/analyze-your-apps-usage-in-developer-portal.md - displayName: App usage, metrics, usage, analytics, insights, telemetry, Import an existing app, agent usage - name: Adaptive Card Previewer for VSC items: - name: Overview @@ -207,69 +218,11 @@ - name: Adaptive Card Previewer for VS href: concepts/build-and-test/adaptive-card-previewer-vs.md displayName: ACP - - name: SDKs - items: - - name: Teams SDK - href: /microsoftteams/platform/teams-ai-library/welcome - - name: TeamsFx SDK - href: toolkit/TeamsFx-SDK.md - displayName: getUserinfo - - name: Teams JavaScript client library - href: tabs/how-to/using-teams-client-library.md - displayName: iFrame, execute URL, getTabInstances - - name: Bot Framework SDK for Node.js - href: https://github.com/Microsoft/botbuilder-js - - name: Bot Framework SDK for .NET - href: https://github.com/Microsoft/botbuilder-dotnet - - name: Microsoft Graph SDKs - href: /graph/sdks/sdks-overview - - name: Legacy SDKs - items: - - name: Bots SDK (v3) - href: resources/bot-v3/bots-overview.md - items: - - name: Conversations - href: resources/bot-v3/bot-conversations/bots-conversations.md - items: - - name: Personal conversations with bots - href: resources/bot-v3/bot-conversations/bots-conv-personal.md - - name: Channel and group chat conversation bot - href: resources/bot-v3/bot-conversations/bots-conv-channel.md - displayName: payload - - name: Starting a conversation - href: resources/bot-v3/bot-conversations/bots-conv-proactive.md - displayName: Caching - - name: Cards and card actions - href: resources/bot-v3/bots-cards.md - - name: Message formatting - href: resources/bot-v3/bots-message-format.md - - name: Bot events - href: resources/bot-v3/bots-notifications.md - displayName: anonymous - - name: Context for bots - href: resources/bot-v3/bots-context.md - displayName: getContext - - name: Send and receive files - href: resources/bot-v3/bots-files.md - - name: Notification-only bots - href: resources/bot-v3/bots-notification-only.md - - name: Bot menus - href: resources/bot-v3/bots-menus.md - - name: Bots with tabs - href: resources/bot-v3/bots-with-tabs.md - - name: Format bot messages - href: resources/bot-v3/bots-text-formats.md - - name: Test a bot - href: resources/bot-v3/bots-test.md - - name: Message extensions SDK (v3) - items: - - name: Message extensions SDK (v3) - href: resources/messaging-extension-v3/messaging-extensions-overview.md - - name: Search extensions - href: resources/messaging-extension-v3/search-extensions.md - displayName: loop - - name: Action extensions - href: resources/messaging-extension-v3/create-extensions.md + - name: Microsoft Graph SDKs + href: /graph/sdks/sdks-overview + - name: Legacy tools and SDKs + href: legacy-tools-sdks.md + displayName: TeamsFx, Bot Framework - name: Manifest for agent or app items: - name: Manifest schema diff --git a/msteams-platform/legacy-tools-sdks.md b/msteams-platform/legacy-tools-sdks.md new file mode 100644 index 00000000000..510c2325c9d --- /dev/null +++ b/msteams-platform/legacy-tools-sdks.md @@ -0,0 +1,16 @@ +--- +title: Legacy tools and SDKs for Teams app development +description: TODO +ms.topic: overview +ms.date: 05/19/2026 +author: nickwalkmsft +ms.author: nickwalk +--- + +TODO + +TeamsFx + +Bot Framework + +See Teams SDK diff --git a/msteams-platform/teams-sdk-overview.md b/msteams-platform/teams-sdk-overview.md new file mode 100644 index 00000000000..8ce49d166ad --- /dev/null +++ b/msteams-platform/teams-sdk-overview.md @@ -0,0 +1,46 @@ +--- +title: Microsoft Teams SDK overview +description: Overview and positioning of the Microsoft Teams SDK, the primary way to build applications and agents for Microsoft Teams. +ms.topic: overview +ms.date: 05/19/2026 +author: nickwalkmsft +ms.author: nickwalk +--- + +# Teams SDK + +Teams SDK is the developer toolkit for building conversational agents and other app experiences in Teams. It's developed alongside the Teams platform and and exposes the full range of platform features, enabling developers to build apps that integrate deeply with Teams. Agents and apps built with Teams SDK can take full advantage of the unique features that make Teams so effective for collaborative work. + +Teams SDK is generally available for TypeScript, C#, and Python, and represents the evolution of the earlier Teams AI library into a more comprehensive and cohesive development model. It addresses the full range of Teams app capabilities, with an emphasis on building rich conversational agents. The Teams Developer CLI included with the SDK streamlines app development with quickstart project templates and app lifecycle management tools, and credential management. + +The Teams Platform documentation primarily uses the Teams SDK APIs and tools to demonstrate how to implement platform features. + +## SDK features + +* **Idiomatic application model** - Teams apps are web services driven by events. Teams SDK integrates naturally with the standard web frameworks and conventions for each supported language and implements a comprehensive set of event handlers using familiar patterns +* **Unified Teams app programming model** - Support for multiple kinds of Teams apps, including conversational agents (bots), presentation of Teams-aware web apps in 1:1 and group environments (tabs), and custom dialog actions (message extensions) +* **Authentication and security** - Automatic handling of request validation, user authentication, and token management, including enterprise single sign-on +* **Microsoft Graph integration** - Built-in support for calling Microsoft Graph APIs to access and interact with users' work data on their behalf +* **Teams-native features for conversational agents** - @mentions, emoji reactions on messages, quoted and threaded replies, command autocomplete, detection of channel and meeting events, citations and disclosure labels on AI-generated content, user feedback intake, custom dialogs and more +* **AI helpers** - Abstractions for building conversational agents powered by OpenAI and Azure OpenAI APIs. +* **Adaptive Card support** - Define rich, interactive UX components for messages and dialogs inline, in the language you're working in, or design them interactively with the Adaptive Card designer and paste the resulting JSON straight into your project +* **Model Context Protocol (MCP) and Agent-to-Agent (A2A) protocol adapters** - Enable your app to communicate with other tools and agents with server and client support for Model Context Protocol and Agent-to-Agent protocol +* **Microsoft 365 Copilot compatibility** - Agents built with Teams SDK can run in both Teams and Microsoft 365 Copilot. + +## Developer tools + +The **Teams Developer CLI** provides tools for creating, configuring, and managing Teams apps: + +* **Project scaffolding** - Get an agent or app up and running on Teams in minutes with project templates in TypeScript, C# and Python +* **App registration and lifecycle management** - Register agents and apps with the Teams platform and manage their configuration +* **Authentication** - Manage Entra ID app credentials and agent authentication + +The developer CLI supports interactive usage for humans and structured JSON output for AI-assisted workflows. + +Teams SDK is also integrated with the **Microsoft 365 Agents Toolkit**. The Agents Toolkit provides additional experiences in Visual Studio Code and Visual Studio for scaffolding, provisioning, debugging, testing, and deployment. + + + +## Related content + +* [Teams JavaScript client library](tabs/how-to/using-teams-client-library.md) diff --git a/msteams-platform/teams-sdk-programming-model.md b/msteams-platform/teams-sdk-programming-model.md new file mode 100644 index 00000000000..abacce07fd3 --- /dev/null +++ b/msteams-platform/teams-sdk-programming-model.md @@ -0,0 +1,12 @@ +--- +title: Microsoft Teams SDK Programming Model +description: TODO +ms.topic: overview +ms.date: 05/19/2026 +author: nickwalkmsft +ms.author: nickwalk +--- + +# Teams SDK programming model + +TODO From a5d5c046da61644f3dfcba90dff2d44954c6cc9b Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Tue, 23 Jun 2026 13:20:36 -0700 Subject: [PATCH 2/6] WIP --- msteams-platform/TOC.yml | 3 +++ msteams-platform/teams-developer-cli.md | 18 ++++++++++++++++++ msteams-platform/teams-sdk-overview.md | 16 ---------------- 3 files changed, 21 insertions(+), 16 deletions(-) create mode 100644 msteams-platform/teams-developer-cli.md diff --git a/msteams-platform/TOC.yml b/msteams-platform/TOC.yml index d521dc57d0a..c8a2ef7e0ce 100644 --- a/msteams-platform/TOC.yml +++ b/msteams-platform/TOC.yml @@ -47,6 +47,9 @@ - name: Teams SDK programming model href: teams-sdk-programming-model.md displayName: App + - name: Teams developer CLI + href: teams-developer-cli.md + displayName: scaffold, coding agent, manifest, authentication, package, rsc, register, deploy - name: Teams JavaScript client libraries href: tabs/how-to/using-teams-client-library.md displayName: Teamsjs, live share, liveshare, tab, iFrame, execute URL, getTabInstances diff --git a/msteams-platform/teams-developer-cli.md b/msteams-platform/teams-developer-cli.md new file mode 100644 index 00000000000..bc22fcbd403 --- /dev/null +++ b/msteams-platform/teams-developer-cli.md @@ -0,0 +1,18 @@ +--- +title: Teams Developer CLI +description: TODO +ms.topic: overview +ms.date: 05/19/2026 +author: nickwalkmsft +ms.author: nickwalk +--- + +# Teams developer CLI + +The Teams Developer CLI provides tools for creating, configuring, and managing Teams apps. + +* **Project scaffolding** - Get an agent or app up and running on Teams in minutes with project templates in TypeScript, C# and Python +* **App registration and lifecycle management** - Register agents and apps with the Teams platform and manage their configuration +* **Authentication** - Manage Entra ID app credentials and agent authentication + +The developer CLI supports interactive usage for humans and structured JSON output for AI-assisted workflows. diff --git a/msteams-platform/teams-sdk-overview.md b/msteams-platform/teams-sdk-overview.md index 8ce49d166ad..e6c1de2e9ca 100644 --- a/msteams-platform/teams-sdk-overview.md +++ b/msteams-platform/teams-sdk-overview.md @@ -27,20 +27,4 @@ The Teams Platform documentation primarily uses the Teams SDK APIs and tools to * **Model Context Protocol (MCP) and Agent-to-Agent (A2A) protocol adapters** - Enable your app to communicate with other tools and agents with server and client support for Model Context Protocol and Agent-to-Agent protocol * **Microsoft 365 Copilot compatibility** - Agents built with Teams SDK can run in both Teams and Microsoft 365 Copilot. -## Developer tools - -The **Teams Developer CLI** provides tools for creating, configuring, and managing Teams apps: - -* **Project scaffolding** - Get an agent or app up and running on Teams in minutes with project templates in TypeScript, C# and Python -* **App registration and lifecycle management** - Register agents and apps with the Teams platform and manage their configuration -* **Authentication** - Manage Entra ID app credentials and agent authentication - -The developer CLI supports interactive usage for humans and structured JSON output for AI-assisted workflows. - Teams SDK is also integrated with the **Microsoft 365 Agents Toolkit**. The Agents Toolkit provides additional experiences in Visual Studio Code and Visual Studio for scaffolding, provisioning, debugging, testing, and deployment. - - - -## Related content - -* [Teams JavaScript client library](tabs/how-to/using-teams-client-library.md) From 3850da06567f91007163bca79e14869f5d13dbb1 Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Tue, 23 Jun 2026 13:39:51 -0700 Subject: [PATCH 3/6] WIP --- msteams-platform/teams-sdk-overview.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/msteams-platform/teams-sdk-overview.md b/msteams-platform/teams-sdk-overview.md index e6c1de2e9ca..c6060efa0ff 100644 --- a/msteams-platform/teams-sdk-overview.md +++ b/msteams-platform/teams-sdk-overview.md @@ -2,7 +2,7 @@ title: Microsoft Teams SDK overview description: Overview and positioning of the Microsoft Teams SDK, the primary way to build applications and agents for Microsoft Teams. ms.topic: overview -ms.date: 05/19/2026 +ms.date: 06/23/2026 author: nickwalkmsft ms.author: nickwalk --- @@ -22,9 +22,6 @@ The Teams Platform documentation primarily uses the Teams SDK APIs and tools to * **Authentication and security** - Automatic handling of request validation, user authentication, and token management, including enterprise single sign-on * **Microsoft Graph integration** - Built-in support for calling Microsoft Graph APIs to access and interact with users' work data on their behalf * **Teams-native features for conversational agents** - @mentions, emoji reactions on messages, quoted and threaded replies, command autocomplete, detection of channel and meeting events, citations and disclosure labels on AI-generated content, user feedback intake, custom dialogs and more -* **AI helpers** - Abstractions for building conversational agents powered by OpenAI and Azure OpenAI APIs. * **Adaptive Card support** - Define rich, interactive UX components for messages and dialogs inline, in the language you're working in, or design them interactively with the Adaptive Card designer and paste the resulting JSON straight into your project * **Model Context Protocol (MCP) and Agent-to-Agent (A2A) protocol adapters** - Enable your app to communicate with other tools and agents with server and client support for Model Context Protocol and Agent-to-Agent protocol * **Microsoft 365 Copilot compatibility** - Agents built with Teams SDK can run in both Teams and Microsoft 365 Copilot. - -Teams SDK is also integrated with the **Microsoft 365 Agents Toolkit**. The Agents Toolkit provides additional experiences in Visual Studio Code and Visual Studio for scaffolding, provisioning, debugging, testing, and deployment. From 0ba574f4128e74b7d7ef78c4b7c7ad094576a77a Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Thu, 25 Jun 2026 18:59:48 -0700 Subject: [PATCH 4/6] WIP --- msteams-platform/legacy-tools-sdks.md | 48 ++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/msteams-platform/legacy-tools-sdks.md b/msteams-platform/legacy-tools-sdks.md index 510c2325c9d..3a1abf4e740 100644 --- a/msteams-platform/legacy-tools-sdks.md +++ b/msteams-platform/legacy-tools-sdks.md @@ -1,16 +1,48 @@ --- -title: Legacy tools and SDKs for Teams app development -description: TODO -ms.topic: overview -ms.date: 05/19/2026 +title: Legacy Tools and SDKs for Teams app development +description: Legacy Teams app frameworks like TeamsFx and Bot Framework are no longer supported. Learn about these older tools and plan your migration to current solutions today. author: nickwalkmsft ms.author: nickwalk +ms.date: 06/23/2026 +ms.topic: overview --- -TODO +# Legacy Teams app and agent development frameworks + +This article briefly describes SDKs and tools for Teams app development that are now deprecated and no longer supported, along with their recommended replacements. + +**New Teams app and agent development should not make use of any of the items in this list.** Existing solutions that use any of these items should be migrated to current SDKs and tools. + +## Bot Framework SDK (BotBuilder) + +The Bot Framework SDK, also called BotBuilder SDK, was used to build cross-platform bots compatible with Teams. The name "Bot Framework" is still used to refer to a larger ecosystem of cloud service and infrastructure components that remain an important part of the Teams platform, but the Bot Framework SDK is no longer supported as an SDK for creating bots or agents. + +Teams SDK is the successor to the Bot Framework SDK for agents that specifically target Teams and seek to make full use of its conversational features and collaborative surface. Microsoft Agents 365 SDK should be used for agents that need compatibility with multiple conversational platforms. + +TODO migration guidance link. + +TODO link to app model page + +TODO + +## Teams AI Library + +Teams AI Library was the direct predecessor of Teams SDK. Existing solutions that use any versions of Teams AI Library should migrate to the current version of Teams SDK. + +## TeamsFx SDK (TypeScript and .NET) + +TeamsFx was an SDK that simplified some aspects of Teams app development, including authentication, Microsoft Graph access, configuration, and deployment. + +New Teams app and agent development should use Teams SDKExisting Teams applications that use TeamsFx should + +It is now superseded by the Teams SDK and Microsoft 365 Agents SDK for new development. + +integrated with teams toolkit + +TeamsFx is a legacy framework used to build Teams apps and agents. It's no longer supported. -TeamsFx +## Teams Toolkit -Bot Framework +Teams Toolkit was previously the main developer tooling experience for Teams app development, comprised of a command-line tool and extensions for Visual Studio Code and Visual Studio. Teams Toolkit integrated with TeamsFx and offered support for creating, debugging, provisioning, and deploying Teams applications. -See Teams SDK +Teams Toolkit is most directly succeeded by the Microsoft 365 Agents Toolkit, which can be used to create apps using the Microsoft 365 Agents SDK or the Teams SDK. Alternatively, the Teams developer CLI facilitates its own command-line based developer workflow. From 279d0e7167733685f5e159f90196e33180f93691 Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Thu, 25 Jun 2026 19:40:15 -0700 Subject: [PATCH 5/6] WIP --- msteams-platform/legacy-tools-sdks.md | 28 ++++++++++----------------- 1 file changed, 10 insertions(+), 18 deletions(-) diff --git a/msteams-platform/legacy-tools-sdks.md b/msteams-platform/legacy-tools-sdks.md index 3a1abf4e740..2a373aeba19 100644 --- a/msteams-platform/legacy-tools-sdks.md +++ b/msteams-platform/legacy-tools-sdks.md @@ -9,40 +9,32 @@ ms.topic: overview # Legacy Teams app and agent development frameworks -This article briefly describes SDKs and tools for Teams app development that are now deprecated and no longer supported, along with their recommended replacements. +This article briefly describes deprecated SDKs and tools for Teams app development, along with their recommended replacements. -**New Teams app and agent development should not make use of any of the items in this list.** Existing solutions that use any of these items should be migrated to current SDKs and tools. +**The SDKs and tools in this article are no longer supported, and new Teams app and agent development should not make use of them.** Consider migrating existing solutions that use any of these items to current SDKs and tools. ## Bot Framework SDK (BotBuilder) The Bot Framework SDK, also called BotBuilder SDK, was used to build cross-platform bots compatible with Teams. The name "Bot Framework" is still used to refer to a larger ecosystem of cloud service and infrastructure components that remain an important part of the Teams platform, but the Bot Framework SDK is no longer supported as an SDK for creating bots or agents. -Teams SDK is the successor to the Bot Framework SDK for agents that specifically target Teams and seek to make full use of its conversational features and collaborative surface. Microsoft Agents 365 SDK should be used for agents that need compatibility with multiple conversational platforms. - -TODO migration guidance link. - -TODO link to app model page - -TODO +Teams SDK is the successor to the Bot Framework SDK for agents that specifically target Teams and seek to make full use of its conversational features and collaborative surface. Use Microsoft Agents 365 SDK for agents that need compatibility with multiple conversational platforms. ## Teams AI Library -Teams AI Library was the direct predecessor of Teams SDK. Existing solutions that use any versions of Teams AI Library should migrate to the current version of Teams SDK. +Teams AI Library was the direct predecessor of Teams SDK. Update existing solutions that use any versions of Teams AI Library to use the current version of Teams SDK. ## TeamsFx SDK (TypeScript and .NET) TeamsFx was an SDK that simplified some aspects of Teams app development, including authentication, Microsoft Graph access, configuration, and deployment. -New Teams app and agent development should use Teams SDKExisting Teams applications that use TeamsFx should +Like the Bot Framework SDK, TeamsFx is superseded by the Teams SDK and Microsoft 365 Agents SDK. -It is now superseded by the Teams SDK and Microsoft 365 Agents SDK for new development. - -integrated with teams toolkit +## Teams Toolkit -TeamsFx is a legacy framework used to build Teams apps and agents. It's no longer supported. +Teams Toolkit was previously the main developer tooling experience for Teams app development, consisting of a command-line tool and extensions for Visual Studio Code and Visual Studio. Teams Toolkit integrated with TeamsFx and offered support for creating, debugging, provisioning, and deploying Teams applications. -## Teams Toolkit +Microsoft 365 Agents Toolkit most directly succeeds Teams Toolkit. You can use it to create apps by using the Microsoft 365 Agents SDK or the Teams SDK. Alternatively, the Teams developer CLI provides a command-line based developer workflow. -Teams Toolkit was previously the main developer tooling experience for Teams app development, comprised of a command-line tool and extensions for Visual Studio Code and Visual Studio. Teams Toolkit integrated with TeamsFx and offered support for creating, debugging, provisioning, and deploying Teams applications. +## Additional resources -Teams Toolkit is most directly succeeded by the Microsoft 365 Agents Toolkit, which can be used to create apps using the Microsoft 365 Agents SDK or the Teams SDK. Alternatively, the Teams developer CLI facilitates its own command-line based developer workflow. +- [Bot Framework SDK documentation](/azure/bot-service/index-bf-sdk) From d841d74fb10221f41a07c5d6b5a11a89cb70cd82 Mon Sep 17 00:00:00 2001 From: Nick Walker Date: Fri, 26 Jun 2026 09:56:13 -0700 Subject: [PATCH 6/6] WIP --- .../concepts/teams-application-model.md | 500 ++++++++++++++++++ msteams-platform/teams-developer-cli.md | 1 + msteams-platform/teams-sdk-overview.md | 4 +- .../teams-sdk-programming-model.md | 6 +- 4 files changed, 506 insertions(+), 5 deletions(-) create mode 100644 msteams-platform/concepts/teams-application-model.md diff --git a/msteams-platform/concepts/teams-application-model.md b/msteams-platform/concepts/teams-application-model.md new file mode 100644 index 00000000000..2ee89312177 --- /dev/null +++ b/msteams-platform/concepts/teams-application-model.md @@ -0,0 +1,500 @@ +--- +title: TODO The Teams application model +author: nickwalkmsft +description: TODO Learn how the Teams application model packages, identifies, installs, routes, and connects Teams app experiences to application logic. +ms.topic: conceptual +ms.date: 05/23/2026 +--- + +# The Teams application model and developer workflow + +TODO lead-in: explicitly explain what is in this article: app model and its components, dev workflow specifically for agents (consider that for the title) + +TODO explain that this builds on "Agents in Teams". + +TODO explain that this is a 10,000 view of the overall app model. [Teams SDK programming model **for agents**](../teams-sdk-programming-model.md) explains how it is reflected in the SDK. + +Teams apps bring new features and experiences to the Teams interface, similar to the way extensions in web browsers and code editors work. Developers publish apps to the Teams Store or to their organizational app catalog, where users find them and install them. + +## The Teams app model + +In the Teams app model, Teams does not host or run application code. Instead, developers use Teams SDK to build web applications and services that Teams uses to power customized experiences. The web app or service that defines the behavior of a Teams app can be hosted anywhere on the web. + +Teams offers three categories of experiences, called *app capabilities*, that developers can implement with Teams apps: bot (agents), tab app, and message extension. + + + +### Bot (agents) + +Create conversational assistants that users interact with in Teams chat. Teams bot apps listen for chat messages and other events triggered by user behavior in Teams, and respond with their own chat messages and other conversational gestures. + +Historically, bot-capability apps have been referred to as *bots*, but newer assistants with more advanced capabilities powered by large language models (LLMs) are referred to as *agents*. Agents are distinguished by their ability to converse naturally, adapt to context, and dynamically perform actions on behalf of users; see [Agents in Teams](../agents-in-teams/overview.md). + +### Tab app + +Display a web application in a browser frame within the Teams client. Developers use Teams' JavaScript browser libraries to create web applications that integrate closely with Teams and feel like a first-class part of the user interface. Users access tab apps through the Teams sidebar or add them as tabs to their Teams channels, group chats and meetings. + +### Message extension + +Display custom dialogs in Teams that perform actions or searches. Message extensions are typically used to generate rich, interactive messages that appear in Teams chat. + +## App manifest + +When a user installs an app in Teams, the only elements of the app that are actually deployed to a user's device are its graphic icons and its *manifest*. An app's manifest is a JSON configuration file that describes the app and configures the app capabilities it uses, including the endpoints of the web services or applications that implement its behavior. + +Developers typically treat their app's manifest as part of its source code, storing it in source control and updating it as the app takes shape. When development is complete and the developer has ensured that their app's web service or web application is deployed and reachable, they submit the app manifest and icons to the Teams platform for distribution through the Teams Store or their organization's app catalog. + +## For agents: bot registration and Entra ID identity + +Bots have a few extra resources + +"identity and messaging infrastructure" + +When users chat with an agent or bot app, behavior is in web service, but platform doesn't talk directly to the web service + +Not billable Azure resources + +You will need an Azure account and billable Azure subscription to create an Azure bot + +Teams platform doesn't communicate directly with bots, it uses botservice as an intermediary + +"The web service that defines an agent's behavior can be hosted anywhere, but Teams' identity infrastructure lives in Azure." + +## Teams SDK + +TODO link to SDK page. + +and dev cli + +## The development process: TDP and CLI, SDK, dev tunnel, sideload + +During development, they can use their app manifest to *sideload* their app, installing it to Teams to test it without having to publish it. + +With [dev tunnels](/azure/developer/dev-tunnels/), developers can host their app's service on the web right from their development environment. + +Teams SDK: Teams apps interact with the Teams API, Graph API, need to validate requests, etc. etc. + +## The Teams agent development process + +TDP and CLI + +(This is basically a narrative of the quickstart, point that out and link it.) + +Teams agent development begins with starter code for a new web service that responds to Teams conversational events. `teams project new` creates the source code scaffolding for a new Teams app. The CLI includes agent starter templates with basic conversational functionality across the SDK's three supported languages: TypeScript, Python and C#. + +Being able to experience your agent from Teams as you develop it, the same way your users will, is important to building great agent experiences. Teams SDK encourages getting your agent connected to Teams at the very beginning of the development process so you can see your app evolve as you iterate. Teams needs your agent's web service to be reachable from the Internet, so the next step is to use `devtunnel` to give it a public URL when you run it from your development environment. + +Next is the app's registration, the one-time process that creates the Entra ID identity for your app and the Azure Bot Service messaging infrastructure used by Teams to connect to your agent's web service. `teams app create` registers your agent Azure Bot Service and Entra ID. TODO also creates app registration + +App packages and their manifests can be created manually, but it's recommended to do it by creating an *app registration* with the Teams platform. Creating an app registration initializes a new app package and manifest and sets up the means for publishing the app to the Teams Store or your organization's app catalog when the app is finished. Registering the app also initializes important infrastruture needed for bot and agent apps during development, see below. Registering apps with Teams platform requires a Microsoft 365 organizational account with access to Teams, but is otherwise free. + +The Teams developer CLI and Teams Developer Portal facilitate this workflow. The CLI and portal are how developers interface with the Teams platform to manage app packages, manifests and registrations. Also other tools like validation. Can modify using the portal and download. The app registration on the platform only needs to be finalized before publishing. + +"The web service you build might be brand new LLM-powered functionality in a conversational shape, or it might be more of an integration layer, or somewhere in between, depending on whether you already have supporting libraries or maybe a whole existing agent that you're just trying to bring to Teams in a very robust way. If you do, maybe you'd add an additional model or layered prompting mechanism to get deep integration that lets your agent communicate in an intelligent, group-aware way. You can start thing and then build additional capabilities to let your agent use more advanced conversational features." -- we should consider design guidance around this, in the design portion of a "bringing existing agents to teams" article. + +The platform registration itself isn't needed until you're ready to distribute your app, but creating a registration also facilitates creating a bot registration and entra ID app, and is the only way to do it unless you have an azure subscription through which you can access the portal. + +As an app's features evolve during development Can edit in portal live with graphical editor for ease of use or modify locally and deploy to teams client. + +do this at the startt of development. + +Deploying locally requires "install custom app". + +Developers are encouraged to get their apps installed and running in Teams at the very beginning of the development process so they can test and experience their app in Teams as they work on it. + +To create and manage app packages and manifests, developers use the Teams Developer Portal or the Teams developer CLI. Typically, at the very beginning of development, an app developer will: + +1. Use the portal or CLI to create both a new app package and a new app project in their development environment +1. Download the app package and store its contents alongside their app source code + +The portal and CLI offer various capabilites for verifying and modifying a + +Deploying is separate from publishing + +Created and managed in TDP. You can start by creating in TDP and downloading. + +The Teams developer CLI includes functionality for scaffolding, validating and updating manifests. + +TODO rewrite The development process facilitated by the Teams developer CLI encourages developers to sideload ASAP + +... and also to register their bot ASAP + + + +--- + +## Apps are M365 apps + +## Remaining Concepts to carry over from + +- Reactive and proactive messaging +- Bot registration (bot ID and where the endpoint is configured) +- Request validation +- Variety of events, varied response types, some expect no response at all. Should define, maybe link to the Activity model. +- Authenticating calls to Teams API, Graph API +- OAuth, SSO + +## Remaining Concepts to carry over from + +- Basic flowchart, see diagram +- DevTunnel +- Provisioning of app and bot has to come even before sideloading +- Sideloading +- Explain how the developer CLI supports all of this + +## Remaining concepts to carry over from + +- Come back to this, do app basics first + +## How is behavior defined? + + the Teams client with new experiences + +. It defines how your app appears in Teams, which capabilities it supports, which permissions it needs, and how Teams connects user interactions to your application logic. + +A Teams app typically includes: + +- **An app package** — The installable package that contains the app manifest and app icons. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) +- **An app manifest** — A JSON file that describes the app’s metadata, capabilities, permissions, IDs, URLs, and other configuration required by Teams. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) +- **App identity** — Platform registration information, such as an application ID and credentials, that Teams and related Microsoft services use to identify and authenticate the app. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) +- **App capabilities** — The Teams experiences the app provides, such as a bot, tab, message extension, or other capability. +- **An application endpoint** — A public HTTPS endpoint where Teams can send events and activities for your app. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) +- **Application logic** — Developer-owned code that receives activity from Teams, handles it, calls services or APIs, and sends responses. + +For conversational apps and agents, the app model connects native Teams conversational surfaces to your application logic. A user sends a message, selects a command, submits an Adaptive Card action, or interacts with the app in Teams. Teams routes that interaction to your app, and your app decides how to respond. + +## How Teams apps work + +At runtime, a Teams app connects the Teams client, Teams platform services, app configuration, and your application service. + +A simplified conversational flow looks like this: + +1. A user interacts with your app in Teams. +2. Teams receives the interaction. +3. Teams identifies the installed app and its configured capabilities. +4. Teams routes the activity through the appropriate platform services. +5. The activity is delivered to your application endpoint. +6. Your app authenticates the request. +7. Your app routes the activity to the appropriate handler. +8. Your app sends a response, updates state, calls another service, or takes no action. +9. If needed, your app can also send proactive messages later. + +For bot and agent scenarios, the application primarily does two things: listens for events from Teams and sends responses or proactive messages back to Teams. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +## Core parts of the Teams application model + +## App package and manifest + +Every app installed in Teams requires an app manifest. The manifest is included in the app package, along with app icons. When you sideload an app for testing, you provide Teams with a zip package that contains the manifest and icons. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) + +The manifest describes the app to Teams. It can include information such as: + +- App name, description, and visual identity +- App IDs and related identity configuration +- Supported app capabilities +- Permissions required by the app +- URLs and domains used by the app +- Bot, tab, message extension, or other capability-specific configuration + +The manifest is the declarative part of the Teams application model. It tells Teams what the app is, how it should appear, and which Teams capabilities it supports. + +The Teams Developer CLI and related tooling can help scaffold, validate, update, upload, and package the manifest as part of the development workflow. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +## App identity and registration + +Teams needs a stable way to identify your app. For bot and agent scenarios, this includes an app registration with a unique client ID and secret. The app registration is used to authenticate your app with Teams and other Microsoft services, including Microsoft Graph when needed. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +This identity gives Teams and related services a consistent way to recognize your app, even if implementation details change. For example, your public endpoint might change between local development, test, and production, but the app identity remains the stable reference for the app. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +## Bot registration and routing + +For bot and agent capabilities, Teams uses bot registration and routing configuration to connect Teams activity to your application endpoint. The bot registration stores the public HTTPS URL for your app and enables messages and other bot-related activity to flow between Teams and your service. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +This routing layer lets Teams deliver different types of activity to your app, including user messages, reactions, installation events, Adaptive Card actions, dialog actions, and other supported activity types. These activities can arrive through the same public endpoint, and your app is responsible for routing each activity to the right logic. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +## Application endpoint + +The application endpoint is the public HTTPS URL where Teams sends activity for your app. During local development, this endpoint might be created by a dev tunnel that forwards Teams traffic to a locally running server. In production, the endpoint is typically a deployed cloud service. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +The endpoint is where the platform model becomes application code. Teams sends activity to the endpoint, and your app authenticates the request, interprets the activity, and decides what to do next. + +## Events, activities, and handlers + +Teams apps are event-driven. A user sends a message, installs an app, submits a card, invokes a command, or performs another action in Teams. Those interactions are represented as events and activities that your app can handle. + +### Events + +An event is something meaningful that happens in Teams or inside your application. Events can come from Teams, such as a user interaction, or from your application runtime, such as startup, error handling, or activity processing. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-event/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/) + +Examples of events include: + +- Application start +- Sign-in flow +- Incoming activity +- Activity response +- Sent activity +- Unhandled application error + +### Activities + +An activity is a Teams-specific payload that flows between Teams and your app. Activities include messages, reactions, Adaptive Card actions, installation events, and invoke calls. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/) + +Different activity types can require different handling behavior. A message activity might result in a text response or Adaptive Card response. A reaction activity might update application state but not send a visible response. An invoke activity might require a specific response format. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/) + +### Handlers + +A handler is application logic that reacts to an event or activity. Handlers inspect incoming data, decide whether the app should act, and perform the appropriate response. + +A handler might: + +- Send a message back to the user +- Return an Adaptive Card +- Start or continue a workflow +- Call Microsoft Graph or another service +- Update application state +- Log diagnostic information +- Ignore the activity if no action is needed + +The Teams SDK expresses this part of the model through event handlers and activity handlers. Developers register handlers for the types of events and activities their app supports. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/) + +## How the Teams SDK expresses the application model + +The Teams SDK provides a programming model for building Teams apps that follows the Teams application model directly. Instead of requiring developers to manually implement authentication, request handling, activity routing, response formatting, and Teams API calls, the SDK provides abstractions for these common tasks. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +The SDK does not replace the Teams application model. It makes the model concrete in code. + +## The app object + +In the Teams SDK, the app object is the main entry point for your Teams application. It hosts and runs the server, receives incoming requests, routes activities to handlers, handles authentication, provides utilities for interacting with Teams, and manages plugins that extend application behavior. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/app-basics/) + +Conceptually, the app object represents the developer-owned application service in the Teams application model. It is where incoming Teams activity becomes application logic. + +The app object can be responsible for: + +- Hosting the application server +- Authenticating requests from Teams +- Routing events and activities +- Registering handlers +- Sending replies +- Sending proactive messages +- Accessing Teams APIs +- Managing plugins and lifecycle events + +## Activity routing + +In the platform model, Teams sends different types of activity to your app. In the SDK, those activities are routed to handlers that you register in application code. + +For example, a message handler can process user messages and send a response to the conversation. The SDK docs show handlers that receive a message activity, inspect its text, and send a reply. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/getting-started/code-basics/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/) + +The SDK can also use a middleware-style routing pattern, where multiple handlers can process an activity in order. A handler can perform work and then pass control to the next handler, or stop the chain when it has fully handled the activity. Handler registration order affects how activities flow through the handler chain. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/) + +## Events and lifecycle hooks + +Teams apps need to react not only to user messages, but also to application and platform events. The SDK provides event hooks for scenarios such as application startup, sign-in, errors, incoming activity, activity responses, and sent activity. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-event/) + +These hooks help developers connect app behavior to the broader lifecycle of a Teams application. For example, an app can log errors, inspect incoming activity, track outgoing responses, or run setup logic when the app starts. + +## Authentication and platform plumbing + +Teams apps need to authenticate incoming requests from Teams and authenticate outgoing calls back to Teams or other Microsoft services. Without an SDK, developers would need to implement this plumbing directly, along with routing logic for different event and activity types. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +The Teams SDK abstracts much of this boilerplate so developers can focus on application behavior. It handles common concerns such as authentication, routing, event handling, and Teams platform integration. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +## Teams API access + +A Teams app often needs to do more than reply to a single message. It might need to send, update, or delete messages; get conversation members; retrieve meeting details; or access team and channel information. + +The Teams SDK provides an API client for working with Teams platform areas such as conversations, meetings, teams, and channels. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/api/) + +Examples of API scenarios include: + +- Get members of a conversation +- Send a message to a conversation +- Update or delete a message +- Retrieve meeting details +- Get meeting participant information +- Access team or channel details + +These APIs let application logic participate more fully in Teams experiences, beyond simple request-response message handling. + +## Plugins and extensibility + +The Teams SDK includes a plugin model that lets developers hook into application lifecycle events, server events, activity events, and outgoing activity behavior. Plugins can add, replace, or augment parts of the app’s behavior. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/getting-started/code-basics/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/app-basics/) + +Plugins support a modular application structure. For example, a plugin might help configure hosting, add diagnostics, handle authentication behavior, modify activity processing, or integrate additional services. + +## Building conversational app experiences + +Bots and agents are a major Teams app capability. They let developers create conversational experiences in Teams-native surfaces, such as chats, channels, and other conversation contexts. + +A conversational Teams app can: + +- Receive user messages +- Respond with text +- Send Adaptive Cards +- Handle card actions +- Start workflows +- Call APIs or external services +- Use AI services to generate responses +- Send proactive messages +- Participate in conversations where the app is installed + +The Teams SDK expresses these behaviors through message handlers, activity handlers, API clients, authentication support, Adaptive Card support, and utilities for sending responses. + +## Messages and responses + +A common conversational pattern is message handling. A user sends a message to the app, Teams delivers that message as an activity, and the app processes the activity in a handler. + +The app can then respond with: + +- A text message +- An Adaptive Card +- A typing indicator followed by a response +- A workflow result +- A request for more information +- No visible response, if the activity does not require one + +The SDK docs show a basic message handler that sends a typing indicator and replies to the user’s message. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/getting-started/code-basics/) + +## Adaptive Cards + +Adaptive Cards provide a flexible, cross-platform format for rich, interactive content. In Teams, Adaptive Cards can be used for rich messages, dialogs, message extensions, link unfurling, configuration forms, and other app contexts. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/in-depth-guides/adaptive-cards/) + +In the Teams application model, Adaptive Cards are one way for an app to create richer user experiences inside Teams conversations and workflows. A card can display information, collect input, and expose actions. When a user takes an action on a card, Teams can send an activity back to the app for handling. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/in-depth-guides/adaptive-cards/) + +## Proactive messages + +A Teams app can respond to incoming activity, but it can also send proactive messages. A proactive message is sent by the app outside the immediate context of a user’s latest message. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +For example, an app might send a proactive message when: + +- A workflow completes +- An external system changes state +- A user needs to approve something +- A scheduled reminder is due +- An agent has a result to share + +Proactive messaging requires the app to authenticate with Teams and use the appropriate conversation context and APIs to send the message. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/api/) + +## Development, testing, and deployment + +A Teams app moves through several stages as developers build, test, and deploy it. + +## Local development + +During local development, your application usually runs on your machine. Because Teams needs a public HTTPS endpoint to send activity to your app, you can use a dev tunnel to expose your local server to Teams. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +A dev tunnel creates a secure public HTTPS endpoint, manages SSL certificates, and forwards Teams messages and events to your locally running application. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +This lets you test the app in Teams while still running and debugging the application locally. + +## Provisioning + +Before a Teams app can interact with Teams, it must be registered and configured. For bot and agent scenarios, provisioning can include creating or updating the app registration and configuring the bot registration that connects Teams to your application endpoint. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +The Teams Developer CLI can automate many setup tasks, including app creation, registration, manifest scaffolding, validation, and updates. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) + +## Sideloading + +Sideloading lets you install and test a Teams app before publishing it to an organization app catalog or broader distribution channel. To sideload an app, the app manifest and icons are packaged together in a zip file. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) + +Sideloading is important during development because it lets you test how the app appears and behaves in Teams before it is made available to other users. + +## Production deployment + +In production, your app runs as a deployed service with a public HTTPS endpoint. Teams routes activity to that endpoint based on the app’s identity, manifest, capability configuration, and routing registrations. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +The same application model applies in production as in development: + +- Teams identifies the app. +- Teams routes activity to the configured endpoint. +- The app authenticates incoming requests. +- The app handles events and activities. +- The app sends responses or proactive messages. +- The app uses Teams APIs or other services as needed. + +## Conceptual diagram + +```text +User + ↓ +Teams client + ↓ +Teams platform services + ↓ +App identity, manifest, and capability configuration + ↓ +Bot registration and routing + ↓ +Public HTTPS endpoint + ↓ +Developer-owned application service + ↓ +Teams SDK app object + ↓ +Events, activities, handlers, plugins, APIs + ↓ +Application logic, AI services, Microsoft Graph, external services + ↓ +Response or proactive message + ↓ +Teams conversation +``` + +## Key terms + +### Teams app + +An installable application experience that extends Microsoft Teams through one or more app capabilities. + +### App capability + +A Teams feature area that an app uses to create a specific user experience, such as a bot, tab, message extension, or other Teams experience. + +### App package + +The zip package used to install or test an app in Teams. It includes the app manifest and app icons. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) + +### App manifest + +The JSON file that describes a Teams app’s metadata, identity, capabilities, permissions, URLs, and related configuration. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/manifest/) + +### App registration + +The identity registration used to identify and authenticate the app with Teams and related Microsoft services. For bot and agent scenarios, this includes a client ID and secret. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +### Bot registration + +The registration that connects Teams bot activity to the app’s public HTTPS endpoint. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +### Endpoint + +The public HTTPS URL where Teams sends activity for the app. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/teams/core-concepts/) + +### Event + +Something meaningful that happens in Teams or within the app runtime. Events can include incoming activity, sent activity, sign-in, startup, or errors. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-event/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/) + +### Activity + +A Teams-specific payload sent between Teams and the app, such as a message, reaction, card action, installation event, or invoke call. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/) + +### Handler + +Application logic that reacts to an event or activity and decides what action the app should take. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/on-activity/) + +### Proactive message + +A message sent by the app outside the immediate context of responding to the latest user message. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/) + +### Teams SDK + +The recommended programming model for implementing the Teams application model in code. It provides abstractions for app hosting, authentication, event and activity routing, handlers, Teams API access, plugins, and response utilities. [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/why/), [\[microsoft.github.io\]](https://microsoft.github.io/teams-sdk/csharp/essentials/app-basics/) + +## Summary + +The Teams application model connects installable Teams experiences to developer-owned application logic. The model includes the app package, manifest, app identity, capabilities, routing, endpoint, events, activities, handlers, authentication, and Teams APIs. + +The Teams SDK is the primary way developers implement this model in modern Teams apps and agents. It expresses Teams platform concepts directly in code, so developers can build conversational and interactive Teams experiences without manually implementing the platform plumbing for authentication, routing, activity handling, and Teams API access. diff --git a/msteams-platform/teams-developer-cli.md b/msteams-platform/teams-developer-cli.md index bc22fcbd403..eb3b4a5de48 100644 --- a/msteams-platform/teams-developer-cli.md +++ b/msteams-platform/teams-developer-cli.md @@ -12,6 +12,7 @@ ms.author: nickwalk The Teams Developer CLI provides tools for creating, configuring, and managing Teams apps. * **Project scaffolding** - Get an agent or app up and running on Teams in minutes with project templates in TypeScript, C# and Python +* **App manifest management** - * **App registration and lifecycle management** - Register agents and apps with the Teams platform and manage their configuration * **Authentication** - Manage Entra ID app credentials and agent authentication diff --git a/msteams-platform/teams-sdk-overview.md b/msteams-platform/teams-sdk-overview.md index c6060efa0ff..816cddcc389 100644 --- a/msteams-platform/teams-sdk-overview.md +++ b/msteams-platform/teams-sdk-overview.md @@ -11,9 +11,7 @@ ms.author: nickwalk Teams SDK is the developer toolkit for building conversational agents and other app experiences in Teams. It's developed alongside the Teams platform and and exposes the full range of platform features, enabling developers to build apps that integrate deeply with Teams. Agents and apps built with Teams SDK can take full advantage of the unique features that make Teams so effective for collaborative work. -Teams SDK is generally available for TypeScript, C#, and Python, and represents the evolution of the earlier Teams AI library into a more comprehensive and cohesive development model. It addresses the full range of Teams app capabilities, with an emphasis on building rich conversational agents. The Teams Developer CLI included with the SDK streamlines app development with quickstart project templates and app lifecycle management tools, and credential management. - -The Teams Platform documentation primarily uses the Teams SDK APIs and tools to demonstrate how to implement platform features. +Teams SDK is generally available for TypeScript, C#, and Python, and represents the evolution of the earlier Teams AI library into a more comprehensive and cohesive development model. It addresses the full range of Teams app capabilities, with an emphasis on building conversational AI agents powered by large language models (LLM). The Teams Developer CLI included with the SDK streamlines app development with quickstart project templates and app lifecycle management tools, and credential management. ## SDK features diff --git a/msteams-platform/teams-sdk-programming-model.md b/msteams-platform/teams-sdk-programming-model.md index abacce07fd3..19c7d5fb4c4 100644 --- a/msteams-platform/teams-sdk-programming-model.md +++ b/msteams-platform/teams-sdk-programming-model.md @@ -7,6 +7,8 @@ author: nickwalkmsft ms.author: nickwalk --- -# Teams SDK programming model +# Teams SDK programming model **for agents** -TODO +In [The Teams application model and developer workflow](concepts/teams-application-model.md), we saw how apps are powered by web apps + +That article is overall arch model and workflow, this is Temas SDK app model