Compartir a través de


Create sus propios complementos personalizados

Importante

Parte de la información contenida en este artículo se refiere a un producto preliminar que puede sufrir modificaciones sustanciales antes de su lanzamiento comercial. Microsoft no otorga garantías, expresas o implícitas, con respecto a la información que aquí se proporciona.

Sugerencia

Si necesita ayuda con complementos que no son de Microsoft, consulte su documentación y soporte técnico.

Creación de nuevos complementos

En función de cómo configuren los administradores Copilot para seguridad, es posible que pueda crear nuevos complementos siguiendo estos pasos:

  1. Cree un complemento a partir de la lista de complementos admitidos.

  2. Cree un archivo de manifiesto de complemento YAML o JSON, que describe los metadatos sobre el complemento y cómo invocarlo.

  3. Publique el manifiesto del complemento en Copilot para seguridad.

Requisitos del complemento

Cada complemento Copilot para seguridad requiere un archivo de manifiesto con formato YAML o JSON (por ejemplo: plugin.yaml o plugin.json) que describa los metadatos sobre el conjunto de aptitudes y cómo invocar las aptitudes.

Un manifiesto consta de dos claves de nivel superior necesarias Descriptor y SkillGroups, cada una con pares de subclaves o valores, y campos obligatorios y opcionales en función del formato de aptitud.

Para obtener información sobre los complementos de OpenAI, consulte Introducción.

Resumen del campo descriptor

Campo Tipo Descripción Obligatorio
Name string Nombre interno del complemento. No permite / \ ? # @.
DisplayName string Nombre legible del complemento. Recomendado
Description string Descripción legible del complemento.
DescriptionDisplay string Descripción alternativa legible del complemento si no se especifica la descripción. No
Category string Nota: Actualmente, este valor está obligado a Plugin durante el proceso de carga del complemento personalizado. No
Prerequisites string No
Icon string Dirección URL usada para capturar el icono principal del conjunto de aptitudes. Recomendado

Resumen del campo SkillGroups

Consta de una lista de grupos de aptitudes que incluye Format, Settings, y Skills.

Campo Tipo Descripción Obligatorio
Format string Vea la sección Formato para ver las opciones disponibles.
Settings object Vea sección Configuración de la estructura de objetos. Sí, para formatos: API, DOTNET, CONTAINER
Skills object Vea la sección Aptitudes para la estructura de objetos. Sí, para formatos: GPT, DOTNET, KQL, LogicApp

Formato (campo SkillGroups)

Opciones para el campo Format:

API
GPT
KQL

Configuración (campo SkillGroups)

Estructura de objeto para el campo Settings.

Campo Tipo Descripción Obligatorio
OpenApiSpecUrl string Dirección URL de la especificación OpenAPI pública.
EndpointUrl string Dirección URL del punto de conexión público. No

Aptitudes (campo SkillGroups)

Estructura de objeto para el campo Skills.

Campo Tipo Descripción Obligatorio
Description string Descripción legible para esta aptitud. Recomendado
DescriptionForModel string Descripción detallada de la aptitud usada para la selección de aptitudes No
Inputs object Lista de objetos Name, Description, Required, y DefaultValue (opcional) para la entrada del usuario a la aptitud.
Settings object Configuración personalizada basada en la aptitud Formato.

Diferencias entre los manifiestos de OpenAI y Copilot para seguridad

Los complementos de OpenAI creados siguiendo la documentación del complemento de ChatGPT suelen usar un formato de manifiesto diferente al formato de manifiesto Copilot para seguridad. Copilot para seguridad admite ambos formatos.

El manifiesto del complemento OpenAI cuando se carga se traduce al manifiesto de Copilot para seguridad.

Nota:

Los detalles de asignación, especialmente en torno a las restricciones en las notas, pueden cambiar en el futuro. Actualmente, la plataforma solo admite complementos en las versiones 3.0 o 3.0.1 de OpenAPI.

Asignación de campos de complemento

Campo de complemento Tipo Campo descriptor Obligatorio Notas
schema_version string No Es la versión del esquema del manifiesto de OpenAI, por ejemplo "v1". Sin uso actualmente.
name_for_model string Nombre Restringido a una longitud de 100 caracteres. Nombre interno del conjunto de aptitudes. No permite / \ ? #.
name_for_human string DisplayName Nombre legible del complemento. Restringido a una longitud de 40 caracteres.
description_for_model string Descripción Restringido a una longitud de 16 000 caracteres. Descripción interna para su uso con LLM.
description_for_human string DescriptionDisplay Descripción legible del complemento. Restringido a una longitud de 200 caracteres.
logo_url string Icono Recomendado Dirección URL que se usa para capturar el icono principal del complemento.
contact_email string No Enviar un correo electrónico al contacto para el complemento. Sin uso actualmente.
legal_info_url string No Vínculo para obtener información del complemento. Sin uso actualmente.
api object Vea la sección API de complementos para la estructura de objetos
auth object authorization_type está restringido a bearer. Detalles a seguir sobre la compatibilidad con diferentes type de autenticación, como none, oauth, api_key, aad, aad_delegated.

Complemento (campo de API)

Estructura del objeto para el campo api

Campo Tipo Descripción Obligatorio
type string El único tipo admitido actualmente es openapi.
url string Vínculo al documento de especificación de OpenAPI de la API.

Guía de creación de complementos

Hay muchas consideraciones relacionadas con la creación de complementos. Este documento está diseñado para capturar algunas de las directrices y procedimientos recomendados para escribir complementos para Copilot para seguridad.

Nota:

Se produce una "colisión de aptitudes" cuando Copilot para seguridad no distingue con precisión entre dos aptitudes diferentes.

  • En lugar de tener varias aptitudes que devuelven el mismo tipo de respuesta, pero solo difieren en función de las entradas; definir aptitudes, que toman varias entradas y, a continuación, averiguan internamente cómo obtener los datos.

    • Por ejemplo, tener una única aptitud de GetDevices que toma el identificador de dispositivo, el identificador de usuario o el nombre de usuario en lugar de GetDeviceById, GetDeviceByUserId, y GetDeviceByUserName
  • Copilot para seguridad admite Description y DescriptionForModel campos. Description se usa en la experiencia de usuario (y para la selección de aptitudes si DescriptionForModel no se establece) y DescriptionForModel solo se usa para la selección de aptitudes.

    • Por ejemplo, supongamos que tenemos una aptitud GetSslCertsByHostname, con una descripción de "Devuelve los certificados SSL asociados a un nombre de host". Una descripción detallada deForModel podría ser "Recupera certificados SSL (también conocidos como certificados TLS) para un nombre de dominio o nombre de dominio DNS. Devuelve una lista de certificados SSL junto con detalles de certificado como emisor, asunto, número de serie, sha1 y fechas".
  • Las descripciones de aptitudes deben ser detalladas y frases para alguien que tenga conocimientos razonables, pero que no sea un experto en el dominio del problema. Debe describir no solo lo que hace la aptitud, sino también por qué alguien desea usarla.

    • Por ejemplo, una buena descripción es "Obtiene información de reputación para una dirección IP. Permite a los usuarios determinar si una dirección IP es de riesgo".  

Vea también