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


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

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

Создание новых подключаемых модулей

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

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

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

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

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

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

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

Дополнительные сведения см. в разделе Манифест агента.

Различия между манифестами 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 Да

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

Существует много рекомендаций по разработке подключаемых модулей. В этом документе описаны некоторые рекомендации и рекомендации по написанию подключаемых модулей для 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-адрес рискованным".  

См. также