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.
Este artigo fornece uma descrição geral conceptual dos componentes principais que definem a forma como os agentes de Security Copilot personalizados funcionam, ajudando-o a compreender a estrutura, o comportamento e a lógica operacional.
Agente
Um agente no Security Copilot é uma entidade computacional autónoma ou semi-autónoma que funciona para atingir um objetivo específico. É definido pela sua capacidade de perceber e reagir ao seu ambiente, tomar decisões e produzir resultados para cumprir o seu objetivo. A estrutura de um agente informa o agente sobre como alcançar o seu objetivo ao decidir que capacidades utilizar se se trata de um Modelo de Linguagem Grande (LLM), ferramentas ligadas (competências) ou ambas. As decisões do agente são orientadas pelas suas entradas e instruções, o que pode fazer com que o agente utilize a lógica predefinida ou pedir a um LLM que interprete e aja nessas instruções.
Os agentes são ativados através de um acionador, que cria uma execução de agente e executa cada passo (ou tarefa) até que seja alcançado um resultado. Ao longo da execução do agente, com base nas instruções, decide entre tirar partido de um LLM ou de uma ferramenta ligada para concluir uma tarefa.
Os agentes podem interagir com ferramentas, recursos externos para além das instruções do LLM e do agente, através de uma de duas estratégias de seleção:
Ferramenta estática: um conjunto fixo de recursos disponíveis para o agente chamar, conforme listado na definição do agente, para um passo individual ou toda a execução do agente. Quando definido desta forma, o LLM dentro de um agente não pode decidir chamar ferramentas fora do que está definido. Isto pode melhorar a velocidade e a relevância dos resultados da ferramenta. Um agente de informações sobre ameaças que deve invocar origens predefinidas pode ser concebido desta forma.
Ferramenta dinâmica: as chamadas de ferramentas são selecionadas durante a execução do agente com base no contexto, no raciocínio ou nas entradas do agente. As ferramentas disponibilizadas ao agente podem ser introduzidas no runtime. Os agentes que precisam de ser reativos às condições encontradas numa execução de agente podem ser concebidos desta forma. Por exemplo, um agente que melhora uma entidade pode ser executado de forma diferente com base no tipo de entidade fornecido como uma entrada para o agente.
Os programadores e Security Copilot utilizadores podem criar agentes através de qualquer abordagem à seleção de ferramentas com base no objetivo do agente. O objetivo também ajuda a informar se o resultado do agente serve um indivíduo, equipa ou organização. À medida que os agentes são executados com uma identidade, o âmbito do resultado e as permissões da identidade devem ser alinhados.
Quer esteja a criar um agente de triagem de alertas simples ou a orquestrar um sistema multi-agente para investigações complexas, este artigo fornece os conhecimentos fundamentais necessários para trabalhar com a arquitetura do agente Security Copilot a partir da seleção de ferramentas e do design do manifesto para acionar a configuração e governação.
Instruções
As instruções são instruções dadas a um agente para definir os seus objetivos, informar a tomada de decisões e detalhar o resultado. Por exemplo, pode dizer a um agente de triagem para se concentrar em incidentes de alta gravidade ou orientar um agente de dados para solicitar apenas informações que sigam determinadas regras. As instruções ajudam os agentes a manterem-se precisos e consistentes.
Mal-Intencionado
Uma ferramenta (competência) são recursos acedidos fora das instruções do agente e LLM que um agente Security Copilot pode invocar para ajudar a concluir o resultado. Pense numa ferramenta como uma função numa linguagem de programação tradicional. Tem um nome, alguns argumentos e, quando invocado, executa uma tarefa bem definida e devolve um resultado.
Os utilizadores podem criar as ferramentas pretendidas que Security Copilot podem chamar para realizar tarefas especializadas ou interagir com sistemas externos.
Por exemplo:
Responda a perguntas de resolução ou reputação sobre uma entidade que não foi vista anteriormente, como "Quem se registou"
www.contoso.com?'Responda a perguntas sobre quaisquer dados específicos do cliente, como "O Incidente 1234 afeta que utilizadores?".
Interaja com sistemas externos, como "Repor a palavra-passe da conta para "testaccount@contoso.com".
Obtenha conhecimentos específicos do cliente a partir de uma origem de conhecimento, como o SharePoint.
Plug-in
Uma coleção de ferramentas relacionadas que os utilizadores podem ativar no Security Copilot quando relevantes para criar novas funcionalidades de pedido, promptbook ou agente. Para os agentes, os plug-ins expandem o que um agente pode fazer ao conceder-lhe acesso a recursos fora de um agente e LLM. Um exemplo é um plug-in que utiliza uma API para ligar a um serviço externo, como a pesquisa de reputação, em que as definições de ferramentas subjacentes para o plug-in podem devolver uma classificação de reputação, software maligno relacionado, informações sobre ameaças, etc.
Formatos de ferramentas
Security Copilot plataforma suporta várias formas de criar e alojar ferramentas (competências) de acordo com várias necessidades. Pode criar agentes com qualquer uma das competências suportadas. Os formatos de ferramenta suportados são os seguintes:
| Formato da Ferramenta | Melhor para | Caso de utilização de exemplo |
|---|---|---|
| API | Integrar sistemas externos ou internos | Automatizar reposições de palavras-passe, obter informações sobre ameaças a partir de APIs, acionar fluxos de trabalho de remediação |
| GPT | Fornece definições para processamento de linguagem natural que não estão disponíveis nativamente em LLMs subjacentes. | Definições específicas do domínio, resumir incidentes em formatos exclusivos |
| KQL | Consultar origens de dados da Microsoft (Microsoft Defender, Microsoft Sentinel) | Obter registos de início de sessão, detetar anomalias |
| AGENTE | Orquestrar fluxos de trabalho de vários passos com modelos de linguagem grandes (LLMs) e ferramentas subordinadas | Compreenda a situação de alojamento de um URL, , encadeie várias ferramentas para investigação. |
| MCP | Integrações dinâmicas de várias ferramentas expostas por um servidor MCP; O co-piloto de segurança deteta ferramentas no runtime. | Agregar informações sobre ameaças ou orquestrar a remediação em várias ferramentas através do servidor MCP. |
Definição do agente
A definição do agente serve de esquema para um agente e é um componente chave do ficheiro de manifesto. É uma das chaves de nível superior no manifesto e especifica a configuração, as capacidades e o comportamento principais do agente. Especifica:
- Detalhes descritivos/metadados (por exemplo: nome, descrição).
- Definições de acionador que descrevem os eventos que fazem com que o agente seja executado.
- Ferramentas ou referências de ferramentas associadas que o agente utiliza para concluir o seu trabalho.
Enquanto programador Security Copilot, as definições de agente que criar estão disponíveis para que os Analistas executem e vejam os resultados.
Instância do agente
Uma instância de agente é a versão implementada de uma definição de agente numa área de trabalho específica. Cada instância:
- Mantém a sua própria identidade ou credenciais.
- Armazena memórias e comentários específicos de instâncias.
- Vários inquilinos e áreas de trabalho podem ter a sua própria instância da mesma definição de agente. As alterações de configuração ou as atualizações de memória de uma instância não afetam outras.
Manifesto
O manifesto define a definição, identidade, ferramentas e lógica operacional do agente num formato YAML ou JSON estruturado. Semelhante a um ficheiro de configuração em sistemas de software tradicionais, o manifesto especifica:
- A finalidade e as tarefas exclusivas do agente
- Diretrizes operacionais gerais
- Lógica de tomada de decisão
- As ferramentas que tem de invocar
- Outros agentes que pode chamar durante a execução
O manifesto inclui metadados (definições e competências do agente) que o agente pode utilizar, como essas competências são agrupadas e que ações pode realizar. O ficheiro de manifesto é empacotado e implementado como parte do fluxo de trabalho do agente na plataforma Security Copilot. Os analistas do SOC interagem com o agente através desta plataforma e o agente responde a pedidos ou eventos com base na configuração do manifesto e na lógica da ferramenta.
Observação
Nos exemplos, o formato YAML é listado porque é mais claro para as pessoas lerem e podem incluir comentários, mas qualquer um dos formatos funciona igualmente bem. O formato JSON é idêntico ao formato YAML, mas utiliza a sintaxe JSON.
AGENTE YAML
Este é um exemplo de um ficheiro 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 passos para invocar as competências subordinadas:
ExtractHostname: utiliza a ferramentaExtractHostname_DCA-090925GPT para analisar o nome do anfitrião do URL.GetDnsResolutionsByIndicators: utiliza o conjunto de competências do Microsoft Threat Intelligence para obter os endereços IP associados ao nome do anfitrião. Tem de ativar o plug-in em Gerir origens Personalizadas > . Certifique-se de queRequiredSkillsets: ThreatIntelligence.DTItem de ser adicionada sem a ferramenta queGetDnsResolutionsByIndicatorsnão é invocada.lookupIpAddressGeolocation: está naoperationIdespecificação OpenAPI, que é referenciada no plug-inDCA_SampleAPIPluginda API para procurar dados de geolocalização para cada endereço IP. Para referência, veja Build API sample (Exemplo de API de Criação).
Gatilho
Um acionador é o que inicia o fluxo de trabalho de um agente. Pode ser iniciado manualmente ou definido para ser executado com base numa agenda. Assim que o acionador for ativado, o agente segue o plano e executa as ações automaticamente.
Os agentes operam com base num plano de ação estruturado e são executados nesse plano. Por exemplo, um agente de triagem de phishing pode determinar que ferramentas ou outros agentes invocar a partir do respetivo conjunto de capacidades pré-configuradas. As ferramentas como FetchSkill e ProcessSkill definidas no acionador servem como pontos de entrada no fluxo de trabalho do agente que orienta a execução da tarefa.
No exemplo seguinte:
Triggers:
- Name: Default
DefaultPeriodSeconds: 300
FetchSkill: Contoso.SecurityCopilot.Samples-090925_1b.RecentUrlClicks_DCA-090925_1b
ProcessSkill: Contoso.SecurityCopilot.Samples-090925_1b.URL_Location_DCA_Agent_Entrypoint-090925_1b
Settings:
1.A cada 5 minutos, o RecentUrlClicks_DCA-090925_1b é invocado para obter novos dados.
2. Em seguida, o ProcessSkill URL_Location_DCA_Agent_Entrypoint-090925_1b é invocado em cada item devolvido para agir sobre os dados.
Cada um destes ciclos é uma execução de acionador e cada chamada para ProcessSkill é uma execução de acionador. Estas invocações de competências são executadas em sessões associadas à instância e ao acionador do agente e utilizam a identidade associada do agente.
FetchSkill e ProcessSkill
FetchSkill
Quando um acionador é ativado numa execução de agente, o FetchSkill, se configurado, recolhe dados. ProcessSkill define como os agentes agem sobre esses dados durante a execução. Assim que os dados forem obtidos, o ProcessSkill assume o controlo, utilizando esses dados como entrada para realizar ações ou análises específicas. Estes dois componentes funcionam em conjunto para ativar fluxos de trabalho dinâmicos e orientados por dados. Se o valor FetchSkill estiver definido, o acionador invoca primeiro FetchSkill.
Importante
Fetch e ProcessSkills têm de ter um espaçamento entre nomes por conjunto de competências. Têm de seguir o formato Skillset name.Skill name.
No exemplo de Acionadores, é Skill nameRecentUrlClicks_DCA. É Skillset name o Descriptor.name (por exemplo, Contoso.SecurityCopilot.Samples-090925_1b). Assim, o nome de competência completamente qualificado é Contoso.SecurityCopilot.Samples-090925_1b. RecentUrlClicks_DCA.
ProcessSkill
Se for definida uma FetchSkill, para cada objeto de saída, processSkill é chamado com os valores de saída como entradas para ProcessSkill. Se uma FetchSkill não estiver definida, o ProcessSkill é invocado.
{
[
{
"Incident": 1,
"name": "Item One",
"created_at": "2024-02-17T12:34:56Z"
},
{
"Incident": 2,
"name": "Item Two",
"created_at": "2024-02-17T12:35:30Z"
},
{
"Incident": 3,
"name": "Item Three",
"created_at": "2024-02-17T12:36:10Z"
}
]
}
No exemplo, ProcessSkill é chamado três vezes com Incident, namee created_at como entradas.
Espaço de trabalho
Um contentor para trabalhar. Os agentes operam no contexto de uma área de trabalho. A área de trabalho fornece uma unidade de controlo para acesso, configuração, consumo e processamento de dados.
Memória
A memória permite que os agentes mantenham o contexto entre interações, permitindo respostas mais inteligentes e personalizadas. Ao armazenar informações relevantes, como ações anteriores, preferências de utilizador ou histórico de incidentes, os agentes podem fornecer continuidade e melhorar a tomada de decisões ao longo do tempo.