Compartir a través de


Componentes del agente

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.

En este artículo se proporciona información general conceptual de los componentes clave que definen cómo funcionan los agentes de Security Copilot personalizados, lo que le ayuda a comprender su estructura, comportamiento y lógica operativa.

Agente

Un agente de Security Copilot es una entidad computacional semi independiente o totalmente autónoma que funciona para lograr un objetivo específico. Se define por su capacidad de percibir y reaccionar ante su entorno, tomar decisiones y generar resultados para cumplir su objetivo. El diseño de un agente informa al agente sobre cómo lograr su objetivo al decidir qué funcionalidades usar si se trata de un modelo de lenguaje grande (LLM), herramientas conectadas (aptitudes) o ambas. Las decisiones del agente se guían por sus entradas e instrucciones, lo que podría hacer que el agente use lógica predefinida o pedir a un LLM que interprete y actúe según esas instrucciones.

Los agentes se activan a través de un desencadenador, que crea una ejecución de agente y ejecuta cada paso (o tarea) hasta que se logra un resultado. A lo largo de la ejecución del agente, según las instrucciones, decide entre aprovechar un LLM o una herramienta conectada para completar una tarea.

Los agentes pueden interactuar con herramientas, recursos externos más allá de las instrucciones de LLM y agente, mediante una de las dos estrategias de selección:

  • Herramienta estática: conjunto fijo de recursos disponibles para que el agente llame, como se muestra en la definición del agente, a un paso individual o a toda la ejecución del agente. Cuando se define de esta manera, el LLM dentro de un agente no puede decidir llamar a ninguna herramienta fuera de lo que se define. Esto puede mejorar la velocidad y la relevancia de los resultados de la herramienta. Un agente de inteligencia sobre amenazas que debe invocar orígenes predefinidos podría diseñarse de esta manera.

  • Herramienta dinámica: las llamadas a herramientas se seleccionan durante la ejecución del agente en función del contexto, el razonamiento o las entradas del agente. Las herramientas disponibles para el agente se pueden introducir en tiempo de ejecución. Los agentes que necesitan ser reactivos a las condiciones encontradas en una ejecución de agente se pueden diseñar de esta manera. Por ejemplo, un agente que enriquece una entidad podría ejecutarse de forma diferente en función del tipo de entidad proporcionado como entrada para el agente.

Los desarrolladores y los usuarios Security Copilot pueden diseñar agentes mediante cualquiera de los enfoques para la selección de herramientas en función del objetivo del agente. El objetivo también ayuda a informar si el resultado del agente sirve a una persona, equipo u organización. A medida que los agentes se ejecutan con una identidad, el ámbito del resultado y los permisos de la identidad deben alinearse.

Tanto si va a crear un agente de evaluación de prioridad de alertas simple como si está orquestando un sistema multiagente para investigaciones complejas, este artículo proporciona los conocimientos básicos que necesita para trabajar con el marco de Security Copilot agente desde la selección de herramientas y el diseño de manifiestos para desencadenar la configuración y la gobernanza.

Imagen de los componentes del agente en Security Copilot

Instrucciones

Las instrucciones son instrucciones dadas a un agente para definir sus objetivos, informar de su toma de decisiones y detallar su resultado. Por ejemplo, puede indicar a un agente de evaluación de prioridades que se centre en incidentes de gravedad alta o guiar a un agente de datos para que solo extraiga información que siga ciertas reglas. Las instrucciones ayudan a los agentes a mantenerse precisos y coherentes.

Herramienta

Una herramienta (aptitud) son recursos a los que se accede fuera de las instrucciones del agente y LLM que un agente de Security Copilot puede invocar para ayudarle a completar su resultado. Piense en una herramienta como una función en un lenguaje de programación tradicional. Tiene un nombre, algunos argumentos y, cuando se invoca, lleva a cabo una tarea bien definida y devuelve un resultado.

Los usuarios pueden crear las herramientas deseadas que Security Copilot pueden llamar para realizar tareas especializadas o interactuar con sistemas externos.

Por ejemplo:

  • Responder a preguntas de resolución o reputación sobre una entidad que no se ha visto antes, como "¿Quién se registró? www.contoso.com?'

  • Responda a preguntas sobre los datos específicos del cliente, como "El incidente 1234 afecta a qué usuarios?".

  • Interactúe con sistemas externos, como "Restablecer la contraseña de la cuenta para ""testaccount@contoso.com.

  • Recupere conocimientos específicos del cliente de un origen de conocimiento como SharePoint.

