You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: msteams-platform/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md
+20-12Lines changed: 20 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -127,6 +127,19 @@ You must ensure to meet the following guidelines for agents:
127
127
128
128
[Back to top](#validation-guidelines-for-agents)
129
129
130
+
## Agent to Agent Communication
131
+
132
+
For utilising `worker_agents` property in your Declarative agent manifest, ensure [*Must fix*]
133
+
134
+
* Only declarative agents can be referenced within `worker_agent` node of the manifest. Custom engine agents are currently not supported.
135
+
* The description and disclaimer must clearly list all referenced worker agents and explicitly instruct users to acquire them where required.
136
+
* The agent must provide meaningful standalone value, independent of any worker agents. This value must be clearly described in the agent description.
137
+
* Each referenced worker agent must independently meet the minimum value bar and provide meaningful functionality on its own.
138
+
* Any prompt that depends on a worker agent must fail gracefully if the worker agent has not been acquired.
139
+
* If a parent agent references a worker agent published by a different publisher, the parent agent publisher remains responsible for handling integration issues, user experience gaps, and graceful failure behavior.
140
+
141
+
[Back to top](#validation-guidelines-for-agents)
142
+
130
143
## Screenshots
131
144
132
145
You must ensure to meet the following guidelines for agents:
@@ -292,34 +305,27 @@ For action scenarios, agents must share user disclosure and seek user confirmati
292
305
* Action taken by a user must be correctly reflected in third-party service. [*Must fix*]
293
306
* Modification requests by the user prior to confirmation of the action must be honored. [*Must fix*]
294
307
* Highly consequential tasks such as bulk delete mustn't be supported. [*Good-to-fix*]
295
-
*The declarative agent must provide confirmation prompts aligned with user-initiated actions, using clear language that explicitly seeks the user's permission. [*Must fix*]
308
+
*For consequential actions, the declarative agent must provide confirmation prompts aligned with user-initiated actions, using clear language that explicitly seeks the user's permission. [*Must fix*]
296
309
297
-
Confirmation prompt can be set by using `body` property in the `Confirmation` object in the function's Function capabilities object in the manifest. For more information, see [customizing confirmation text](/microsoft-365-copilot/extensibility/api-plugin-confirmation-prompts?branch=main&branchFallbackFrom=public-preview#customizing-confirmation-text).
310
+
Confirmation body can be set by using `body` property in the `Confirmation` object in the function's Function capabilities object in the manifest. For more information, see [customizing confirmation text](/microsoft-365-copilot/extensibility/api-plugin-confirmation-prompts?branch=main&branchFallbackFrom=public-preview#customizing-confirmation-text).
298
311
299
312
| Pass example | Fail example |
300
313
| --- | --- |
301
314
| For a function that searches tickets - "Do you want to allow searching in Contoso?" "Do you want to allow searching for tickets?" | Do you want to proceed?" --> Doesnt indicate what the function does. |
302
315
| For a function that creates a new order "Do you want to proceed with creating a new order?" | Searches tickets" --> Doesn't seek permission |
303
316
| For a function that creates a new ticket: "Do you want to proceed with creating a new ticket?" | "Creates tickets" --> Doesn't seek permission |
304
317
305
-
* Consequential actions (Create, Update, or Delete API calls) must require explicit user permission before execution. To achieve this, for
318
+
* Consequential actions that mutate a system must require explicit user permission before execution. To achieve this, for
306
319
* Plugin action, `isConsequential` flag should be set to ‘true’ for such calls
307
320
* MCP Server action, `readOnlyHint` annotation should be set to ‘false’ for such calls
321
+
* Obtaining user confirmation via a custom built CTA that clearly informs users about the action being performed
308
322
309
323
For more details, see [overriding prompt behavior](/microsoft-365-copilot/extensibility/api-plugin-confirmation-prompts?branch=main&branchFallbackFrom=public-preview#overriding-prompt-behavior).
310
324
311
-
| Operation type | Actions | Expected value for `isConsequential` flag |
312
-
| --- | --- | --- |
313
-
| Create | Consequential | true |
314
-
| Read | Non-consequential | false or true |
315
-
| Update | Consequential | true |
316
-
| Delete | Consequential | true |
317
-
318
325
| Command description | Consequential function? | Expected value for `isConsequential` flag |
319
326
| --- | --- | --- |
320
-
| Returns a list of quest recommendations based on the user's interest. If there are no quote recommendations, then create a new one. | Yes | true |
327
+
| Returns a list of quote recommendations based on the user's interest. If there are no quote recommendations, then create a new one. | Yes | true |
321
328
| Returns a list of meditation recommendations based on the user's preferences. | No | false or true |
322
-
| Returns a list of quest recommendations based on the user's interest. If there are no quote recommendations, then create a new one. | Yes | true |
323
329
324
330
[Back to top](#validation-guidelines-for-agents)
325
331
@@ -419,6 +425,8 @@ A custom engine agent is a conversational Teams bot that must meet the following
419
425
420
426
* An agent sending multiple messages must make sure that messages are not repetitive or redundant in nature.
421
427
428
+
* Agents must implement safeguards to prevent attacks that attempt to manipulate or override system instructions, safety controls, or developer defined behavior.
429
+
422
430
## Graceful error handling
423
431
424
432
All agents must handle the following scenarios gracefully, that is, the agent must reject the user request and provide a way forward: [*Must fix*]
Copy file name to clipboardExpand all lines: msteams-platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md
+8-9Lines changed: 8 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -461,6 +461,8 @@ Explore resources designed to help you with responsible Artificial Intelligence
461
461
462
462
:::image type="content" source="../../../../assets/images/submission/teams-ai-library-description-guideline.png" alt-text="Screenshot shows the description for AI functionality.":::
463
463
464
+
* Apps must implement safeguards to prevent attacks that attempt to manipulate or override system instructions, safety controls, or developer defined behavior.
465
+
464
466
#### Apps using facial recognition capabilities
465
467
466
468
> [!NOTE]
@@ -1121,6 +1123,10 @@ If your app includes a bot, ensure that it adheres to these guidelines.
1121
1123
1122
1124
Analyzing user input and predicting user intent is difficult. Bot commands provide users a set of words or phrases for your bot to understand.
1123
1125
1126
+
* Bots must support functional enterprise workflows. If bot commands are declared in the manifest, both the `Title` and `Description` fields are mandatory and must be clearly defined and consistently aligned. The bot must enable the users to know about the value proposition of the app. Bot must respond with various workflows it supports on asking for help or value it provides. Bot must provide a valid response even when the user hasn’t logged into the apps.
1127
+
1128
+
:::image type="content" source="../../../../assets/images/submission/validation-bot-valid-response-lowercase.png" alt-text="Graphic shows an example of bot not providing a valid response for a command in lowercase or uppercase.":::
1129
+
1124
1130
* All commands that your bot supports must work correctly, including generic commands such as **Hi**, **Hello**, and **Help**. [*Must fix*]
1125
1131
1126
1132
:::image type="content" source="../../../../assets/images/submission/validation-bot-commands-generic-response-pass.png" alt-text="Graphic shows an example of bot responding to generic commands.":::
@@ -1131,12 +1137,8 @@ Analyzing user input and predicting user intent is difficult. Bot commands provi
* You must list at least one valid bot command in the `items.commands.title` section of the app manifest and add a suitable description that gives clarity to the user on the bot command and its usage. Bot commands listed in the `commandLists` section of the app manifest surface as prepopulated commands in the bot command menu and provide a way forward for the new user to interact with the bot. [*Good-to-fix*]
1135
-
1136
1140
* Bot response mustn't contain any official Microsoft product images or avatars. Use your own assets in your app. Use of Microsoft product images in your app isn't allowed. You may only copy, modify, distribute, display, license, or sell Microsoft copyrighted product images if you're granted explicit permission within the End-User License Agreement (EULA), license terms that accompany the content, or in the [Microsoft Trademark and Brand guidelines](https://www.microsoft.com/legal/intellectualproperty/trademarks). [*Must fix*]
1137
1141
1138
-
* Bots must respond to user commands without displaying a continuous loading indicator. [*Must fix*]
1139
-
1140
1142
* Bot help command response mustn't redirect the user outside Teams. Bot help command response can redirect user to a canvas within the Teams app or provide a way forward response in an Adaptive Card. [*Must fix*]
1141
1143
1142
1144
:::image type="content" source="../../../../assets/images/submission/validation-bot-redirects-user-outside-teams.png" alt-text="Graphic shows an example of bot response redirecting user outside of Teams.":::
@@ -1163,10 +1165,6 @@ Analyzing user input and predicting user intent is difficult. Bot commands provi
1163
1165
1164
1166
* Bots mustn't display a typing indicator after responding to the user command, but can display a typing indicator while responding to the user command. [*Must fix*]
1165
1167
1166
-
* Bots must provide a valid response to the **help** command typed in lowercase or uppercase that provides the user with a way forward or lets the user access the help content related to the bot usage. Bots must provide a valid response even when the user hasn't logged on to the app. [*Must fix*]
1167
-
1168
-
:::image type="content" source="../../../../assets/images/submission/validation-bot-valid-response-lowercase.png" alt-text="Graphic shows an example of bot not providing a valid response for a command in lowercase or uppercase.":::
1169
-
1170
1168
:::image type="content" source="../../../../assets/images/submission/validation-bot-valid-response-logged-app.png" alt-text="Graphic shows an example of a bot without a valid response when the user hasn't logged on to the app.":::
1171
1169
1172
1170
* Bots must provide a valid response to **help** command.
@@ -1207,7 +1205,8 @@ Analyzing user input and predicting user intent is difficult. Bot commands provi
1207
1205
1208
1206
Prompt starters help users start a conversation with your bot. To enable prompt starters, the `commands` property in app manifest needs to be defined.
1209
1207
1210
-
* The bot must provide at least one command that enables the user to know about the value proposition of the app. [*Must fix*]
1208
+
* The bot must enable the users to know about the value proposition of the app.
1209
+
* Bot must respond with various workflows it supports on asking for help or value it provides.Bot must provide a valid response even when the user hasn’t logged into the apps. [*Must fix*]
1211
1210
* Prompt starters or commands must be functional and return responses. [*Must fix*]
1212
1211
* Command description must be coherent and clearly communicate value of the command. [*Must fix*]
1213
1212
* Prompt starters or commands must be relevant to the app's functionality. [*Must fix*]
0 commit comments