Skip to content

Commit ddffa2e

Browse files
Merge pull request #14261 from MicrosoftDocs/SirajShaik-MSFT/Validation-doc-update
[Doc Improvement] Validation doc updates Feb & March
1 parent 1880912 commit ddffa2e

3 files changed

Lines changed: 28 additions & 21 deletions

File tree

81.2 KB
Loading

msteams-platform/concepts/deploy-and-publish/appsource/prepare/review-copilot-validation-guidelines.md

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,19 @@ You must ensure to meet the following guidelines for agents:
127127

128128
[Back to top](#validation-guidelines-for-agents)
129129

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+
130143
## Screenshots
131144

132145
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
292305
* Action taken by a user must be correctly reflected in third-party service. [*Must fix*]
293306
* Modification requests by the user prior to confirmation of the action must be honored. [*Must fix*]
294307
* 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*]
296309

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).
298311

299312
| Pass example | Fail example |
300313
| --- | --- |
301314
| 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. |
302315
| For a function that creates a new order "Do you want to proceed with creating a new order?" | Searches tickets" --> Doesn't seek permission |
303316
| For a function that creates a new ticket: "Do you want to proceed with creating a new ticket?" | "Creates tickets" --> Doesn't seek permission |
304317

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
306319
* Plugin action, `isConsequential` flag should be set to ‘true’ for such calls
307320
* 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
308322

309323
For more details, see [overriding prompt behavior](/microsoft-365-copilot/extensibility/api-plugin-confirmation-prompts?branch=main&branchFallbackFrom=public-preview#overriding-prompt-behavior).
310324

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-
318325
| Command description | Consequential function? | Expected value for `isConsequential` flag |
319326
| --- | --- | --- |
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 |
321328
| 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 |
323329

324330
[Back to top](#validation-guidelines-for-agents)
325331

@@ -419,6 +425,8 @@ A custom engine agent is a conversational Teams bot that must meet the following
419425

420426
* An agent sending multiple messages must make sure that messages are not repetitive or redundant in nature.
421427

428+
* Agents must implement safeguards to prevent attacks that attempt to manipulate or override system instructions, safety controls, or developer defined behavior.
429+
422430
## Graceful error handling
423431

424432
All agents must handle the following scenarios gracefully, that is, the agent must reject the user request and provide a way forward: [*Must fix*]

msteams-platform/concepts/deploy-and-publish/appsource/prepare/teams-store-validation-guidelines.md

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -461,6 +461,8 @@ Explore resources designed to help you with responsible Artificial Intelligence
461461

462462
:::image type="content" source="../../../../assets/images/submission/teams-ai-library-description-guideline.png" alt-text="Screenshot shows the description for AI functionality.":::
463463

464+
* Apps must implement safeguards to prevent attacks that attempt to manipulate or override system instructions, safety controls, or developer defined behavior.
465+
464466
#### Apps using facial recognition capabilities
465467

466468
> [!NOTE]
@@ -1121,6 +1123,10 @@ If your app includes a bot, ensure that it adheres to these guidelines.
11211123

11221124
Analyzing user input and predicting user intent is difficult. Bot commands provide users a set of words or phrases for your bot to understand.
11231125

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+
11241130
* All commands that your bot supports must work correctly, including generic commands such as **Hi**, **Hello**, and **Help**. [*Must fix*]
11251131

11261132
:::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
11311137

11321138
:::image type="content" source="../../../../assets/images/submission/validation-bot-commands-deadend.png" alt-text="validation-bot-commands-dead-end":::
11331139

1134-
* 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-
11361140
* 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*]
11371141

1138-
* Bots must respond to user commands without displaying a continuous loading indicator. [*Must fix*]
1139-
11401142
* 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*]
11411143

11421144
:::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
11631165

11641166
* 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*]
11651167

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-
11701168
:::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.":::
11711169

11721170
* 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
12071205

12081206
Prompt starters help users start a conversation with your bot. To enable prompt starters, the `commands` property in app manifest needs to be defined.
12091207

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*]
12111210
* Prompt starters or commands must be functional and return responses. [*Must fix*]
12121211
* Command description must be coherent and clearly communicate value of the command. [*Must fix*]
12131212
* Prompt starters or commands must be relevant to the app's functionality. [*Must fix*]

0 commit comments

Comments
 (0)