Complemento

Colección de herramientas relacionadas que los usuarios pueden habilitar en Security Copilot cuando sean pertinentes para crear nuevas funcionalidades de solicitud, libreta de mensajes o agente. En el caso de los agentes, los complementos amplían lo que un agente puede hacer al concederle acceso a recursos fuera de un agente y LLM. Un ejemplo es un complemento que usa una API para conectarse a un servicio externo, como la búsqueda de reputación, donde las definiciones de herramientas subyacentes para el complemento podrían devolver una puntuación de reputación, malware relacionado, inteligencia sobre amenazas, etc.

Formatos de herramienta

Security Copilot plataforma admite varias formas de crear y hospedar herramientas (aptitudes) para satisfacer diversas necesidades. Puede crear agentes con cualquiera de las aptitudes admitidas. Los formatos de herramienta admitidos son los siguientes:

Formato de herramienta Lo mejor para Caso de uso de ejemplo
API Integración de sistemas externos o internos Automatización de restablecimientos de contraseña, captura de información sobre amenazas desde API, desencadenamiento de flujos de trabajo de corrección
GPT Proporciona definiciones para el procesamiento de lenguaje natural que no están disponibles de forma nativa en los LLM subyacentes. Definiciones específicas del dominio, resumen de incidentes en formatos únicos
KQL Consulta de orígenes de datos de Microsoft (Microsoft Defender, Microsoft Sentinel) Recuperación de registros de inicio de sesión, detección de anomalías
AGENTE Orquestación de flujos de trabajo de varios pasos mediante modelos de lenguaje grande (LLM) y herramientas secundarias Comprenda la situación de hospedaje de una dirección URL, , encadene varias herramientas para su investigación.
MCP Integraciones dinámicas y multiherramientas expuestas por un servidor MCP; Copilot de seguridad detecta herramientas en tiempo de ejecución. Agregar información sobre amenazas o orquestar la corrección en varias herramientas a través del servidor MCP.

Definición del agente

La definición del agente actúa como plano técnico para un agente y es un componente clave del archivo de manifiesto. Es una de las claves de nivel superior del manifiesto y especifica la configuración, las funcionalidades y el comportamiento principales del agente. Especifica:

  • Detalles descriptivos o de metadatos (por ejemplo: nombre, descripción).
  • Definiciones de desencadenador que describen qué eventos hacen que se ejecute el agente.
  • Las herramientas o herramientas asociadas hacen referencia a las que el agente usa para completar su trabajo.

Como desarrollador Security Copilot, las definiciones de agente que cree están disponibles para que los analistas ejecuten y vean los resultados.

Instancia del agente

Una instancia de agente es la versión implementada de una definición de agente dentro de un área de trabajo determinada. Cada instancia:

  • Mantiene su propia identidad o credenciales.
  • Almacena recuerdos y comentarios específicos de la instancia.
  • Varios inquilinos y áreas de trabajo pueden tener su propia instancia de la misma definición de agente. Los cambios de configuración o las actualizaciones de memoria de una instancia no afectan a otras.

Manifiesto

El manifiesto define la definición, la identidad, las herramientas y la lógica operativa del agente en un formato YAML o JSON estructurado. De forma similar a un archivo de configuración en sistemas de software tradicionales, el manifiesto especifica:

  • El propósito y las tareas únicos del agente
  • Directrices generales de funcionamiento
  • Lógica de toma de decisiones
  • Las herramientas que debe invocar
  • Otros agentes a los que puede llamar durante la ejecución

El manifiesto incluye metadatos (definiciones y aptitudes del agente) que el agente puede usar, cómo se agrupan esas aptitudes y qué acciones puede realizar. El archivo de manifiesto se empaqueta e implementa como parte del flujo de trabajo del agente en la plataforma de Security Copilot. Los analistas de SOC interactúan con el agente a través de esta plataforma y el agente responde a los mensajes o eventos en función de la configuración del manifiesto y la lógica de la herramienta.

Nota:

En los ejemplos, el formato YAML se muestra porque es más claro para los seres humanos leer y puede incluir comentarios, pero cualquiera de los formatos funciona igualmente bien. El formato JSON es idéntico al formato YAML, pero en su lugar usa la sintaxis JSON.

