可以通过创建自己的自定义插件来扩展Security Copilot的功能。 该平台支持弹性框架来生成插件,这些插件可用于执行符合工作流要求的专用任务。
正在创建新插件
根据管理员配置Security Copilot的方式,你可以通过执行以下步骤来创建新插件:
从支持的插件列表生成插件。
创建 YAML 或 JSON 插件清单文件,该文件描述有关插件的元数据以及如何调用它。
将插件清单发布到安全 Copilot。
插件要求
每个安全 Copilot 插件都需要一个 YAML 或 JSON 格式的清单文件(例如: plugin.yaml 或 plugin.json),用于描述有关技能集的元数据以及如何调用技能。
清单包含两个必需的顶级键 Descriptor 和 SkillGroups,每个键具有子项或值对,以及根据技能格式的必需/可选字段。
有关信息,请参阅 代理清单。
OpenAI 和安全 Copilot 清单之间的差异
OpenAI 插件通常使用不同于Security Copilot清单格式的清单格式。 安全 Copilot 支持两种格式。
上传时,OpenAI 插件 清单 将转换为安全 Copilot 清单。
注意
映射详细信息(尤其是笔记中的限制)可能会在将来发生更改。 目前,平台仅支持 OpenAPI 版本 3.0 或 3.0.1 中的插件。
插件字段映射
| 插件字段 | 类型 | 描述符字段 | 必需 | 注意 |
|---|---|---|---|---|
schema_version |
string | 否 | 它是 OpenAI 清单架构版本,例如“v1”。 目前尚未使用。 | |
name_for_model |
string | 名称 | 是 | 限制为长度为 100 个字符。 技能集的内部名称。 不允许 / \ ? #。 |
name_for_human |
string | DisplayName | 是 | 插件的用户可读名称。 限制长度为 40 个字符。 |
description_for_model |
string | 说明 | 是 | 限制长度为 16,000 个字符。 与 LLM 一起使用的内部说明。 |
description_for_human |
string | DescriptionDisplay | 是 | 插件的用户可读说明。 限制长度为 200 个字符。 |
logo_url |
string | 图标 | 建议 | 用于提取插件的主图标的 URL。 |
contact_email |
string | 否 | 插件的电子邮件联系人。 目前尚未使用。 | |
legal_info_url |
string | 否 | 插件信息链接。 目前尚未使用。 | |
api |
object | 请参阅对象结构的 插件 API 部分 | 是 | |
auth |
object | 是 |
authorization_type 限制为 bearer。 有关支持不同身份验证 type (例如 none、oauth、api_key、aad、aad_delegated) 的详细信息。 |
插件 (API 字段)
字段 api 的对象结构
| 字段 | 类型 | 说明 | 必需 |
|---|---|---|---|
type |
string | 当前唯一支持的类型是 openapi。 |
是 |
url |
string | 链接到 OpenAPI 规范文件 | 是 |
插件创作指南
有关插件创作的许多注意事项。 本文档旨在记录编写 Microsoft 安全 Copilot 插件的一些准则和最佳做法。
注意
当Security Copilot无法准确区分两种不同的技能时,会发生“技能冲突”。
并非拥有多个返回相同类型响应的技能,只是根据输入的不同而有所区别;定义技能,让技能采用多个输入,然后在内部确定获取数据的方法。
- 例如,具有单个技能
GetDevices,该技能采用设备 ID、用户 ID 或用户名,而不是单独的GetDeviceById、GetDeviceByUserId和GetDeviceByUserName
- 例如,具有单个技能
安全 Copilot 支持
Description和DescriptionForModel字段。Description在 UX 中使用(如果DescriptionForModel未设置,则用于技能选择),并且DescriptionForModel仅用于技能选择。- 例如,假设我们有一个技能 GetSslCertsByHostname,其中包含“返回与主机名关联的 SSL 证书”的说明。 详细描述 ForModel 可以是“检索 DNS 主机名或域名的 SSL 证书(也称为 TLS 证书)。 返回 SSL 证书列表以及证书详细信息,例如颁发者、使用者、序列号、sha1 和日期”。
技能说明应言简意赅,措辞应适合有一定知识但可能不是问题领域专家的人。 它不仅应该描述技能的作用,还应描述为什么有人想要使用它。
- 例如,好的描述应是“获取 IP 地址的信誉信息。 使用户能够确定 IP 地址是否存在风险”。