Updates from: 09/18/2024 01:11:48
Service Microsoft Docs article Related commit history on GitHub Change details
platform What Are Bots https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/bots/what-are-bots.md
It's recommended to start with [build your first bot app using JavaScript](../sb
Conversational bots allow users to interact with your web service using text, interactive cards, and dialogs (referred as task modules in TeamsJS v1.x). :::image type="content" source="../assets/images/task-module-example.png" alt-text="The screenshot is an example that shows a web service using dialog." lightbox="../assets/images/task-module-example-expanded.png":::
With Microsoft Graph APIs for calls and online meetings, Teams apps can now inte
You can use the Teams bot APIs to get information for members of a chat or team. See [changes to Teams bot APIs for fetching team or chat members](~/resources/team-chat-member-api-changes.md).
-You can change the bot name displayed in Teams environment, and you need to update it in the following occurrences:
-
-* The bot name displayed as a title in the chat window is managed within your app manifest (previously called Teams app manifest) and you can update the bot name in your app manifest.
-
-* The bot name that's displayed in your Teams chat list and in the chat window with each message are managed within Microsoft Azure portal. For custom uploaded apps, you can update the bot name in the **Bot profile** page in Azure portal.
-
- :::image type="content" source="~\assets\images\bot_name.png" alt-text="The screenshot shows the bot name displayed in a Teams window.":::
+### Bot name and icon
+
+***Bot name***: You can change the bot name displayed in Teams environment by updating it in the following occurrences:
+
+* The bot name, displayed as a title in the chat window, is updated and managed within your app manifest (previously called Teams app manifest).
+
+* The bot name that's displayed in your Teams chat list and in the chat window with each message is managed within Microsoft Azure portal. For custom uploaded apps, you can update the bot name in the **Bot profile** page in Azure portal.
+
+ :::image type="content" source="~\assets\images\bot_name.png" alt-text="The screenshot shows the bot name displayed in a Teams window." lightbox="~\assets\images\bot_name.png":::
+
+***Bot icon***: You can add or update the bot icon for the Teams app as follows. The updated bot icon becomes visible only after the user signs out and signs back into Teams. This is because the icons are cached:
+
+* [Microsoft Teams Store app](~/concepts/deploy-and-publish/appsource/publish.md): For Teams Store apps, bot icons are fetched from the app manifest. You can update the bot profile icon by updating it through the app manifest and republishing the app.
+
+ ```json
+
+ {
+ "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
+ "manifestVersion": "1.17",
+ "version": "1.0.0",
+ "id": "%MICROSOFT-APP-ID%",
+ "icons": {
+ "outline": "A relative path to a transparent .png icon ΓÇö 32px X 32px", // This icon is used for bot profile.
+ "color": "A relative path to a full color .png icon ΓÇö 192px X 192px"
+ },
+ "bots": [
+ {
+ "botId": "%MICROSOFT-APP-ID-REGISTERED-WITH-BOT-FRAMEWORK%",
+ "scopes": [
+ "team",
+ "personal",
+ "groupChat"
+ ]
+ }
+ ]
+ ...
+ }
+
+ ```
+
+* [Uploading a custom app](~/concepts/deploy-and-publish/apps-upload.md) in Teams or [custom apps built for your org (LOB apps)](/microsoftteams/teams-custom-app-policies-and-settings): </br>
+
+ * [**Azure portal**](https://ms.portal.azure.com/#home): You can change your bot icon by navigating to [Azure portal.](/azure/bot-service/bot-service-manage-overview#settings)
+
+ :::image type="content" source="~/assets/images/bots/bot-icon-update.png" alt-text="Screenshot of the Azure portal to update bot icons." lightbox="~/assets/images/bots/bot-icon-update.png":::
+</br>
+ * [**Bot Framework portal**](https://dev.botframework.com/bots): For bots created using Bot Framework Portal, you can update the bot icon in the **SETTINGS** page.
+
+ :::image type="content" source="~/assets/images/bots/bot-icon-frame-work.png" alt-text="Screenshot of the Bot Framework Portal to update bot icons." lightbox="~/assets/images/bots/bot-icon-frame-work.png":::
## Add SSO authentication to your conversation bots
platform Review Copilot Validation Guidelines https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md
Title: Guidelines to validate Copilot agents
-description: Learn how to increase the chances of your message extension as a Copilot agent or plugin for Microsoft 365 to pass the Teams Store submission process.
+ Title: Guidelines to Validate Copilot Agents
+description: Learn how to increase the chances of your message extension as an agent or plugin for Microsoft 365 Copilot to pass the Teams Store submission process.
You must ensure to meet the following guidelines for Copilot agents:
* The Teams Store validation guidelines related to app description for Microsoft 365 apps are applicable. For more information, see [app descriptions](teams-store-validation-guidelines.md#app-descriptions). * Short description of Copilot agent, parameter, command description, semantic description, and operation ID mustn't include:
- * Instructional phrases, for example, ΓÇ£if the user says XΓÇ¥, ΓÇ£ignoreΓÇ¥, ΓÇ£deleteΓÇ¥, ΓÇ£resetΓÇ¥, ΓÇ£new instructionsΓÇ¥, ΓÇ£Answer in BoldΓÇ¥ or ΓÇ£Do not print anythingΓÇ¥. [*Must fix*]
+ * Instructional phrases, for example, ΓÇ£if the user says XΓÇ¥, ΓÇ£ignoreΓÇ¥, ΓÇ£deleteΓÇ¥, ΓÇ£resetΓÇ¥, ΓÇ£new instructionsΓÇ¥, ΓÇ£Answer in BoldΓÇ¥, or ΓÇ£Do not print anythingΓÇ¥. [*Must fix*]
* URLs, emojis, or hidden characters such as hexadecimal, binary, or unconventional symbols. [*Must fix*] * Grammar and punctuation errors. [*Must fix*] * Overly verbose, flowery, or marketing language. [*Good-to-fix*]
You must ensure to meet the following guidelines for Copilot agents:
> [!NOTE] > * In case of declarative agents, the short description guidelines apply to the `instructions` and `conversation_starters` fields also. > * For API based plugins, these guidelines apply to `description_for_human`, `description_for_model`, `capabilities`, `conversation_starters` (both the title and and text), `states\reasoning\description` in `functions` fields, if provided. [*Must fix*]
- > * When utilizing Swagger or OpenAPI file formats, adhere to these guidelines for the 'path' content associated with keys and the 'description' field for GET, POST, PUT, or DELETE APIs. [*Must fix*]
+ > * When utilizing Swagger or OpenAPI file formats, adhere to these guidelines for the `path` content associated with keys and the `description` field for GET, POST, PUT, or DELETE APIs. [*Must fix*]
* App long description must clearly call out that the Copilot agent works in Microsoft 365 Copilot. For example, use Contoso in Microsoft 365 Copilot to search and summarize your tasks. ΓÇï[*Must fix*]
The [`samplePrompts`](../../../../resources/schem#composeext
Sample prompts are specified using `samplePrompts` property in the app manifest. These prompts must meet the following requirements:
-* A plugin must have at least three prompts and maximum of five prompts for each command. [*Must Fix*]
-* Each prompt must not exceed 128 characters. [*Must Fix*]
-* Two commands within the same plugin must not have identical prompts. [*Must Fix*]
-* Sample prompts must be generic in nature and not include custom references. For example, project names and task name. [*Must Fix*]
-* All sample prompts must be functional and return responses. [*Must Fix*]
-* Prompt must be relevant to the commands. [*Must Fix*]
+* A plugin must have at least three prompts and maximum of five prompts for each command. [*Must fix*]
+* Each prompt mustn't exceed 128 characters. [*Must fix*]
+* Two commands within the same plugin mustn't have identical prompts. [*Must fix*]
+* Sample prompts must be generic in nature and not include custom references. For example, project names and task name. [*Must fix*]
+* All sample prompts must be functional and return responses. [*Must fix*]
+* Prompt must be relevant to the commands. [*Must fix*]
### Prompt starters Prompt starters guide users on how to start using declarative agents. You must ensure the following guidelines for prompt starters:
-* A declarative agent must have at least three prompts and maximum of six prompts. [*Must Fix*]
-* All prompt starters must be functional and return responses. [*Must Fix*]
-* It must be generic in nature and not include custom references, for example, project names and task name. [*Must Fix*]
+* A declarative agent must have at least three prompts and maximum of six prompts. [*Must fix*]
+* All prompt starters must be functional and return responses. [*Must fix*]
+* It must be generic in nature and not include custom references, for example, project names and task name. [*Must fix*]
[Back to top](#validation-guidelines-for-copilot-agents)
Copilot agent responses provided as an Adaptive Card must meet the following req
:::image type="content" source="../../../../assets/images/Copilot/validation-guidelines-app-response-copilot.png" alt-text="Screenshot shows an example of a sample app showing Microsoft 365 Copilot app response contains preview and content in the same response.":::
-* Apart from the Copilot agent logo, title, thumbnail, and title of the information, the data in the Adaptive Card must represent at least two pieces of information. You can identify the fields from the most frequently searched attributes such as, data modified, author, status, and flags. [*Must fix*]
+* Apart from the Copilot agent logo, title, thumbnail, and title of the information, the data in the Adaptive Card must represent at least two pieces of information. You can identify the fields from the most frequently searched attributes such as data modified, author, status, and flags. [*Must fix*]
:::image type="content" source="../../../../assets/images/Copilot/validation-guidelines-plugin-functional-action.png" alt-text="Screenshot shows an example of information title, additional user fields, and action button in an Adaptive Card response.":::
Copilot agent responses provided as an Adaptive Card must meet the following req
Copilot agents must be fully responsive and functional on the latest versions of these clients: [*Must fix*]
-* Microsoft Teams on Desktop and Web
+* Microsoft Teams on desktop and web
* copilot.microsoft.com on web * Microsoft 365 Copilot in Word
Copilot agents must be fully responsive and functional on the latest versions of
You must implement the following:
-* Adaptive Cards must not display a horizontal scroll. To avoid horizontal scrolls, donΓÇÖt specify a fixed width: [*Must fix*]
+* Adaptive Cards mustn't display a horizontal scroll. To avoid horizontal scrolls, donΓÇÖt specify a fixed width: [*Must fix*]
* **ColumnSets** * Don't define `ColumnSets` with more than three columns. * DonΓÇÖt use explicit pixel width on more than one column in the set. * Ensure the column doesn't exceed one-quarter of the narrowest card width, such as in a meeting chat or Microsoft 365 Copilot.
- * Generally, an explicit width must not exceed 48 pixels, though some scenarios might allow for exceptions.
+ * Generally, an explicit width mustn't exceed 48 pixels, though some scenarios might allow for exceptions.
* **Sizing images** * When using an image inside a `ColumnSet` with more than one column, specify the size of the column containing an image rather than the image itself. * If the image isnΓÇÖt in a `ColumnSet`, we recommend you to set its size to `auto` or `stretch`.
- * If you want to define explicit width in pixels, ensure that they don't exceed 3/4th of the narrowest card width.
+ * If you want to define an explicit width in pixels, ensure that it doesnΓÇÖt exceed three-fourths of the narrowest card width.
* If you want to define explicit size in pixels, define it for the width or height. Setting explicit size for any one parameter preserves the image's aspect ratio.
- * We recommend that you must set the width of the image, though some scenarios might allow for exceptions.
+ * We recommend that you set the width of the image, though some scenarios might allow for exceptions.
For more information to create plugins for teams meetings, see [enable message extension as a plugin for Copilot for meetings](../../../../messaging-extensions/build-bot-based-plugin.md#enable-message-extension-as-a-plugin-for-copilot-for-meetings).
For more information to create plugins for teams meetings, see [enable message e
You must ensure to meet the following guidelines for Copilot agents:
-1. **If using SSO-enabled app, update Microsoft Azure Active Directory (Azure AD) app registration**: [*Must fix*]
+1. **If using SSO-enabled app, update Microsoft Entra app registration**: [*Must fix*]
- Azure AD single sign-on (SSO) for message extension works in the same way as it does in Teams or Outlook. If you've enabled SSO for your app, add the Office app Copilot’s client application identifier to the Azure AD app registration of your bot in your tenant's App registrations portal.
+ Microsoft Entra single sign-on (SSO) for message extension works in the same way as it does in Teams or Outlook. If you've enabled SSO for your app, add the Office app Copilot’s client application identifier to the Microsoft Entra app registration of your bot in your tenant's App registrations portal.
- 1. Sign in to [Azure portal](https://portal.azure.com/)  with your sandbox tenant account.
+ 1. Sign in toΓÇ»[Azure portal](https://portal.azure.com/) with your sandbox tenant account.
1. Open **App registrations**. 1. Select the name of your application to open its app registration. 1. From the **Manage** section, select **Expose an API**.
You must ensure to meet the following guidelines for Copilot agents:
1. From the **Settings** section, select **Channels**. 1. From **Available channels**, select **Microsoft 365 & Microsoft Teams**, and then select **Apply**.
-1. **Configure Content-Security-Policy headers** [*Must fix*]
+1. **Configure Content Security Policy headers** [*Must fix*]
- If your Copilot agent makes use of [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) (CSP) headers, ensure that all the following [frame-ancestors](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors) are included in your CSP headers:
+ If your Copilot agent makes use of [Content Security Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) (CSP) headers, ensure that all the following [frame-ancestors](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors) are included in your CSP headers:
- | Microsoft 365 App | frame-ancestor permission |
+ | Microsoft 365 App | `frame-ancestors` permission |
| | | | All hosts (New) | `*.cloud.microsoft` | | Word | fa000000125.resources.office.net |
For a Copilot agent to be validated, invoked, and to work seamlessly, ensure tha
| Criteria | Fulfillment | ||| | Manifest version | *App manifest version must be 1.13 or later. [*Must fix*] <br>* If you're using declarative agent, you must use [public developer preview app manifest schema](../../../../resources/schem). [*Must fix*] |
-| Response Time | Response time must not exceed nine seconds for 99 percent, five Seconds for 75 percent and two Seconds for 50 percent. [*Must fix*] |
+| Response time | Response time mustn't exceed nine seconds for 99 percent, five seconds for 75 percent and two seconds for 50 percent. [*Must fix*] |
| Reliability | Apps must maintain 99.9% availability. For instance, if Microsoft 365 Copilot calls a plugin 1,000 times, it must provide a meaningful response 999 times. [*Must fix*] |
-| Zero Regressions | If you need to resubmit your Copilot agent for validation, the existing message extension functionality that was working earlier mustn't break. This requirement is only applicable to independent software vendor (ISV) apps and not apps built for your organization. [*Must fix*] |
-| Microsoft 365 Channel | For users to interact with your message extension from Outlook, you need to add Microsoft 365 channel to your bot. For more information, see [add Microsoft 365 channel for your app](../../../../m365-apps/extend-m365-teams-message-extension.md#add-microsoft-365-channel-for-your-app). [*Must fix*]|
-| Single sign-on (SSO) | If applicable, update your Microsoft Entra ID app registration for SSO. [*Must fix*] |
-| Content-Security-Policy | If applicable, modify your Content-Security-Policy headers and X-Frame-Options in accordance with [configure Content-Security-Policy headers](/microsoftteams/platform/m365-apps/extend-m365-teams-personal-tab?tabs=manifest-teams-toolkit#configure-content-security-policy-headers). [*Must fix*] |
+| Zero regressions | If you need to resubmit your Copilot agent for validation, the existing message extension functionality that was working earlier mustn't break. This requirement is only applicable to independent software vendor (ISV) apps and not apps built for your organization. [*Must fix*] |
+| Microsoft 365 channel | For users to interact with your message extension from Outlook, you need to add Microsoft 365 channel to your bot. For more information, see [add Microsoft 365 channel for your app](../../../../m365-apps/extend-m365-teams-message-extension.md#add-microsoft-365-channel-for-your-app). [*Must fix*]|
+| Single sign-on (SSO) | If applicable, update your Microsoft Entra app registration for SSO. [*Must fix*] |
+| Content Security Policy (CSP) | If applicable, modify your CSP headers and X-Frame-Options in accordance with [configure Content Security Policy headers](/microsoftteams/platform/m365-apps/extend-m365-teams-personal-tab?tabs=manifest-teams-toolkit#configure-content-security-policy-headers). [*Must fix*] |
[Back to top](#validation-guidelines-for-copilot-agents)
For a Copilot agent to be validated, invoked, and to work seamlessly, ensure tha
For action scenarios, Copilot agents must share user disclosure and seek user confirmation:
-* Data shown in third-party service (through dialogue) must be reflective of confirmation provided by the user. [*Must Fix*]
-* A confirmation of the completion of the action must be shared by the plugin in the form of a card. [*Must Fix*]
-* Action taken by a user must be correctly reflected in third-party service. [*Must Fix*]
-* Modification requests by the user prior to confirmation of the action must be honored. [*Must Fix*]
-* Highly consequential tasks such as bulk delete must not be supported. [*Good-to-fix*]
+* Data shown in third-party service (through dialogue) must be reflective of confirmation provided by the user. [*Must fix*]
+* A confirmation of the completion of the action must be shared by the plugin in the form of a card. [*Must fix*]
+* Action taken by a user must be correctly reflected in third-party service. [*Must fix*]
+* Modification requests by the user prior to confirmation of the action must be honored. [*Must fix*]
+* Highly consequential tasks such as bulk delete mustn't be supported. [*Good-to-fix*]
[Back to top](#validation-guidelines-for-copilot-agents)
platform Teams Store Validation Guidelines https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md
Following these guidelines increases the chances of your app to pass the Microso
> * Some guidelines may not be applicable to your app. For example, if your app doesn't include a bot, you can ignore bot-related guidelines. > * We've cross-referenced these guidelines to the Microsoft commercial certification policies and added DoΓÇÖs and DonΓÇÖts with examples from pass or fail scenarios encountered in our validation process. > * Certain guidelines are marked as *Must fix*. If your app submission doesn't meet these mandatory guidelines, you'll receive a failure report from us with steps to mitigate. Your app submission passes Teams Store validation only after you've fixed the issues.
-> * Other guidelines are marked as [*Good-to-fix*]. For an ideal user experience, we recommend that you fix the issues, however, your app submission isn't blocked from publishing on the Teams Store, if you choose not to fix the issues.
+> * Other guidelines are marked as *Good-to-fix*. For an ideal user experience, we recommend that you fix the issues, however, your app submission isn't blocked from publishing on the Teams Store, if you choose not to fix the issues.
:::row::: :::column:::
The app manifest defines your app's configuration.
* As part of Teams app certification, you must submit a production version of the app manifest. [*Must fix*]
-* We recommend that you declare the Microsoft Cloud Partner Program ID (CCP ID), formerly known as Microsoft Partner Network (MPN ID) in the app manifest. The CCP ID helps identify the partner organization that builds the app. [*Good-to-Fix*]
+* We recommend that you declare the Microsoft Cloud Partner Program ID (CCP ID), formerly known as Microsoft Partner Network (MPN ID) in the app manifest. The CCP ID helps identify the partner organization that builds the app. [*Good-to-fix*]
* Scopes and/or context declared in app manifest must be visible within the app. [*Must fix*]
If your app includes a bot, ensure that it adheres to these guidelines.
* Your Teams app must follow [Teams bot design guidelines](../../../../bots/design/bots.md).
-* You must implement a dialog to avoid multi-turn bot response when the workflow involves the user performing repetitive tasks. For example, use a dialog to repetitively capture name, dob, place, and designation instead of using multi-turn conversations. [*Must fix*]
+* You must implement a dialog to avoid multi-turn bot response when the workflow involves the user performing repetitive tasks. For example, use a dialog to repetitively capture name, date of birth, place, and designation instead of using multi-turn conversations. [*Must fix*]
* Any broken links, responses, or workflows in your app must be fixed. [*Must fix*]
The app must terminate the user account instance when the user is switched or lo
* App packages are correctly formatted and adhere to the manifest schema version 1.13 or later. * App must pass the [responsible AI checks.](/legal/marketplace/certification-policies#1-apps-with-artificial-intelligenceai-generated-content-must-meet-below-requirements)
-* App must meet the [plugin compatible criteria](../../../../messaging-extensions/high-quality-message-extension.md).
+* App must meet the [plugin compatible criteria](review-copilot-validation-guidelines.md).
### Plugin must not manipulate LLM behavior
platform Build Bot Based Plugin https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/build-bot-based-plugin.md
Descriptions enhance the usability and effectiveness of a message extension plug
* **Parameter description**: Parameter description explains the requirements of the system in a natural language with output format. * **Semantic description**: Semantic description helps Microsoft 365 Copilot generate content by providing a conceptual understanding of the plugin's capabilities and scenarios where it can help achieve user goals and match userΓÇÖs intent with the plugin's capabilities.
-For more information, see [Descriptions](high-quality-message-extension.md#description).
+For more information, see [guidelines to create and upgrade Copilot agents](dev-guidelines-copilot-agents.md).
All bot-based search message extensions are eligible for plugin support, subject to validation to ensure the plugin meets quality, security, privacy, and usefulness expectations. You can create a bot-based search message extension using Teams Toolkit for Visual Studio Code, Visual Studio, Teams Toolkit command line interface (CLI), or Developer Portal for Teams and extend the message extension to function as a plugin in Microsoft 365 Copilot.
Before you get started, ensure that you're familiar with the following standards
* Standards for compliance, performance, security, and user experience outlined in [Teams Store validation guidelines](../concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md#teams-apps-extensible-as-plugin-for-microsoft-365-copilot).
-* [Guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](../messaging-extensions/high-quality-message-extension.md).
+* [Guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](dev-guidelines-copilot-agents.md).
## Create bot-based message extension
For more on testing your plugin in Microsoft 365 Copilot, see [debugging plugin
## Enable message extension as a plugin for Copilot for meetings
-Ensure that you've created a bot-based message extension and extended it as a plugin for Microsoft 365 Copilot. Before you get started, follow the guidelines listed in [ensure your Copilot plugins work in Teams meetings](high-quality-message-extension.md#ensure-your-copilot-plugins-work-in-teams-meetings) to extend your plugin for Copilot for meetings.
+Ensure that you've created a bot-based message extension and extended it as a plugin for Microsoft 365 Copilot. Before you get started, follow the guidelines listed in [ensure your Copilot plugins work in Teams meetings](../concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md#ensure-your-copilot-plugins-work-in-teams-meetings) to extend your plugin for Copilot for meetings.
To enable message extension as a plugin for Copilot for meetings, follow these steps:
platform Copilot Plugin Faq https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/copilot-plugin-faq.md
Developers will be encouraged to certify their new plugin after successfully com
<details> <summary>How can I create or upgrade a message extension plugin for Microsoft 365 Copilot?</summary>
- You can [create or upgrade a message extension as a plugin in Microsoft 365 Copilot](build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Microsoft 365 Copilot. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](high-quality-message-extension.md).
+ You can [create or upgrade a message extension as a plugin in Microsoft 365 Copilot](build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Microsoft 365 Copilot. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](dev-guidelines-copilot-agents.md).
</details>
platform Dev Guidelines Copilot Agents https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/messaging-extensions/dev-guidelines-copilot-agents.md
Title: Development guidelines for Copilot agents
-description: Learn how to optimize the Copilot agents with these development guidelines to create and upgrade Microsoft 365 Copilots
+ Title: Development Guidelines for Copilot Agents
+description: Discover the essential guidelines and best practices to create, upgrade, and optimize agents for Microsoft 365 Copilot.
> > * Plugins for Microsoft 365 Copilot are in preview and work only in Microsoft 365 Copilot. > * Message extension plugins are in preview.
-> * Message extensions plugins in Microsoft 365 Copilot are in public preview for Microsoft Word and Microsoft PowerPoint.
+> * Message extensions plugins in Microsoft 365 Copilot are in public preview for Microsoft Word and PowerPoint.
> * Ensure that Microsoft 365 Copilot is available for your organization. You have two ways to get a developer environment for Microsoft 365 Copilot: > * A sandbox Microsoft 365 tenant with Microsoft 365 Copilot (available in limited preview through [TAP membership](https://developer.microsoft.com/microsoft-365/tap)). > * An enterprise customer production environment with Microsoft 365 Copilot licenses. > For more information about validation guidelines for Copilot agents to increase their chance for being listed on the Team Store, see [validation guidelines for Copilot agents](../concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md).
-Microsoft 365 plugins provide integration with various Microsoft 365 products, such as Teams and Outlook. The integration helps users to search or create content in external systems. Message extension plugins allow Microsoft 365 Copilot to interact with APIs from other software and services through a bot. With Microsoft 365 Copilot, you can:
+Microsoft 365 plugins provide integration with various Microsoft 365 products, such as Teams and Outlook. The integration helps users to search or create content in external systems. Message extension plugins allow Microsoft 365 Copilot to interact with APIs from other software and services through a bot. With Microsoft 365 Copilot, you can:
* Search for the latest information or record. For example, the latest incident ticket or survey results. * Summarize information based on multiple records. For example, summarize all incident tickets related to the project Northwind.
-We recommend that you build or upgrade your existing message extensions to maximize their usefulness and usability in Microsoft 365 Copilot. Message extensions must support one or more search commands. As Microsoft 365 Copilot recognizes them as skills, it can execute on behalf of the user.
+We recommend that you build or upgrade your existing message extensions to maximize their usefulness and usability in Microsoft 365 Copilot. Message extensions must support one or more search commands. Since Microsoft 365 Copilot recognizes them as skills, it can execute commands on the user's behalf.
## Define app, command, and parameter descriptions
The following code snippets show the command and semantic description examples f
### Parameter description
-Each message extension command supports has a corresponding `parameters' property, which supports up to five parameters and the first parameter must be visible in the message extension search bar. A parameter must have a good description, which must contain a combination of acceptable parameters, enums, acronyms, and output format.
+Each message extension command has a corresponding `parameters` property, which supports up to five parameters. The first parameter must be visible in the message extension search bar. A parameter must have a good description, which must contain a combination of acceptable parameters, enums, acronyms, and output format.
The [semanticDescription](../resources/schem#composeextensionscommands) property is used to provide a detailed description of a command for Microsoft 365 Copilot. Semantic description for parameters supports up to 2,000 characters and isn't displayed in the user interface. If the `semanticDescription` property is left empty, Microsoft 365 Copilot uses the information in the `description` field. When writing a `semanticDescription`, you must include information about expected values, limits, and ranges for the command.
A good parameter description explains the requirements of the system in a natura
# [Tasks](#tab/tasks)
-Basic search: Search for tasks related to Northwind.</br>
-Advanced search: Search for high priority tasks related to Northwind that are due tomorrow.
+* **Basic search**: Search for tasks related to Northwind.</br>
+* **Advanced search**: Search for high priority tasks related to Northwind that are due tomorrow.
**Parameter description example:**
Advanced search: Search for high priority tasks related to Northwind that are du
# [Surveys](#tab/surveys)
-Basic search: Retrieve Customer Satisfaction Surveys. </br>
-Advanced search: Retrieve recent customer satisfaction survey on product Contoso which as filled by more than 100 recipients.
+* **Basic search**: Retrieve Customer Satisfaction Surveys. </br>
+* **Advanced search**: Retrieve recent customer satisfaction survey on product Contoso which as filled by more than 100 recipients.
**Parameter description example:**
Advanced search: Retrieve recent customer satisfaction survey on product Contoso
# [CRM](#tab/crm)
-Basic search: Fetch me qualified leads. </br>
-Advanced search: Fetch qualified leads for which quotes are pending from last seven days.
+* **Basic search**: Fetch me qualified leads. </br>
+* **Advanced search**: Fetch qualified leads for which quotes are pending from last seven days.
**Parameter description example:**
Advanced search: Fetch qualified leads for which quotes are pending from last se
# [General](#tab/general)
-Basic search: Find stocks in NASDAQ.</br>
-Advanced search: Find top 10 stocks in NASDAQ with P/E less than 30 and P/B less than 2.
+* **Basic search**: Find stocks in NASDAQ.</br>
+* **Advanced search**: Find top 10 stocks in NASDAQ with P/E less than 30 and P/B less than 2.
**Parameter description example:**
Advanced search: Find top 10 stocks in NASDAQ with P/E less than 30 and P/B less
For Microsoft 365 Copilot, a search-based message extension must support more than three unique compound utterances to perform deep retrieval of accurate information. To enable compound utterances, you must expand the scope of search to handle three or more parameters by updating the [app manifest (previously called Teams app manifest)](../resources/schem#composeextensionscommands) and ensure the following:
-* Update your web service to support search based on multiple parameters. For more information on how to respond to user requests, see [Respond to search command](how-to/search-commands/respond-to-search.md).
-* Microsoft 365 Copilot might pass an empty string or null value for parameters, which aren't part of user utterance, update your web service to handle the parameters.
+* Update your web service to support search based on multiple parameters. For more information on how to respond to user requests, see [respond to search command](how-to/search-commands/respond-to-search.md).
+* Microsoft 365 Copilot might pass an empty string or null value for parameters, which aren't part of user utterance. Update your web service to handle the parameters.
* A message extension supports upto 10 commands (9 usable) and each command has a corresponding `parameters` property, which supports up to five parameters.
For Microsoft 365 Copilot, a search-based message extension must support more th
:::image type="content" source="../assets/images/Copilot/high-quaity-me-pass-multi-parameters.png" alt-text="Screenshot shows an example of a pass scenario where the Northwind app returns a response for a seafood and in stock parameters.":::
-The search parameters must have good descriptions with acceptable parameters, enums, acronyms, and output format. For more information and examples, see [Parameter description](#parameter-description).
+The search parameters must have good descriptions with acceptable parameters, enums, acronyms, and output format. For more information and examples, see [parameter description](#parameter-description).
## Define sample prompts
Message extensions respond to a user input with an Adaptive Card. An Adaptive Ca
</details> > [!NOTE]
- > Action types `imBack`, `messageBack` aren't supported in a data object.
+ > Action types `imBack` and `messageBack` aren't supported in a data object.
The following action types are recommended:
- * `Action.OpenUrl`: Opens a specified URL from the Card.
+ * `Action.OpenUrl`: Opens a specified URL from the card.
* `Action.ToggleVisibility`: Displays or hides one or more elements in the card. * `Action.Execute`: Collects the input fields and sends them as a request to your bot service. * `Action.Submit`: Opens a dialog or Stageview using type invoke in data object. :::image type="content" source="../assets/images/Copilot/ailib-copilot-action-buttons.png" alt-text="Graphic shows an example of the Update Stock, restock, and Cancel restock action buttons in an Adaptive Card response in Microsoft 365 Copilot.":::
-* If a user can change any information on the card through dialog, Stageview, or directly from the card, we recommend the Adaptive Card to support universal actions and automatic refresh. [*Recommended*]
+* If a user can change information on the card through a dialog, Stageview, or directly from the card, we recommend that Adaptive Card support universal actions and automatic refresh. [*Recommended*]
* Adaptive Cards must include a URL as part of the [metadata](https://adaptivecards.io/explorer/Metadata.html), which allows cards to be easily copied from one hub to another. [*Recommended*] * Apart from thumbnails, any image in an Adaptive Card must have an alt-text. [*Recommended*]
platform Developer Tools https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/tabs/how-to/developer-tools.md
While the web version and the desktop version of Teams are almost same, there ar
1. Enable [**Public preview**](../../resources/dev-preview/developer-preview-intro.md#desktop-or-web-client). 1. Open a tab to inspect with Dev Tools. 1. Open Dev Tools in one of the following ways:
- * On Windows: Open the desktop tray and right-click to select the Microsoft Teams icon. Select **Open Dev Tools**:
+ - On Windows: Open the desktop tray and right-click to select the Microsoft Teams icon. Select **Open Dev Tools**:
:::image type="content" source="../../assets/images/dev-preview/devtools-right-click.png" lightbox="../../assets/images/dev-preview/devtools-right-click.png" alt-text="Screenshot shows the option to open Dev Tools from Windows desktop.":::
- * On macOS: Select **Open Dev Tools**:
+ - On macOS: Select **Open Dev Tools**:
:::image type="content" source="../../assets/images/dev-preview/mac-os-developer-tools.png" alt-text="Screenshot shows the option to open Dev Tools from macOS dock.":::
-
+ The following example shows DevTools: :::image type="content" source="../../assets/images/dev-preview/tab-and-devtools.png" alt-text="Screenshot shows the Tab and DevTools." lightbox="../../assets/images/dev-preview/dev-tools-exp.png":::
-## Access DevTools from Android device
+## Access DevTools from Teams Android client
You can enable DevTools in the Teams Android client. To enable DevTools, follow these steps: 1. DevTools for Android is available only on the beta version of Teams app. To join the beta version of Teams app, follow the instructions listed in [Get beta versions of apps.](https://support.google.com/googleplay/answer/7003180?hl=en#:~:text=Get%20beta%20versions%20of%20apps) :::image type="content" source="~/assets/images/tabs/android-beta-dev-tools.png" alt-text="Screenshot shows the option to join the beta.":::
-
+ 1. Enable [**Public preview**](../../resources/dev-preview/developer-preview-intro.md#mobile-client).
-1. Connect your device to your desktop computer, and set up your Android device for [remote debugging](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/).
+1. Connect your device to your desktop computer, and set up your Teams Android client for [remote debugging](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/).
1. In your Chrome browser, open `chrome://inspect/#devices`. 1. Select **inspect** under the tab you wish to debug, as in the following image: :::image type="content" source="../../assets/images/android-devtools.png" alt-text="Screenshot shows the Android DevTools." lightbox="../../assets/images/android-devtools.png":::
+## Access DevTools for Teams iOS client
+
+You can access DevTools on your Teams iOS client. This involves meeting the necessary prerequisites and following the steps to activate it.
+
+### Prerequisites
+
+To access DevTools for a Teams iOS client, ensure you meet the following requirements:
+
+- Mac system with Safari.
+- Teams iOS version 6.10.0 or later. You can download Microsoft Teams for iOS from the [AppStore](https://aka.ms/teamsmobiledownload).
+
+### Activate DevTools for your Teams iOS client
+
+To activate DevTools:
+
+1. Confirm whether the user or the tenant is activated for targeted release. If not, you need to enable it.
+
+ For more information, see [targeted release for entire organization](/microsoft-365/admin/manage/release-options-in-office-365?view=o365-worldwide.md#targeted-release-for-entire-organization&preserve-view=true).
+
+ > [!IMPORTANT]
+ > After enabling the user or the tenant for targeted release, allow 24 hours for the settings to take effect. After this period, try signing out and then signing back in on the Teams iOS client to confirm its activation.
+
+1. Sign in to the Teams iOS app and activate the developer preview. For more information about developer preview, see [public developer preview for Teams](../../resources/dev-preview/developer-preview-intro.md).
+
+1. On the Mac system, open Safari and follow the steps for [enabling Web Inspector](https://webkit.org/web-inspector/enabling-web-inspector/).
+
+1. Enable Web Inspector in the Teams iOS client.
+
+1. Connect your Teams iOS client to your Mac system. When prompted, confirm that you trust the client and give your consent to allow the connection.
+
+ You'll find your iOS client listed under the **Develop** option in Safari on your Mac system.
+
+1. From the **Develop** menu, select **Show Web Inspector** for your iOS client.
+
+ The Web Inspector opens in Safari.
+
+1. From the **Develop** menu, select **Use for Development...**.
+
+1. Open Teams on your connected Teams iOS client and open your app inside Teams.
+
+1. From the **Develop** menu, select the connected iOS client to view the inspection link for your app.
+
+ :::image type="content" source="../../assets/images/devtools/app-inspection-link.png" alt-text="The screenshot displays the app inspection link for your application." lightbox="../../assets/images/devtools/app-inspection-link.png":::
+
+1. Select the link to open Safari Web Inspector for your app.
+
+ :::image type="content" source="../../assets/images/devtools/safari-web-inspector.png" alt-text="The screenshot displays the Web Inspector in Safari." lightbox="../../assets/images/devtools/safari-web-inspector.png":::
+
+ You can now utilize DevTools for your Teams iOS client.
+ ## See also
-* [Test your app](../../concepts/build-and-test/test-app-overview.md)
-* [Clear the Teams client cache](/microsoftteams/troubleshoot/teams-administration/clear-teams-cache)
-* [Build tabs for Teams](../what-are-tabs.md)
+- [Test your app](../../concepts/build-and-test/test-app-overview.md)
+- [Clear the Teams client cache](/microsoftteams/troubleshoot/teams-administration/clear-teams-cache)
+- [Build tabs for Teams](../what-are-tabs.md)
platform Teams Faq https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/teams-faq.md
Developers are encouraged to certify their new plugin after successfully complet
<details> <summary>How can I create or upgrade a message extension plugin for Microsoft 365 Copilot?</summary>
- You can [create or upgrade a message extension as a plugin in Microsoft 365 Copilot](messaging-extensions/build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Microsoft 365 Copilot. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](messaging-extensions/high-quality-message-extension.md).
+ You can [create or upgrade a message extension as a plugin in Microsoft 365 Copilot](messaging-extensions/build-bot-based-plugin.md) to interact with third-party tools and services and achieve more with Microsoft 365 Copilot. Additionally, your extensions must meet the standards for compliance, performance, security, and user experience outlined in [guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot](messaging-extensions/dev-guidelines-copilot-agents.md).
</details> ## Microsoft Graph
platform Debug Mobile https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/toolkit/debug-mobile.md
You can view the project folders and files under **Explorer** in the Microsoft V
> [!NOTE] > If a you have debugged the app previously, it's recommended to clear the cache on the mobile device to ensure immediate app synchronization. After clearing the cache, the app takes some time to sync.
- # [iOS](#tab/ios1)
+# [iOS](#tab/ios1)
- To clear the Teams app data, go to **Settings** > **Teams** > **Clear App Data**.
+To clear the Teams app data, go to **Settings** > **Teams** > **Clear App Data**.
- :::image type="content" source="../assets/images/debug-mobile/clear-app-data-ios-option.PNG" alt-text="Screenshot shows how to clear the app data in iOS mobile client for tab." lightbox="../assets/images/debug-mobile/clear-app-data-ios.PNG":::
- # [Android](#tab/android1)
+# [Android](#tab/android1)
- To clear the Teams app data, go to **Teams** > **Settings** > **Data and storage** > **Clear app data** > **Clear data**.
+To clear the Teams app data, go to **Teams** > **Settings** > **Data and storage** > **Clear app data** > **Clear data**.
- :::image type="content" source="../assets/images/debug-mobile/clear-app-data-android-option.PNG" alt-text="Screenshot shows how to clear the app data in android mobile client for tab." lightbox="../assets/images/debug-mobile/clear-app-data-android.PNG":::
-
+ 1. If you're accessing the dev tunnel for the first time, sign in to Microsoft 365 account and select **continue**.
You can view the project folders and files under **Explorer** in the Microsoft V
:::image type="content" source="../assets/images/debug-mobile/mobile-tab-app.PNG" alt-text="Screenshot shows the mobile tab app.":::
-1. For Android devices, use [DevTools](../tabs/how-to/developer-tools.md#access-devtools-from-android-device) to debug your tab while it's running.
+1. For Android devices, use [DevTools](../tabs/how-to/developer-tools.md#access-devtools-from-teams-android-client) to debug your tab while it's running.
## Test your bot app on mobile client
You can view the project folders and files under **Explorer** in the Microsoft V
> [!NOTE] > If a you have debugged the bot app previously and the app manifest (previously called Teams app manifest) file is changed, we recommend to clear the cache on the mobile device to ensure immediate app synchronization. After clearing the cache, the app takes some time to sync.
- # [iOS](#tab/ios2)
+# [iOS](#tab/ios2)
- To clear the Teams app data, go to **Settings** > **Teams** > **Clear App Data**.
+To clear the Teams app data, go to **Settings** > **Teams** > **Clear App Data**.
- :::image type="content" source="../assets/images/debug-mobile/clear-app-data-ios-option.PNG" alt-text="Screenshot shows how to clear the app data in iOS mobile client for bot." lightbox="../assets/images/debug-mobile/clear-app-data-ios.PNG":::
- # [Android](#tab/android2)
+# [Android](#tab/android2)
- To clear the Teams app data, go to **Teams** > **Settings** > **Data and storage** > **Clear app data** > **Clear data**.
+To clear the Teams app data, go to **Teams** > **Settings** > **Data and storage** > **Clear app data** > **Clear data**.
- :::image type="content" source="../assets/images/debug-mobile/clear-app-data-android-option.PNG" alt-text="Screenshot shows how to clear the app data in android mobile client for bot." lightbox="../assets/images/debug-mobile/clear-app-data-android.PNG":::
-
+ 1. Your first mobile bot app is created.
platform Whats New https://github.com/MicrosoftDocs/msteams-docs/commits/main/msteams-platform/whats-new.md
Teams platform features that are available to all app developers.
| -- | | -| | 26/08/2024 | Enhanced user experience for Teams app susbscriptions purchased from Teams Store. | Monetize your app > Purchase and manage app subscriptions and licenses > [Subscription purchase experience](concepts/deploy-and-publish/appsource/prepare/end-user-purchase-experience.md#subscription-purchase-experience) | | 22/08/2024 | Dev Tools for Teams tabs are available in the new Microsoft Teams client. | Test your app > Tabs > [Dev Tools for Microsoft Teams Tab](tabs/how-to/developer-tools.md) |
-| 21/08/2024 | Use sample prompts to guide the users for using various plugins within Copilot. | Build message extensions > Build message extensions using Bot Framework > Search Commands > [Sample prompts](messaging-extensions/high-quality-message-extension.md#sample-prompts) |
+| 21/08/2024 | Use sample prompts to guide the users for using various plugins within Microsoft 365 Copilot. | Distribute your app > Publish to the Teams Store > Review Copilot validation guidelines > [Sample prompts](concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md#sample-prompts) |
| 31/07/2024 | Use app validation tool to validate your Teams app in Developer Portal for Teams. | Tools and SDKs > Tools > Developer Portal for Teams > [Publish](concepts/build-and-test/manage-your-apps-in-developer-portal.md#publish) | | 03/07/2024 | share content to the meeting Stage simplifies app content sharing during meetings and provides a seamless multi-player viewing experience. | Build apps for Teams meetings and calls > Enable and configure apps for Teams meetings > [Share to stage](apps-in-teams-meetings/build-apps-for-teams-meeting-stage.md#screen-share-content-to-meetings) | | 02/07/2024 | Extend bot-based message extension plugins to Teams meetings. | Build message extensions > Build message extensions using Bot Framework > Search Commands > [Enable message extension as a plugin for Copilot for meetings](messaging-extensions/build-bot-based-plugin.md#enable-message-extension-as-a-plugin-for-copilot-for-meetings) |
Developer preview is a public program that provides early access to unreleased T
| **Date** | **Update** | **Find here** | | -- | | -| |27/11/2023| Extend an action-based Teams message extension across Microsoft 365. | Extend your app across Microsoft 365 > [Extend m365 teams message extension](~/m365-apps/extend-m365-teams-message-extension.md)|
-|14/11/2023| Build a bot-based message extension and extend the message extension as plugin for Microsoft 365 Copilot and also check the guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot. | Build message extension > [Build bot based plugin](messaging-extensions/build-bot-based-plugin.md) and [High quality message extension.](messaging-extensions/high-quality-message-extension.md)|
+|14/11/2023| Build a bot-based message extension and extend the message extension as plugin for Microsoft 365 Copilot and also check the guidelines to create or upgrade a message extension plugin for Microsoft 365 Copilot. | Build message extensions > Build message extensions using Bot Framework > Search commands > [Extend bot-based message extension as plugin](messaging-extensions/build-bot-based-plugin.md) and [Guidelines for Copilot agents](messaging-extensions/dev-guidelines-copilot-agents.md) |
|02/11/2023| Introduced Adaptive Card Previewer in public developer preview. | Tools > [Adaptive Card Previewer](concepts/build-and-test/adaptive-card-previewer.md)| |25/10/2023| Introduced the `extensions` property in public developer preview app manifest schema. | App manifest > [Public developer preview](resources/schem#extensions)| |25/10/2023| Build message extensions using API (API-based) to interact directly with third-party data, apps, and services. | Build message extensions > [Build message extensions using API](messaging-extensions/api-based-overview.md)|