Crie seus próprios plug-ins personalizados

Você pode estender os recursos do Security Copilot criando seus próprios plug-ins personalizados. A plataforma suporta uma estrutura flexível para criar plug-ins que podem ser usados para executar tarefas especializadas que atendam aos requisitos do seu fluxo de trabalho.

Criar um novo plug-in personalizado

Dependendo de como o administrador configura o Security Copilot, você poderá criar um novo plug-in executando as seguintes etapas:

  1. Crie um plug-in da lista de plug-ins com suporte.

  2. Crie um arquivo de manifesto do plug-in YAML ou JSON, que descreve metadados sobre o plug-in e como invocá-lo.

  3. Publique o manifesto do plug-in no Copilot para Segurança.

Requisitos de plug-in

Cada plug-in do Copilot para Segurança requer um arquivo de manifesto formatado em YAML ou JSON (por exemplo: plugin.yaml ou plugin.json) que descreve metadados sobre o conjunto de habilidades e como invocar as habilidades.

Um manifesto consiste em duas chaves Descriptor de nível superior obrigatórias e SkillGroups, cada uma com pares de subchave ou valor e campos obrigatórios/opcionais, dependendo do formato da habilidade.

Para obter informações, consulte o manifesto do agente.

Diferenças entre o OpenAI e os manifestos do Copilot para Segurança

Os plug-ins OpenAI normalmente usam um formato de manifesto diferente do formato de manifesto do Security Copilot. O Copilot para Segurança dá suporte a ambos os formatos.

Observação

Os detalhes de mapeamento, especialmente em relação às restrições nas anotações, podem ser alterados no futuro. Atualmente, a plataforma dá suporte apenas a plug-ins nas versões 3.0 ou 3.0.1 do OpenAPI.

Mapeamento de campo de plug-in

Campo plug-in Tipo Campo descritor Obrigatório Observações
schema_version string Não É a versão do esquema de manifesto OpenAI, por exemplo, "v1". Não usado no momento.
name_for_model string Nome Sim Restrito ao comprimento de 100 caracteres. Nome interno do conjunto de habilidades. Não permite / \ ? #.
name_for_human string DisplayName Sim Nome legível por humanos do plug-in. Restrito ao comprimento de 40 caracteres.
description_for_model string Descrição Sim Restrito ao comprimento de 16.000 caracteres. Descrição interna para uso com LLM.
description_for_human string DescriptionDisplay Sim Descrição legível do plug-in. Restrito ao comprimento de 200 caracteres.
logo_url cadeia de caracteres Ícone Recomendado URL usada para buscar o ícone principal do Plug-in.
contact_email string Não Contato de email para o plug-in. Não usado no momento.
legal_info_url string Não Link para informações de plug-in. Não usado no momento.
api objeto Consulte a seção API do plug-in para obter a estrutura de objetos Sim
auth objeto Sim authorization_type está restrito a bearer. Detalhes a serem seguidos relativos ao suporte a diferentes autenticações type como none, oauth, api_key, aad, aad_delegated.

Plug-in (campo de API)

Estrutura do objeto do campo api

Campo Tipo Descrição Obrigatório
type string O único tipo com suporte atualmente é openapi. Sim
url string Link para o arquivo de especificação OpenAPI Sim

Diretrizes de criação de plug-in

Há muitas considerações sobre a criação de plug-in. Este documento destina-se a capturar algumas das diretrizes e práticas recomendadas para escrever plug-ins para o Copilot para Segurança.

Observação

Uma "colisão de habilidades" ocorre quando o Security Copilot não distingue com precisão entre duas habilidades diferentes.

  • Em vez de ter várias habilidades que retornam o mesmo tipo de resposta, mas diferem apenas com base nas entradas; defina habilidades, que usam várias entradas e, em seguida, descubram internamente como obter os dados.

    • Por exemplo, ter uma única habilidade GetDevices que usa ID do dispositivo, ID do usuário ou nome de usuário em vez de separar GetDeviceById, GetDeviceByUserId e GetDeviceByUserName
  • O Copilot para Segurança fornece suporte aos campos Description e DescriptionForModel. Description é usado no UX (e na seleção de habilidades, se DescriptionForModel não for definido) e DescriptionForModel é usado apenas na seleção de habilidades.

    • Por exemplo, digamos que temos uma habilidade GetSslCertsByHostname, com uma descrição de "Retorna os certificados SSL associados a um nome de host". Uma descriptionForModel detalhada poderia ser "Recupera os certificados SSL (também conhecidos como certificados TLS) para um nome de host DNS ou nome de domínio. Retorna uma lista de certificados SSL juntamente com detalhes do certificado, como emissor, assunto, número de série, sha1 e datas".
  • As descrições de habilidades devem ser detalhadas e redigidas para alguém com conhecimento razoável, mas que não seja um especialista no domínio do seu problema. Ele deve descrever não apenas o que a habilidade faz, mas também por que alguém gostaria de usá-la.

    • Por exemplo, uma boa descrição é "Obtém informações de reputação para um endereço IP. Permite que os usuários determinem se um endereço IP é arriscado".  

Use os seguintes artigos do Security Copilot para obter diretrizes: