Поделиться через


Создание собственных настраиваемых плагинов

Важно!

Некоторые сведения относятся к предварительно выпущенному продукту, который может быть существенно изменен перед выпуском. Корпорация Майкрософт не дает никаких гарантий, явных или подразумеваемых, относительно предоставленных здесь сведений.

Совет

Если вам нужна помощь с плагинами сторонних производителей, обратитесь к их документации и технической поддержке.

Создание новых плагинов

В зависимости от того, как администраторы настраивают Security Copilot, вы можете создать новые подключаемые модули, выполнив следующие действия.

  1. Создайте подключаемый модуль из списка поддерживаемых подключаемых модулей.

  2. Создайте файл манифеста подключаемого модуля YAML или JSON, в котором описаны метаданные о подключаемом модуле и его вызове.

  3. Опубликуйте манифест подключаемого модуля в Security Copilot.

Требования к плагину

Для каждого подключаемого модуля Security Copilot требуется файл манифеста в формате YAML или JSON (например, plugin.yaml или plugin.json), который описывает метаданные о наборе навыков и способе вызова навыков.

Манифест состоит из двух обязательных ключей верхнего уровня — Descriptor и SkillGroups, каждый из которых содержит пары вложенных ключей или значений, а также обязательные/необязательные поля в зависимости от формата навыка.

Сведения о плагинах OpenAI см. в разделе Начало работы.

Сводка по полю дескриптора

Поле Тип Описание Обязательный
Name string Внутреннее имя плагина. Не разрешает / \ ? # @. Да
DisplayName string Понятное имя плагина. Рекомендуемый
Description string Понятное описание плагина. Да
DescriptionDisplay string Альтернативное понятное описание плагина, если описание не указано. Нет
Category string Примечание. В настоящее время это значение принудительно задано Plugin во время отправки настраиваемого плагина. Нет
Prerequisites string Нет
Icon string URL-адрес, используемый для получения главного значка для Skillset. Рекомендуемый

Сводка по полю SkillGroups

Состоит из списка групп навыков, включая Format, Settings и Skills.

Поле Тип Описание Обязательный
Format string Доступные параметры см. в разделе Формат. Да
Settings объект Структуру объекта см. в разделе Параметры. Да, для форматов: API, DOTNET, CONTAINER
Skills объект См. раздел Навыки для получения сведений о структуре объекта. Да, для форматов: GPT, DOTNET, KQL, LogicApp

Формат (поле SkillGroups)

Параметры поля Format:

API
GPT
KQL

Параметры (поле SkillGroups)

Структура объекта для Settings поля.

Поле Тип Описание Обязательный
OpenApiSpecUrl string URL-адрес общедоступной спецификации OpenAPI. Да
EndpointUrl string URL-адрес общедоступной конечной точки. Нет

Навыки (поле SkillGroups)

Структура объекта для поля Skills.

Поле Тип Описание Обязательный
Description string Понятное описание этого навыка. Рекомендуемый
DescriptionForModel string Подробное описание навыка, используемого для выбора навыка Нет
Inputs объект Список объектов Name, Description, Required и DefaultValue (необязательно) для ввода пользователем навыка.
Settings объект Настраиваемые параметры, основанные на формате навыка.

Различия между манифестами OpenAI и Security Copilot

Подключаемые модули OpenAI, созданные в соответствии с документацией по ChatGPT Plugin, обычно используют формат манифеста, отличный от формата манифеста Security Copilot. Security Copilot поддерживает оба формата.

Манифест подключаемого модуля OpenAI при отправке преобразуется в манифест Security 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 Описание Да Ограничение по длине: 16000 символов. Внутреннее описание для использования с LLM.
description_for_human string DescriptionDisplay Да Понятное описание плагина. Ограничение длиной 200 символов.
logo_url string Значок Рекомендуемый URL-адрес, используемый для получения основного значка для плагина.
contact_email string Нет Контакт электронной почты для плагина. Сейчас не используется.
legal_info_url string Нет Ссылка для сведений о плагине. Сейчас не используется.
api объект Структуру объекта см. в разделе API плагина. Да
auth объект Да authorization_type имеет ограничение bearer. Сведения о поддержке различных аутентификаций type, таких как none, oauth, api_key, aad, aad_delegated.

Плагин (поле API)

Структура объекта для поля api

Поле Тип Описание Обязательный
type string Единственным поддерживаемым типом сейчас является openapi. Да
url string Ссылка на документ спецификации OpenAPI API. Да

Руководство по разработке плагина

Существует много рекомендаций по разработке подключаемых модулей. В этом документе описаны некоторые рекомендации и рекомендации по написанию подключаемых модулей для Security Copilot.

Примечание.

"Столкновение навыков" возникает, когда Security Copilot не различает два разных навыка.

  • Вместо нескольких навыков, которые возвращают один и тот же тип ответа, но отличаются только в зависимости от входных данных; определите навыки, которые принимают несколько входных данных, а затем внутренне выясните, как получить данные.

    • Например, наличие одного навыка GetDevices, который принимает идентификатор устройства, идентификатор пользователя или имя пользователя вместо отдельных GetDeviceById, GetDeviceByUserId и GetDeviceByUserName
  • Security Copilot поддерживает Description и DescriptionForModel поля. Description используется в пользовательском интерфейсе (и для выбора навыка, если DescriptionForModel не задан) и DescriptionForModel используется только для выбора навыка.

    • Например, предположим, что у нас есть навык GetSslCertsByHostname с описанием "Возвращает сертификаты SSL, связанные с именем узла". Подробное descriptionForModel может быть: "Извлекает сертификаты SSL (также известные как TLS-сертификаты) для имени узла ИЛИ доменного имени DNS. Возвращает список SSL-сертификатов, а также сведения о сертификате, такие как издатель, тема, серийный номер, sha1 и даты".
  • Описания навыков должны быть подробными и содержать фразы для тех, кто достаточно хорошо осведомлен, но может не быть экспертом в вашей проблемной области. Он должен описывать не только то, что делает навык, но и то, почему кто-то хотел бы использовать его.

    • Например, хорошее описание: "Возвращает сведения о репутации для IP-адреса. Позволяет пользователям определять, является ли IP-адрес рискованным".  

См. также