YAML del agente

Este es un ejemplo de un archivo de ejemplo 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

El agente sigue un proceso de tres pasos para invocar las aptitudes secundarias:

  • ExtractHostname: usa la herramienta ExtractHostname_DCA-090925 GPT para analizar el nombre de host de la dirección URL.

  • GetDnsResolutionsByIndicators: usa el conjunto de aptitudes de Microsoft Threat Intelligence para recuperar las direcciones IP asociadas al nombre de host. Debe habilitar el complemento en Administrar orígenes > personalizados. Asegúrese de que RequiredSkillsets: ThreatIntelligence.DTI se debe agregar sin qué GetDnsResolutionsByIndicators herramienta no se invoca.

  • lookupIpAddressGeolocation: es en operationId la especificación de OpenAPI, a la que se hace referencia en el complemento DCA_SampleAPIPlugin de API para buscar datos de geolocalización para cada dirección IP. Para obtener referencia, consulte Ejemplo de API de compilación.

Trigger

Un desencadenador es lo que inicia el flujo de trabajo de un agente. Se puede iniciar manualmente o establecerse para ejecutarse según una programación. Una vez activado el desencadenador, el agente sigue su plan y lleva a cabo las acciones automáticamente.

Los agentes operan en función de un plan estructurado de acción y se ejecutan en ese plan. Por ejemplo, un agente de evaluación de prioridades de phishing puede determinar qué herramientas u otros agentes invocar desde su conjunto de funcionalidades preconfiguradas. Las herramientas como FetchSkill y ProcessSkill definidas en el desencadenador sirven como puntos de entrada en el flujo de trabajo del agente que guían la ejecución de la tarea.

En el ejemplo siguiente:

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.Cada 5 minutos, RecentUrlClicks_DCA-090925_1b se invoca para obtener nuevos datos.

2.A continuación, se invoca ProcessSkill URL_Location_DCA_Agent_Entrypoint-090925_1b en cada elemento devuelto para actuar sobre los datos.

Cada uno de estos ciclos es una ejecución de desencadenador y cada llamada a ProcessSkill es una ejecución de desencadenador. Estas invocaciones de aptitud se ejecutan en sesiones asociadas a la instancia y el desencadenador del agente, y usan la identidad asociada del agente.

FetchSkill y ProcessSkill

FetchSkill

Cuando se activa un desencadenador en una ejecución de agente, FetchSkill si está configurado recopila datos. ProcessSkill define cómo actúan los agentes sobre esos datos durante la ejecución. Una vez que se capturan los datos, ProcessSkill toma el control, usando esos datos como entrada para realizar acciones o análisis específicos. Estos dos componentes funcionan conjuntamente para habilitar flujos de trabajo dinámicos controlados por datos. Si se establece el valor FetchSkill, el desencadenador invoca primero FetchSkill.

Importante

El conjunto de aptitudes debe asignar un espacio de nombres a Fetch y ProcessSkills. Deben seguir el formato Skillset name.Skill name.

En el ejemplo de Desencadenadores, Skill name es RecentUrlClicks_DCA. Skillset name es el Descriptor.name (por ejemplo, Contoso.SecurityCopilot.Samples-090925_1b). Por lo tanto, el nombre completo de la aptitud es Contoso.SecurityCopilot.Samples-090925_1b. RecentUrlClicks_DCA.

ProcessSkill

Si se define FetchSkill, para cada objeto de salida se llama a ProcessSkill mediante los valores de salida como entradas para ProcessSkill. Si no se define FetchSkill, se invoca ProcessSkill.

{
    [
        {
            "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"
        }
    ]
}

En el ejemplo, processSkill se llama tres veces con Incident, namey created_at como entradas.

Área de trabajo

Un contenedor para el trabajo. Los agentes funcionan en el contexto de un área de trabajo. El área de trabajo proporciona una unidad de control para el acceso, la configuración, el consumo y el control de datos.

Memoria

La memoria permite a los agentes conservar el contexto entre las interacciones, lo que permite respuestas más inteligentes y personalizadas. Al almacenar información relevante, como acciones pasadas, preferencias de usuario o historial de incidentes, los agentes pueden ofrecer continuidad y mejorar la toma de decisiones a lo largo del tiempo.