Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
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 herramientaExtractHostname_DCA-090925GPT 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 queRequiredSkillsets: ThreatIntelligence.DTIse debe agregar sin quéGetDnsResolutionsByIndicatorsherramienta no se invoca.lookupIpAddressGeolocation: es enoperationIdla especificación de OpenAPI, a la que se hace referencia en el complementoDCA_SampleAPIPluginde 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.