Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
Algumas informações neste artigo estão relacionadas ao produto pré-lançado que pode ser modificado substancialmente antes de ser lançado comercialmente. A Microsoft não faz garantias, expressas ou implícitas, quanto às informações fornecidas aqui.
O desenvolvimento de um agente do Security Copilot e suas ferramentas (também conhecidas como habilidades) exigem um arquivo de manifesto no formato YAML ou JSON (por exemplo, manifest.yaml). Este arquivo define metadados sobre o conjunto de ferramentas (plugin) e especifica como cada ferramenta deve ser invocada.
Um manifesto de agente inclui três chaves de nível superior que são as seguintes:
Cada chave contém seu próprio conjunto de pares de subchave/valor, alguns dos quais são campos obrigatórios/opcionais, dependendo do formato da ferramenta.
Este guia de referência descreve os campos de manifesto disponíveis para a criação de agentes do Security Copilot.
YAML do agente
Este é um exemplo de um arquivo de exemplo manifest.yaml .
Descriptor:
Name: Contoso.SecurityOperations.Samples-090925
Description: DCA URL Geolocation Agent
DisplayName: DCA URL Geolocation Agent
SkillGroups:
- Format: AGENT
Skills:
- Name: URL_Location_DCA_Agent_Entrypoint-090925
Description: The entrypoint into the URL Location Agent
Interfaces:
- Agent
Inputs:
- Required: true
Name: URL
Description: A URL the agent should investigate
Settings:
Model: gpt-4.1
Instructions: |
<|im_start|>system
You are an AI agent that helps a security analyst understand the hosting situation of a URL (the input).
You'll do this by following a three-step process:
1) Use ExtractHostname to find the hostname from the URL provided as input
2) Use GetDnsResolutionsByIndicators to extract IP Addresses that the hostname has been observed resolving to. This may produce a list of IP Addresses.
3) One-at-a time, use lookupIpAddressGeolocation to look up the geolocation of an IP address.
Produce a simply formatted response telling the security analyst which locations that URL is being served from.
If you encounter an error share that.
Always return something the user knows that something happened.
<|im_end|>
<|im_start|>user
{{URL}}
<|im_end|>
ChildSkills:
- lookupIpAddressGeolocation
- ExtractHostname_DCA-090925
- GetDnsResolutionsByIndicators
- Format: GPT
Skills:
- Name: ExtractHostname_DCA-090925
DisplayName: ExtractHostname_DCA-090925
Description: ExtractHostname_DCA-090925
Inputs:
- Name: URL
Description: A URL string
Required: true
Settings:
ModelName: gpt-4.1
Template: |-
<|im_start|>system
Return the hostname component of the URL provided as input. For example:
- If the input is 'https://www.mlb.com/', return 'www.mlb.com'
- If the input is 'http://dev.mycompany.co.uk/sign-up/blah?a=12&b=12&c=32#23', return 'dev.mycompany.co.uk'
- If the input is 'ftp:/x.espon.com', return 'x.espon.com'
<|im_end|>
<|im_start|>user
{{URL}}
<|im_end|>
- Format: KQL
Skills:
- Name: RecentUrlClicks_DCA-090925
Description: Returns 10 recently clicked URLs
Settings:
Target: Defender
Template: UrlClickEvents | sort by TimeGenerated desc | limit 10 | project Url
AgentDefinitions:
- Name: URLLocationAgent-090925
DisplayName: URLLocationAgent
Description: An agent to help an analyst understand URL hosting
Publisher: Contoso
Product: SecurityOperations
RequiredSkillsets:
- Contoso.SecurityOperations.Samples-090925
- ThreatIntelligence.DTI
- DCA_SampleAPIPlugin
AgentSingleInstanceConstraint: None
Settings:
- Name: LookbackWindowMinutes
Label: Max Lookback Window in minutes
Description: The maximum number of minutes to find clicked URLs
HintText: You should probably enter 5
SettingType: String
Required: true
Triggers:
- Name: Default
DefaultPeriodSeconds: 300
FetchSkill: Contoso.SecurityOperations.Samples-090925.RecentUrlClicks_DCA-090925
ProcessSkill: Contoso.SecurityOperations.Samples-090925.URL_Location_DCA_Agent_Entrypoint-090925
O agente segue um processo de três etapas para invocar as habilidades filhas:
ExtractHostname: usa a ferramentaExtractHostname_DCA-090925GPT para analisar o nome do host da URL.GetDnsResolutionsByIndicators: usa o conjunto de habilidades de inteligência contra ameaças da Microsoft para recuperar os endereços IP associados ao nome do host. Você deve habilitar o plug-in em Gerenciar fontes > personalizadas. Certifique-se de queRequiredSkillsets: ThreatIntelligence.DTIisso deve ser adicionado sem o qualGetDnsResolutionsByIndicatorsa ferramenta não é invocada.lookupIpAddressGeolocation: está naoperationIdespecificação OpenAPI, que é referenciada no plug-inDCA_SampleAPIPluginda API para pesquisar dados de geolocalização para cada endereço IP. Para referência, consulte Exemplo de API de compilação.
Exemplos
Veja a lista completa da coleção de amostras.
Para obter o exemplo de Agente no agente interativo, consulte Agentes interativos.
Sintaxe YAML de manifesto
A seguir estão os parâmetros de manifesto do agente (campos) para as três chaves de nível superior e suas subchaves:
Resumo do campo descritor
| Campo | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Name |
string | Nome interno do conjunto de habilidades. Deve ter um nome exclusivo no workspace. | Não permite / , \ ? # @; não pode conter espaços em branco. |
Sim |
DisplayName |
string | Nome legível do conjunto de habilidades. | Não* | |
Description |
string | Descrição legível do conjunto de habilidades. | Não pode ser nulo ou vazio. | Sim |
Authorization |
objeto | Defina os valores de autorização. Para obter mais informações, consulte Autenticação para obter mais detalhes. | Não; Necessário para a ferramenta de API e SupportedAuthTypes não igual a None. |
|
SupportedAuthTypes |
array | Lista de tipos de autenticação com suporte para o conjunto de habilidades. Para obter mais informações, consulte Autenticação para obter mais detalhes. | Não; Necessário para a ferramenta de API |
(* implica recomendado, mas não obrigatório)
Resumo do campo AgentDefinitions
| Campo | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Name |
string | Nome usado para instalar o agente; | Não pode conter espaços em branco, ponto (.) e não pode ser nulo ou vazio. | Sim |
DisplayName |
string | Nome amigável para exibição na interface do usuário. | Sim | |
Description |
string | Resumo legível da finalidade e da funcionalidade do agente. | Sim | |
Publisher |
string | Nome do editor do agente. | Sim | |
Product |
string | Produto de origem associado ao agente. Usado para filtragem ao enumerar definições de agente. | Sim | |
RequiredSkillsets |
string | Conjuntos de habilidades necessários para o funcionamento do agente. | Sim | |
AgentSingleInstanceConstraint |
string | Define onde o agente pode ser implantado. Pode ser definido como None, Workspace, ou Tenant. - None: Sem restrição. - Workspace: uma instância por workspace. - Tenant: uma instância por locatário. |
Não | |
Settings |
objeto | Aplicado somente à invocação FetchSkill. | Não | |
Triggers |
objeto | Define como e quando o agente é disparado. Pelo menos um gatilho é necessário. Name: um nome descritivo para o gatilho. DefaultPeriodSeconds: o intervalo em segundos para a execução agendada. Os gatilhos não impedem execuções simultâneas. Para desabilitar a execução agendada, defina esse valor como 0. FetchSkill: se definido, o gatilho primeiro invoca essa habilidade (ferramenta). O gatilho espera uma matriz de objetos. Para cada objeto, ele chama o ProcessSkill usando os valores do objeto como entradas para o ProcessSkill. Um padrão comum seria ter um ListAlerts FetchSkill e um InvestigateAlertAgent ProcessSkill. Para obter mais informações sobre o Trigger, consulte Componentes do agente. |
Name: Não pode conter espaços em branco |
Sim; Name e ProcessSkill. |
PromptSkill |
objeto | Habilite a interatividade ou a experiência de chat com o agente. | Sim; Aplicável apenas para agentes interativos. |
Resumo do campo SkillGroups
Consiste em uma lista de grupos de habilidades, incluindo Format, Settings e Skills.
| Campo | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Format |
string | Consulte a seção Formatar para obter as opções disponíveis. | Sim | |
Skills |
objeto | Consulte a seção Habilidades para obter a estrutura do objeto. | Sim; para os formatos: GPT, API, KQL, AGENT |
|
Settings |
objeto | Consulte a seção Configurações para obter a estrutura do objeto. | Sim; para os formatos: API, GPT, KQL, AGENT |
Formato (campo SkillGroups)
Opções do campo Format:
Habilidades (campo SkillGroups)
Estrutura de objeto para Skills o campo:
| Campo | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Name |
string | Nome interno desta ferramenta (habilidade) | Não pode conter espaço em branco e ponto(.) | Sim |
DisplayName |
string | Nome legível para esta ferramenta. | Recomendado | |
Description |
string | Descrição legível para esta ferramenta | Não pode ser nulo ou vazio. | Recomendado |
Inputs |
objeto | Lista de Nome, Descrição e Objetos Obrigatórios ou opcionais para entrada do usuário na ferramenta. | Não | |
Settings |
objeto | Configurações personalizadas com base no Formato de habilidade. | Sim | |
ChildSkills |
matriz de cadeia de caracteres | Uma lista de nomes de ferramentas dos quais o agente depende ou invoca durante a execução. As ferramentas executam tarefas específicas e são chamadas pelo agente para cumprir seus objetivos. Habilita o encadeamento ou a composição de várias ferramentas para criar um comportamento de agente mais complexo. | Não; No entanto, aplicável e necessário apenas para FORMAT: AGENT habilidade. |
|
Interfaces |
objeto | Defina como InteractiveAgent ao criar um agente interativo. |
Sim | |
SuggestedPrompts |
objeto | Prompt: Prompt real a ser exibido ao usuário (se for o prompt inicial) ou use como um modelo para gerar prompts sugeridos. Title: título do prompt. Personas: o tipo de persona ao qual um prompt está alinhado. IsStarterAgent: defina como true para o prompt de início. Recomendação: defina como no máximo duas frases para solicitações iniciais e sugeridas. |
Sim; Aplicável apenas para agentes interativos.
Title e Personas (necessário somente para prompts iniciais). |
Configurações (campo SkillGroups)
A estrutura do objeto para o Settings campo é a seguinte para os formatos suportados. Para obter exemplos de habilidades (ferramentas), consulte Exemplos de ferramentas.
API
| Nome da configuração | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
OpenApiSpecUrl |
string | URL para a especificação pública de OpenAPI. | Sim | |
EndpointUrl |
string | URL para o ponto de extremidade público. | Não; Especifique somente se você não quiser usar o servidor de API listado na especificação OpenAPI. | |
EndpointUrlSettingName |
string | Configuração personalizável para solicitar URL para ponto de extremidade público durante a configuração do plug-in. | Não; Especifique somente se quiser que o ponto de extremidade da API seja configurável. | |
EnableSkillContextApi |
bool | Defina isso somente se as ferramentas de API precisarem de acesso à API SkillContext. | Não |
GPT
| Nome da configuração | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
ModelName |
string | Seleciona qual modelo GPT usar. | Deve ser gpt-4.1 | Sim |
Template |
string | Modelo de prompt GPT. | Suporta até 80.000 caracteres | Sim |
AGENTE
| Nome da configuração | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Instructions |
string | Orientação ou instruções claras que definem o comportamento e a missão do agente. As diretrizes são usadas para orientar as respostas do agente e garantir que elas se alinhem com o caso de uso pretendido. | Normalmente escrito em linguagem natural e inclui formatação como markdown ou comentários. | Sim |
KQL
| Nome da configuração | Tipo | Descrição | Restrições | Obrigatório |
|---|---|---|---|---|
Target |
string | Selecione o sistema ou a plataforma em que a ferramenta é executada. Consulte Configurações específicas do Target. | Sim | |
Template |
string | Modelo de prompt do KQL. | Dá suporte a até 80.000 caracteres. | Sim, se TemplateUrl não for especificado. |
TemplateUrl |
string | URL pública para baixar o modelo de prompt KQL (até 80.000 caracteres). | Sim. Especifique um ou TemplatUrlTemplate mas não ambos. |
|
PackageUrl |
string | URL público para o arquivo zip com o modelo de prompt do KQL. Observação: Especificado no nível do SkillGroup. | Sim, se Template especificado ou TemplateUrl não. |
|
TemplateFile |
string | Caminho relativo para o modelo de prompt KQL (até 80.000 caracteres) no PackageUrl arquivo zip. |
Sim, se PackageUrl for especificado. |
LogicApp
| Nome da configuração | Tipo | Descrição | Obrigatório |
|---|---|---|---|
SubscriptionId |
string | ID da assinatura do Microsoft Azure dos Aplicativos Lógicos. A assinatura deve estar no mesmo locatário que o locatário do usuário do Security Copilot. | Sim |
ResourceGroup |
string | Grupo de recursos do Microsoft Azure do Aplicativo Lógico em que o recurso é criado. | Sim |
WorkflowName |
string | Nome do recurso de Aplicativo Lógico. | Sim |
TriggerName |
string | Nome do gatilho criado nos Aplicativos Lógicos. | Sim |
Configurações específicas do destino
Microsoft Defender
Nenhuma configuração adicional.
Microsoft Sentinel
Essas configurações são válidas para a ferramenta KQL, cujo destino é o Microsoft Sentinel.
Settings:
Target: Sentinel
# The ID of the AAD Organization that the Sentinel workspace is in.
TenantId: '{{TenantId}}'
# The id of the Azure Subscription that the Sentinel workspace is in.
SubscriptionId: '{{SubscriptionId}}'
# The name of the Resource Group that the Sentinel workspace is in.
ResourceGroupName: '{{ResourceGroupName}}'
# The name of the Sentinel workspace.
WorkspaceName: '{{WorkspaceName}}'
Kusto
Essas configurações são válidas para a ferramenta KQL em que o Destino é Kusto.
Settings:
# The Kusto cluster URL.
Cluster:
# The Kusto database name.
Database:
Autenticação
O Security Copilot dá suporte a vários esquemas para autenticar ferramentas. Consulte Tipos de autenticação. Para obter exemplos sobre os diferentes tipos de autenticação, consulte Plug-in de API.
| Esquema | Descrição | Suporte ao manifesto do Copilot | Suporte ao OpenAI + |
|---|---|---|---|
None |
Sem autenticação | Sim | Sim |
Basic |
Autenticação básica | Sim | Não |
ApiKey |
autenticação baseada em ApiKey. ApiKey é passado em um cabeçalho personalizado ou parâmetro de consulta. | Sim | Sim* |
ServiceHttp |
Autenticação com base no token fornecido. | Sim | Sim |
OAuthAuthorizationCodeFlow |
O fluxo de código de autorização OAuth 2.0 é um método de autenticação mais seguro e complexo usado para conceder acesso a aplicativos de terceiros sem compartilhar credenciais de usuário. | Sim | Sim |
OAuthClientCredentialsFlow |
Semelhante à Autenticação Básica, mas usada para comunicação de servidor para servidor ou ao acessar dados públicos que não exigem permissões específicas do usuário. | Sim | Não |
OAuthPasswordGrantFlow |
Uma maneira herdada de trocar as credenciais de um usuário por um token de acesso usando o tipo de concessão de senha OAuth 2.0. Não é mais recomendado. | Sim | Não |
AAD |
Acesso apenas ao aplicativo Microsoft Entra. | Sim | Sim* |
AADDelegated |
Usuário + Acesso apenas ao aplicativo do Microsoft Entra. | Sim | Sim* |
+Esse campo é usado para indicar os dois tipos diferentes de upload com suporte no Security Copilot.*Eles representam métodos de autenticação que vão além do que era inicialmente suportado pelo OpenAI.
Tipos de autenticação
A tabela mostra as configurações com suporte para cada tipo de autenticação.
| Tipo de autenticação | Configuração | Descrição |
|---|---|---|
AAD ou AADDelegated |
EntraScopes |
Uma lista separada por vírgulas de escopos do Microsoft Entra a serem solicitados. |
Basic ou OAuthPasswordGrantFlow |
Username |
O nome de usuário a ser usado para autenticação básica. |
Password |
A senha a ser usada para autenticação básica. | |
ApiKey |
Key |
O nome do parâmetro de cabeçalho/consulta. O valor padrão é Autorização, mas pode ser um valor personalizado. Por exemplo, X-ApiKey. |
AuthScheme |
O nome do esquema de autenticação anexado ao Valor quando usado em um cabeçalho. As opções aceitáveis são uma cadeia de caracteres vazia, Portador ou Básico. | |
Location |
O local da chave de API, Header ou QueryParams. O padrão é Cabeçalho. | |
Value |
A chave/token a ser usado. | |
ServiceHttp |
AccessToken |
A chave/token a ser usado. O AuthScheme de Portador é anexado ao token no cabeçalho da solicitação de autorização. |
OAuthAuthorizationCodeFlow ou OAuthClientCredentialsFlow ou OAuthPasswordGrantFlow |
TokenEndpoint |
O ponto de extremidade do qual solicitar o token. |
Scopes |
Uma lista opcional separada por vírgula de escopos a serem solicitados. | |
ClientId |
A ID do cliente a ser usada ao solicitar o token. Opcional para OAuthPasswordGrantFlow. |
|
ClientSecret |
O segredo do cliente a ser usado ao solicitar o token. Opcional para OAuthPasswordGrantFlow. |
|
AuthorizationContentType |
O tipo de conteúdo usado ao enviar a solicitação de token. O valor padrão é application/x-www-form-urlencoded. | |
OAuthAuthorizationCodeFlow |
AuthorizationEndpoint |
O ponto de extremidade do qual solicitar o código de autorização. |