Componentes do agente

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 visão geral conceitual dos principais componentes que definem como os agentes personalizados do Security Copilot funcionam, ajudando você a entender sua estrutura, comportamento e lógica operacional.

Agente

Um agente no Security Copilot é uma entidade computacional autônoma, semi ou totalmente autônoma, que trabalha para atingir um objetivo específico. É definido por sua capacidade de perceber e reagir ao seu ambiente, tomar decisões e produzir resultados para atingir seu objetivo. O design de um agente informa o agente sobre como atingir seu objetivo, decidindo quais recursos usar, seja um LLM (Modelo de Linguagem Grande), ferramentas conectadas (também conhecidas como habilidades) ou ambos. As decisões do agente são guiadas por suas entradas e instruções, o que pode fazer com que o agente use uma lógica predefinida ou solicitar que um LLM interprete e aja de acordo com essas instruções.

Os agentes são ativados por meio de um gatilho, que cria uma execução de agente e executa cada etapa (ou tarefa) até que um resultado seja alcançado. Ao longo da execução do agente, com base nas instruções, ele decide entre aproveitar um LLM ou uma ferramenta conectada para concluir uma tarefa.

Os agentes podem interagir com ferramentas, recursos externos além do LLM e instruções do agente, usando uma das 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 uma etapa individual ou para toda a execução do agente. Quando definido dessa forma, o LLM dentro de um agente não pode decidir chamar nenhuma ferramenta fora do que está definido. Isso melhora a velocidade e também a relevância dos resultados da ferramenta. Um agente de inteligência contra ameaças que deve invocar fontes predefinidas pode ser projetado dessa maneira.

  • Ferramenta dinâmica: As chamadas de ferramenta são selecionadas durante a execução do agente com base no contexto, raciocínio ou entradas para o agente. As ferramentas disponibilizadas para o agente podem ser introduzidas em tempo de execução. Os agentes que precisam ser reativos às condições encontradas em uma execução de agente podem ser projetados dessa maneira. Por exemplo, um agente que enriquece uma entidade pode ser executado de forma diferente com base no tipo de entidade fornecido como uma entrada para o agente.

Desenvolvedores e usuários do Security Copilot podem criar agentes usando qualquer abordagem para seleção de ferramentas com base na meta do agente. A meta também ajuda a informar se o resultado do agente atende a um indivíduo, equipe ou organização. À medida que os agentes são executados usando uma identidade, o escopo do resultado e as permissões da identidade devem ser alinhados.

Esteja você criando um agente de triagem de alerta simples ou orquestrando um sistema de vários agentes para investigações complexas, este artigo fornece o conhecimento básico necessário para trabalhar com a estrutura de agentes do Security Copilot, desde a seleção de ferramentas e o design do manifesto até a configuração e a governança de gatilhos.

Imagem dos componentes do Agente no Security Copilot

Instruções

As instruções são instruções dadas a um agente para definir seus objetivos, informar sua tomada de decisão e detalhar seu resultado. Por exemplo, você pode dizer a um agente de triagem para se concentrar em incidentes de alta gravidade ou orientar um agente de dados para extrair apenas informações que seguem determinadas regras. As instruções ajudam os agentes a permanecerem precisos e consistentes.

Mal-Intencionado

Uma ferramenta (também conhecida como habilidade) é um recurso acessado fora das instruções do agente e do LLM que um agente do Security Copilot pode invocar para ajudar a concluir seu resultado. Pense em uma ferramenta como uma função em uma linguagem de programação tradicional. Ele tem um nome, alguns argumentos e, quando invocado, executa uma tarefa bem definida e retorna um resultado.

Os usuários podem criar as ferramentas desejadas que o Security Copilot pode chamar para executar tarefas especializadas ou interagir com sistemas externos.

Por exemplo:

  • Responder a perguntas de resolução ou reputação sobre uma entidade não vista antes, como "Quem se registrou www.contoso.com?'

  • Responda a perguntas sobre dados específicos do cliente, como "O incidente 1234 afeta quais usuários?"

  • Interaja com sistemas externos, como 'Redefinir a senha da conta para'testaccount@contoso.com'.

  • Recupere o conhecimento específico do cliente de uma fonte de conhecimento, como o SharePoint.

Plug-in

Uma coleção de ferramentas relacionadas que os usuários podem habilitar no Security Copilot quando relevantes para a criação de novos recursos de prompt, promptbook ou agente. Para agentes, os plug-ins estendem o que um agente pode fazer, dando-lhe acesso a recursos fora de um agente e LLM. Um exemplo é um plug-in que usa uma API para se conectar a um serviço externo, como pesquisa de reputação, em que as definições de ferramenta subjacentes para o plug-in podem retornar uma pontuação de reputação, malware relacionado, inteligência contra ameaças etc.

Formatos de ferramenta

A plataforma Security Copilot dá suporte a várias maneiras de criar e hospedar ferramentas (habilidades) para atender a várias necessidades. Você pode criar agentes usando qualquer uma das habilidades com suporte. Os formatos de ferramenta com suporte são os seguintes:

Formato da ferramenta A melhor opção para Exemplo de caso de uso
API Integrando sistemas externos ou internos Automatize redefinições de senha, busque informações sobre ameaças de APIs, acione fluxos de trabalho de correçã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 de domínio, resuma incidentes em formatos exclusivos
KQL Consultando fontes de dados da Microsoft (Microsoft Defender, Microsoft Sentinel) Recuperar logs de entrada, detectar anomalias
AGENTE Orquestração de fluxos de trabalho de várias etapas usando LLMs (Modelos de Linguagem Grande) e ferramentas filho Entenda a situação de hospedagem de uma URL, , encadeie várias ferramentas para investigação.
MCP Integrações dinâmicas com várias ferramentas expostas por um servidor MCP; O Copilot de segurança descobre ferramentas em tempo de execução. Agregar inteligência contra ameaças ou orquestrar a correção em várias ferramentas por meio do servidor MCP.

