本文内容
适用于: SDK v4
技能是指可供另一个机器人使用的机器人。 通过这种方式,可以创建一个面向用户的机器人,并使用一个或多个技能对其进行扩展。 你可以在技能概述中了解有关技能的详细信息,并了解如何在实现技能中生成技能。 或者,虚拟助理模板包含一组预先构建的技能,你可以自定义和部署,而不是从头开始构建。
如果预计你的技能将从 Copilot Studio copilot 中使用,则必须考虑到你的技能存在一些其他限制。
Copilot Studio 对你可以在技能清单中声明的内容施加了限制。
- 只能声明 100 个或更少的操作。
- 每个操作仅限 25 个或更少的输入或输出。
- 不能将数组类型用于输入或输出。
为了确保注册用于 Copilot Studio 中的自定义技能的合规性和充分治理,你的技能机器人必须是 Microsoft Entra ID 中注册的应用程序。 添加技能时,我们会验证技能的应用程序 ID 是否位于已登录用户的租户中,以及技能终结点是否与已注册应用程序的 Home Page URL
匹配。
在 Copilot Studio 中将机器人注册为技能之前,必须确保机器人的 主页 设置为机器人的技能清单 URL。
Copilot Studio 以前创建了多租户 Entra ID 应用程序。 但是,现在它正在创建单租户 Entra ID 应用程序。 若要使技能能够根据新的单租户 Entra ID 应用程序与代理正常工作,需要为单租户实例配置技能。
可以将现有技能从多租户支持转换为单租户支持。 若要将多租户技能转换为单租户技能,需要执行以下更改:
- 创建新的单租户 Entra ID 应用注册
- 更新技能配置以使用单租户
- 部署技能
- (可选) 更新源代码
单租户技能需要以下值:
财产 | 价值 |
---|---|
MicrosoftAppType |
SingleTenant |
MicrosoftAppId |
机器人的应用 ID |
MicrosoftAppPassword |
机器人的应用密码 |
MicrosoftAppTenantId |
机器人的应用租户 ID |
为了参考,以下值用于多租户技能:
财产 | 价值 |
---|---|
MicrosoftAppType |
MultiTenant |
MicrosoftAppId |
机器人的应用 ID |
MicrosoftAppPassword |
机器人的应用密码 |
MicrosoftAppTenantId |
不適用;为多租户机器人留空 |
转换值后,将技能导入为作为单租户实例创建的代理实例。 还可以查看 Entra ID 应用注册,查看其创建方式。 转到 管理>身份验证>支持的帐户类型。
转换值后,可能需要更新代码以允许将指定租户连接到技能。 有关详细信息,请参阅 BotBuilder-Samples。
当最终用户尝试从其 Copilot 连接到技能时,他们首先需要将技能导入 Copilot Studio。 你的技能需要经过一系列验证检查。 如果其中一项检查失败,可能会导致此表中所述的错误消息。
验证步骤 | 错误代码 | 错误消息 | 描述或缓解操作 |
---|---|---|---|
清单 URL 有效 |
URL_MALFORMED ,URL_NOT_HTTPS |
链接无效;链接必须以 https:// 开头 | 重新输入安全 URL 形式的链接。 |
清单可检索 | MANIFEST_FETCH_FAILED |
获取技能清单时遇到问题。 | 验证你的清单 URL 是指向清单的链接;尝试在 web 浏览器中打开清单 URL。 如果 URL 在 10 秒内呈现页面,请重新注册你的技能。 |
清单可读 | MANIFEST_TOO_LARGE |
清单太大。 | 清单的大小必须为 500 KB 或更小。 |
清单可读 | MANIFEST_MALFORMED |
清单不兼容。 | 检查清单是否为有效的 JSON 文件。 检查清单是否包含必需的属性,如 name 、msaAppId 等。 有关详细信息,请参阅清单限制。 |
尚未注册技能 | MANIFEST_ALREADY_IMPORTED |
已将此技能添加到机器人。 | 删除技能并再次注册。 |
清单终结点和主页域名匹配 | MANIFEST_ENDPOINT_ORIGIN_MISMATCH |
技能终结点不匹配。 | Microsoft Entra ID 应用的主页 URL 域和清单 URL 域必须匹配。 请参阅相同租户限制 |
技能托管在已注册用户的租户中 | APPID_NOT_IN_TENANT |
若要添加技能,必须先注册。 | 管理员必须将技能注册到已注册用户的组织中。 |
操作受到限制 | LIMITS_TOO_MANY_ACTIONS |
技能限制为 100 个操作。 | 技能清单中定义的技能操作过多。 删除操作,然后重试。 |
操作输入参数受到限制 | LIMITS_TOO_MANY_INPUTS |
操作限制为 25 个输入。 | 技能操作输入参数过多。 请删除参数,然后重试。 |
操作输出参数受到限制 | LIMITS_TOO_MANY_OUTPUTS |
操作限制为 25 个输出。 | 技能操作输出参数过多。 请删除此参数,然后重试。 |
技能计数受到限制 | LIMITS_TOO_MANY_SKILLS |
机器人最多可以有 25 个技能。 | 机器人中添加了太多的技能。 请删除现有技能,然后重试。 |
安全令牌有效 | AADERROR_OTHER |
似乎出现了问题。 | 获取安全令牌以触发技能时可能会出现暂时性错误。 重新导入技能。 |
技能正常 |
ENDPOINT_HEALTHCHECK_FAILED ,HEALTH_PING_FAILED |
检查技能时出现一些问题。 | Copilot Studio 在向你的技能发送 EndOfConversation 活动时收到未知响应。 请确保技能正在运行并正确响应。 |
已授权技能 | ENDPOINT_HEALTHCHECK_UNAUTHORIZED |
此技能不允许列出你的机器人。 | 检查你的机器人是否在技能的允许列表中。 |