重要
- 这些准则适用于独立软件供应商 (ISV) 谁想要在应用商店中发布其代理。
- Microsoft 365 Copilot 中的消息扩展代理以公共预览版提供 Microsoft Word 和 Microsoft PowerPoint。
- 即将推出对 Excel 和 OneNote 客户端应用程序的支持。
- 确保 Microsoft 365 Copilot 可供组织使用。 可通过两种方式获取 Microsoft 365 Copilot 的开发人员环境:
- 具有 Microsoft 365 Copilot 的沙盒Microsoft 365 租户, (通过 TAP 成员资格) 以有限预览版提供。
- 具有 Microsoft 365 个 Copilot 许可证的企业客户生产环境。
本部分符合 Microsoft商业市场策略编号 1140.9。
应用必须与负责任的 AI 检查一致。
说明
良好的说明提供了代理功能的清晰而简洁的摘要。 它增强了用户意识,并允许 Microsoft 365 Copilot 有效地发现和执行搜索作。
必须确保满足以下代理准则:
与 Microsoft 365 应用的应用说明相关的 Teams 应用商店验证指南适用。 有关详细信息,请参阅 应用说明。
代理、参数、命令说明、语义说明和作 ID 的简短说明不得包括:
- 说明短语,例如,“如果用户说 X”、“忽略”、“删除”、“重置”、“新指令”、“以粗体显示答案”或“不打印任何内容”。 [必须修复]
- URL、表情符号或隐藏字符,例如十六进制、二进制或非常规符号。 [必须修复]
- 语法和标点符号错误。 [必须修复]
- 过于冗长、花朵或营销语言。 [修复良方]
- “#1”、“amazing”或“best”等最高声明。 [修复良方]
注意
- 对于声明性代理,简短说明指南
instructions也适用于 和conversation_starters字段。 - 对于基于 API 的插件,这些准则适用于 、、、 (标题和文本) (
functionsstates\reasoning\description如果提供)。conversation_starterscapabilitiesdescription_for_modeldescription_for_human[必须修复] - 使用 Swagger 或 OpenAPI 文件格式时,请遵守与 GET、POST、PUT 或 DELETE API 的密钥和
description字段关联的内容的这些准则path。 [必须修复]
- 属性
semanticDescription不是必填字段。 但是,如果在semanticDescription应用清单中添加,则对简短说明、参数说明和命令说明的现有验证检查也适用于语义说明。
屏幕截图
必须确保满足以下代理准则:
- 与 Microsoft 365 应用的屏幕截图相关的 Teams 应用商店验证准则适用。 有关详细信息,请参阅 屏幕截图。
- 具有代理功能的应用必须至少有一个与 Microsoft 365 Copilot 功能相关的屏幕截图。 [必须修复]
代理名
必须确保满足以下代理准则:
- 与 Microsoft 365 应用的应用名称相关的 Teams 应用商店验证准则适用。 有关详细信息,请参阅 应用名称。
- 对于声明性代理,请确保以下参数相同:[必须修复]
-
namemanifest.json -
name在声明性代理 json 文件中 -
name_for_human在插件 json 文件中
-
提示
必须确保针对示例提示和提示初学者遵循以下准则:
示例提示
对于基于消息扩展的声明性代理,属性 samplePrompts 为用户提供使用 Microsoft 365 Copilot 中的代理的指导
示例提示是使用 samplePrompts 应用清单中的 属性指定的。 这些提示必须满足以下要求:
- 对于每个命令,代理必须至少有三个提示和最多五个提示。 [必须修复]
- 每个提示符不得超过 128 个字符。 [必须修复]
- 同一代理中的两个命令不能具有相同的提示。 [必须修复]
- 所有示例提示都必须正常运行并返回响应。 [必须修复]
- 提示必须与命令相关。 [必须修复]
提示初学者
提示初学者指导用户如何开始使用声明性代理和自定义引擎代理。 必须确保提示初学者遵循以下准则:
- 声明性代理或自定义引擎代理必须至少有三个提示和最多六个提示。 [必须修复]
- 所有提示初学者都必须正常运行并返回响应。 [必须修复]
自适应卡片响应
作为自适应卡片提供的代理响应必须满足以下要求:
自适应卡片响应必须包含自适应卡片内容,并预览卡信息作为同一模板的一部分。 [必须修复]
除了信息的代理徽标、标题、缩略图和标题外,自适应卡片中的数据必须至少表示两条信息。 可以从最常搜索的属性(例如修改的数据、作者、状态和标志)中标识字段。 [必须修复]
自适应卡片的格式必须正确,以适应桌面、Web 和移动 (iOS 和 Android) 客户端。 [必须修复]
自适应卡片必须包含 URL 作为 元数据的一部分,这允许将卡片从一个中心轻松复制到另一个中心。 [必须修复]
兼容性
代理必须在这些客户端的最新版本上完全响应并正常运行:[必须修复]
- 在桌面和 Web 上Microsoft Teams
- web 上的 copilot.microsoft.com
- Word 中的 Microsoft 365 Copilot
确保代理使用 Microsoft 365 - Word、Excel、PowerPoint、OneNote、Office 和 Outlook Copilots
必须确保满足以下代理准则:
如果使用启用了 SSO 的应用,请更新Microsoft Entra应用注册:[必须修复]
Microsoft Entra邮件扩展的单一登录 (SSO) 的工作方式与在 Teams 或 Outlook 中的工作方式相同。 如果为应用启用了 SSO,请将 Office 应用 Copilot 的客户端应用程序标识符添加到租户应用注册门户中机器人的Microsoft Entra应用注册。
使用沙盒租户帐户登录 Azure 门户。
打开“应用注册”。
选择应用程序的名称以打开其应用注册。
在 “管理 ”部分中,选择“ 公开 API”。
在 “授权的客户端应用程序 ”部分中,确保列出以下客户端 ID 值:
Microsoft 365 客户端应用程序 客户端 ID Word、PowerPoint、Excel (Web、桌面) 3068386c-7a16-4f6a-a664-043b6b232816 Teams 桌面、移动设备 1fec8e78-bce4-4aaf-ab1b-5451cc387264 Teams Web 5e3ce6c0-2b1f-4285-8d4b-75ee78787346 Microsoft 365 Web 4765445b-32c6-49b0-83e6-1d93765276ca Microsoft 365 桌面 0ec893e0-5785-4de6-99da-4ed124e5296c Microsoft 365 手机 d3590ed6-52b3-4102-aeff-aad2292ab01c Outlook 桌面版 d3590ed6-52b3-4102-aeff-aad2292ab01c Outlook Web bc59ab01-8403-45c6-8796-ac3ef710b3e3 Outlook Mobile 27922004-5251-4030-b22d-91ecd9a37ea4 必应 9ea1ad79-fdb6-4f9a-8bc3-2b70f96e34c7 注意
有关 SSO 如何为消息扩展工作的详细信息,请参阅 为应用启用 SSO。
确保已注册的机器人已连接到 Microsoft 365 并Microsoft Teams 频道:[必须修复]
- 使用沙盒租户帐户登录 Azure 门户。
- 打开 机器人服务。
- 选择机器人的名称以更新其通道。
- 从 “设置” 部分,选择“ 通道”。
- 在 “可用频道”中,选择“ Microsoft 365 & Microsoft Teams”,然后选择“ 应用”。
配置内容安全策略标头 [必须修复]
如果代理使用 内容安全策略 (CSP) 标头,请确保 CSP 标头中包含以下所有 帧-上级 :
Microsoft 365 应用版 frame-ancestors许可所有主机 (新) *.cloud.microsoftWord fa000000125.resources.office.net PowerPoint fa000000129.resources.office.net Excel fa000000124.resources.office.net OneNote fa000000128.resources.office.net Microsoft 365 Copilot and Bing edgeservices.bing.com,www.bing.com,copilot.microsoft.comMicrosoft 365 应用 *.microsoft365.com,*.office.comOutlook outlook.office.com,outlook.office365.com,outlook-sdf.office.com,outlook-sdf.office365.comOffice.com Office.com/copilot
Office.com/chatMicrosoft365.com Microsoft365.com/copilot
Microsoft365.com/chatM365.cloud.microsoft M365.cloud.microsoft/chat
M365.cloud.microsoft/copilotCopilot.cloud.microsoft Copilot.cloud.microsoft将 Teams JS 版本升级到 2.22.0 内部版本 [必须修复]
如果使用的是 Teams JS 版本 2.22 或更低版本,请将其更新到版本 2.22 或更高版本。
有关详细信息,请参阅 Teams JS 存储库 @microsoft/teams-js - npm (npmjs.com) 。
技术要求
对于要验证、调用和无缝工作的代理,请确保它满足以下条件:[必须修复]
| 标准 | 实现 |
|---|---|
| 清单版本 |
应用清单版本必须为 1.13 或更高版本。 [必须修复] |
| 答复时间 | 99% 的响应时间不得超过 9 秒,75% 的响应时间不得超过 5 秒,50% 的响应时间不得超过 2 秒。 [必须修复] |
| 可靠性 | 应用必须保持 99.9% 的可用性。 例如,如果 Microsoft 365 Copilot 调用代理 1,000 次,它必须提供有意义的响应 999 次。 [必须修复] |
| 零回归 | 如果需要重新提交代理进行验证,则之前工作的现有消息扩展功能不能中断。 [必须修复] |
| Microsoft 365 通道 | 若要让用户从 Outlook 与邮件扩展进行交互,需要向机器人添加 Microsoft 365 通道。 有关详细信息,请参阅 为应用添加 Microsoft 365 通道。 [必须修复] |
| 单一登录 (SSO) | 如果适用,请更新 SSO Microsoft Entra 应用注册。 [必须修复] |
| 内容安全策略 (CSP) | 如果适用,请根据 配置内容安全策略标头修改 CSP 标头和 X-Frame-Options。 [必须修复] |
作方案的用户披露和确认
对于作方案,代理必须共享用户披露并寻求用户确认:
通过对话) (第三方服务中显示的数据必须反映用户提供的确认。 [必须修复]
代理必须以卡的形式共享作完成确认。 [必须修复]
用户执行的作必须正确反映在第三方服务中。 [必须修复]
用户确认作前的修改请求必须得到接受。 [必须修复]
必须不支持批量删除等高度后果性任务。 [修复良方]
声明性代理必须使用显式寻求用户权限的明确语言,提供与用户发起的作一致的确认提示。 [必须修复]
通过使用 清单中函数的 Function 功能对象中的
Confirmation对象中的 属性,可以设置body确认提示。 有关详细信息,请参阅 自定义确认文本。传递示例 失败示例 对于搜索票证的函数 - “是否允许在 Contoso 中搜索?”“是否允许搜索票证?” 是否要继续?“ --> 不指示函数的作用。 对于创建新订单的函数,“是否继续创建新订单?” 搜索票证“--> 不寻求权限 对于创建新票证的函数:“是否继续创建新票证?” “创建票证”--> 不寻求权限 对于声明性代理,任何对外部系统产生后果的作不得将
isConsequential标志设置为“False”。 [必须修复]有关详细信息,请参阅 重写提示行为。
操作类型 操作 标志的预期 isConsequential值创建 相应 True 阅读 非后果性 False 或 True 更新 相应 True Delete 相应 True 命令说明 结果函数? 标志的预期 isConsequential值根据用户的兴趣返回任务建议的列表。 如果没有引号建议,请创建一个新引用建议。 是 True 根据用户的偏好返回冥想建议的列表。 否 False 或 True 根据用户的兴趣返回任务建议的列表。 如果没有引号建议,请创建一个新引用建议。 是 True
自定义引擎代理的机器人要求
自定义引擎代理是对话 Teams 机器人,必须满足以下要求:
自定义引擎代理必须始终包含基于大型语言模型的聊天机器人 (LLM) ,以便无缝进行用户交互。 [必须修复]
作为自定义引擎代理节点的机器人 ID 声明必须与应用清单中的机器人节点中定义的机器人 ID 相同。 [必须修复]
用户必须能够在 Microsoft 365 Copilot 和 Teams 中的切换聊天体验中引用自定义引擎代理。 [修复良方]
机器人必须包含以下 UX 设计组件:
一个 AI 标签 ,使用户能够识别消息是使用 AI 生成的。 此标签可能显示为永久性免责声明、每条消息或内容免责声明,或在首次运行体验期间出现。 [必须修复]
一个 反馈按钮 ,使用户能够向代理的消息提供正面或负面反馈。 [必须修复]
一个 引文 ,使用户能够通过文本内引文和引用来引用机器人消息的源。 [必须修复]
一个 敏感度标签 ,使用户能够了解机器人消息的机密性。 [修复良方]
代理必须将其响应流式传输到用户。 [必须修复]
代理必须至少包含三个提示初学者或欢迎消息。 [必须修复]
有关详细信息,请参阅 机器人欢迎消息。
机器人必须向用户提供至少两个特定于上下文的建议或提示,而不是通用或固定建议或提示。 [必须修复]
清单的 和
bot.commandList.scopes节点中bot.scopes定义的范围必须匹配,才能保持良好的用户体验。自定义引擎代理必须在 和
bot.commandList.scopes中bot.scopes包括副代理,以确保正确呈现和完整的平台支持。
作和知识源
- 代理必须在应用清单中将节点定义为作。 所有代理都必须具有通过 API作提供的核心用例。 [必须修复]
若要向多租户代理授予对电子邮件、Teams 消息、Teams 会议、ODSP 和 Graph 连接器功能的所有租户数据的访问权限,请将声明性代理中的节点留空。 [必须修复]
Dataverse、文件嵌入、敏感度标签和方案模型功能仅限于在 LOB 方案中使用。 [必须修复]
使用
action.insertImage自定义作或作集 [必须修复]时,请遵循以下准则:按钮的标题必须指示图像将插入画布中。
确保在单击按钮时插入预期图像
确保回退设置为 Drop ,以确保自适应卡片在所有兼容的客户端中正常运行。
支持插入自适应卡片中的所有图像。
声明性代理仅支持来自 MCP 服务器的静态工具发现。 因此,在代理插件清单中,MCP 服务器的标志
enable_dynamic_discovery和enable_dynamic_client_registration必须始终设置为 false。 [必须修复]
重复代理
同一产品的多个代理可以单独发布,但每个代理必须具有不同的功能
代理可以独立于主应用发布,但它必须有明确的理由。
若要避免混淆并确保最终用户清晰明了:
名称、简短说明和长说明必须与任何现有应用的名称、简短说明和长说明有明显差异。
简短说明和长说明必须清楚地传达应用的独特价值主张,以及它与相关提交有何不同。
代理响应
声明性代理必须正常运行,并且必须向用户提供准确的响应。 为确保相同,声明性代理的每个函数中至少必须存在以下字段中的一个相应提示:[必须修复]
- 示例提示或对话初学者
- 清单中的“说明”字段
- 测试说明
邮件扩展功能中的所有搜索结果都必须包含相关的标题和副标题,这些标题和副标题也将显示在代理 [必须修复] 的引文中。
作完成确认必须由代理共享,该代理应包括作的详细信息、前进方向,并且必须具有源链接或跟踪 ID,以便用户验证作 [必须修复]
- 向代理提供跟踪 ID 时,它必须返回所执行作的详细信息或对其执行作的项目详细信息。 [必须修复]
发送多个消息的代理必须确保消息本质上不是重复的或冗余的。
正常错误处理
所有代理都必须正常处理以下方案,即代理必须拒绝用户请求并提供前进方式:[必须修复]
- 对于不正确的搜索参数
- 误用或不适当的语言
服务器调用 (消息扩展、OpenAP、MCP 服务器) 的安全要求
使用消息扩展、OpenAPI 和 MCP 服务器调用的代理必须确保以下安全标准:
- 所有调用都必须使用带有 TLS 1.2 或更高版本的 HTTPS。 [必须修复]
- 调用不得导致任何 URL 重定向。 [必须修复]
- 调用必须来自与为开发人员验证的根域相同的域或子域。 [必须修复]