Definição do agente

A definição de agente serve como o blueprint para um agente e é um componente chave do arquivo de manifesto. É uma das chaves de nível superior no manifesto e especifica a configuração, os recursos e o comportamento principais do agente. Especifica:

  • Detalhes descritivos/de metadados (por exemplo: nome, descrição).
  • Definições de gatilho que descrevem quais eventos fazem com que o agente seja executado.
  • Ferramentas associadas ou referências de ferramentas que o agente usa para concluir seu trabalho.

Como desenvolvedor do Security Copilot, as definições de agente que você cria estão disponíveis para os analistas executarem e verem os resultados.

Instância do agente

Uma instância de agente é a versão implantada de uma definição de agente em um workspace específico. Cada instância:

  • Mantém sua própria identidade ou credenciais.
  • Armazena memórias e comentários específicos da instância.
  • Vários locatários e workspaces podem ter 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 as outras.

Manifesto

O manifesto define a definição, a identidade, as ferramentas e a lógica operacional do agente em um formato YAML ou JSON estruturado. Semelhante a um arquivo de configuração em sistemas de software tradicionais, o manifesto especifica:

  • O propósito e as tarefas exclusivas do agente
  • Diretrizes gerais de funcionamento
  • Lógica de tomada de decisão
  • As ferramentas que ele deve invocar
  • Outros agentes que ele pode chamar durante a execução

O manifesto inclui metadados (definições e habilidades do agente) que o agente pode usar, como essas habilidades são agrupadas e quais ações ele pode executar. O arquivo de manifesto é empacotado e implantado como parte do fluxo de trabalho do agente na plataforma Security Copilot. Os analistas do SOC interagem com o agente por meio da plataforma do Security Copilot e o agente responde a prompts 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 os humanos lerem e pode incluir comentários, mas qualquer um dos formatos funciona igualmente bem. O formato JSON é idêntico ao formato YAML, mas usa a sintaxe JSON.

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 ferramenta ExtractHostname_DCA-090925 GPT 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 que RequiredSkillsets: ThreatIntelligence.DTI isso deve ser adicionado sem o qual GetDnsResolutionsByIndicators a ferramenta não é invocada.

  • lookupIpAddressGeolocation: está na operationId especificação OpenAPI, que é referenciada no plug-in DCA_SampleAPIPlugin da API para pesquisar dados de geolocalização para cada endereço IP. Para referência, consulte Exemplo de API de compilação.

Gatilho

Um gatilho é o que inicia o fluxo de trabalho de um agente. Ele pode ser iniciado manualmente ou definido para ser executado em um agendamento. Uma vez que o gatilho é ativado, o agente segue seu plano e executa as ações automaticamente.

Os agentes operam com base em um plano de ação estruturado e executam esse plano. Por exemplo, um agente de triagem de phishing pode determinar quais ferramentas ou outros agentes invocar a partir de seu conjunto de recursos pré-configurados. As ferramentas como FetchSkill e ProcessSkill definidas no gatilho servem como pontos de entrada no fluxo de trabalho do agente, orientando a execução da tarefa.

No exemplo a seguir:

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 retornado para agir sobre os dados.

Cada um desses ciclos é uma execução de gatilho, e cada chamada para o ProcessSkill é uma execução de gatilho. Essas chamadas de habilidade são executadas em sessões associadas à instância e ao gatilho do agente e usam a identidade associada do agente.

FetchSkill e ProcessSkill

FetchSkill

Quando um gatilho é ativado em uma execução de agente, o FetchSkill, se configurado, coleta dados. O ProcessSkill define como os agentes agem com base nesses dados durante a execução. Depois que os dados são buscados, o ProcessSkill assume o controle, usando esses dados como entrada para executar ações ou análises específicas. Esses dois componentes trabalham em conjunto para habilitar fluxos de trabalho dinâmicos e controlados por dados. Se o valor FetchSkill estiver definido, o gatilho primeiro invocará o FetchSkill.

Importante

Fetch e ProcessSkills devem ser namespace por conjunto de habilidades. Eles devem seguir o formato Skillset name.Skill name.

No exemplo de Gatilhos:

  • Skill name = RecentUrlClicks_DCA
  • Skillset name = Descriptor.name; Por exemplo, Contoso.SecurityCopilot.Samples-090925_1b
  • O nome da habilidade totalmente qualificada = Contoso.SecurityCopilot.Samples-090925_1b.RecentUrlClicks_DCA

ProcessSkill

Se um FetchSkill for definido, para cada objeto de saída, o ProcessSkill será chamado usando os valores de saída como entradas para o ProcessSkill. Se um FetchSkill não for definido, o ProcessSkill será 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, o ProcessSkill é chamado três vezes com Incident, name, e created_at como entradas.

Espaço de trabalho

Um contêiner para o trabalho. Os agentes operam dentro do contexto de um espaço de trabalho. O espaço de trabalho fornece uma unidade de controle para acesso, configuração, consumo e tratamento de dados.

Memória

A memória permite que os agentes mantenham o contexto entre as interações, permitindo respostas mais inteligentes e personalizadas. Ao armazenar informações relevantes, como ações anteriores, preferências do usuário ou histórico de incidentes, os agentes podem oferecer continuidade e melhorar a tomada de decisões ao longo do tempo.