Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Важно!
Некоторые сведения относятся к предварительно выпущенному продукту, который может быть существенно изменен перед выпуском. Корпорация Майкрософт не дает никаких гарантий, явных или подразумеваемых, относительно предоставленных здесь сведений.
В этой статье представлен обзор основных компонентов, определяющих работу пользовательских агентов Security Copilot, которые помогут вам понять их структуру, поведение и операционную логику.
Агент
Агент в Security Copilot — это автономная или полностью автономная вычислительная сущность, которая работает для достижения определенной цели. Она определяется способностью воспринимать окружающую среду и реагировать на нее, принимать решения и производить результаты в соответствии со своей целью. Конструкция агента информирует агента о том, как достичь своей цели, решая, какие возможности следует использовать, будь то модель большого языка (LLM), подключенные инструменты (навыки) или и то, и другое. Решения агента зависят от его входных данных и инструкций, которые могут привести к тому, что агент будет использовать предопределенную логику или побудить LLM интерпретировать эти инструкции и действовать в соответствии с ней.
Агенты активируются с помощью триггера, который создает запуск агента и выполняет каждый шаг (или задачу) до достижения результата. На протяжении всего запуска агента, основываясь на инструкциях, он выбирает между использованием LLM или подключенного средства для выполнения задачи.
Агенты могут взаимодействовать с инструментами, внешними ресурсами за пределами LLM и инструкций агента, используя одну из двух стратегий выбора:
Статический инструмент. Фиксированный набор ресурсов, доступных агенту для вызова , как указано в определении агента, для отдельного шага или всего запуска агента. При определении таким образом LLM в агенте не может принимать решение о вызове каких-либо средств за пределами определенного. Это может повысить скорость и релевантность результатов инструментов. Таким образом можно спроектировать агент аналитики угроз, который должен вызывать предопределенные источники.
Динамический инструмент. Вызовы инструментов выбираются во время запуска агента на основе контекста, аргументирования или входных данных агента. Средства, доступные агенту, можно внедрить во время выполнения. Агенты, которые должны быть реагируют на условия, возникающие при выполнении агента, можно спроектировать таким образом. Например, агент, который обогащает сущность, может выполняться по-разному в зависимости от типа сущности, предоставленного в качестве входных данных для агента.
Разработчики и пользователи Security Copilot могут создавать агенты, используя любой подход к выбору средств на основе цели агента. Цель также помогает сообщить, является ли результат агента для отдельного человека, команды или организации. При запуске агентов с использованием удостоверения область результата и разрешений удостоверения должны быть согласованы.
Независимо от того, создаете ли вы простой агент рассмотрения оповещений или оркестрируете систему с несколькими агентами для сложных исследований, в этой статье содержатся базовые знания, необходимые для работы с платформой агента Security Copilot, от выбора средства и разработки манифеста до активации конфигурации и управления.
Инструкции
Инструкции — это указания, предоставленные агенту для определения своих целей, информирования о принятии решений и детализации результатов. Например, можно указать агенту рассмотрения сосредоточиться на инцидентах с высокой степенью серьезности или указать агенту данных, чтобы он вытягивал только сведения, которые соответствуют определенным правилам. Инструкции помогают агентам сохранять точность и согласованность.
Средство
Инструмент (навык) — это ресурсы, доступ к которым осуществляется за пределами инструкций агента и LLM, которые агент Security Copilot может вызвать для достижения результата. Средство можно рассматривать как функцию в традиционном языке программирования. Он имеет имя, несколько аргументов, а при вызове выполняет четко определенную задачу и возвращает результат.
Пользователи могут создавать нужные средства, которые Security Copilot могут вызывать для выполнения специализированных задач или взаимодействия с внешними системами.
Например:
Ответы на вопросы о разрешении или репутации о сущности, невиданой ранее, например "Кто зарегистрировал"
www.contoso.com?'Ответьте на вопросы о любых данных клиента, таких как "Инцидент 1234 влияет на пользователей?"
Взаимодействие с внешними системами, такими как "Сброс пароля учетной записи для ".testaccount@contoso.com
Получение сведений о конкретных клиентах из источника знаний, например SharePoint.
Подключаемый модуль
Коллекция связанных инструментов, которые пользователи могут включить в Security Copilot, когда это необходимо для создания новых возможностей с запросами, модулями командной строки или агентами. Для агентов подключаемые модули расширяют возможности агента, предоставляя ему доступ к ресурсам за пределами агента и LLM. Примером является подключаемый модуль, который использует API для подключения к внешней службе, например подстановке репутации, где базовые определения инструментов для подключаемого модуля могут возвращать оценку репутации, связанные вредоносные программы, аналитику угроз и т. д.
Форматы инструментов
Security Copilot платформа поддерживает несколько способов создания и размещения инструментов (навыков) в соответствии с различными потребностями. Агенты можно создавать с помощью любого из поддерживаемых навыков. Поддерживаемые форматы инструментов:
| Формат инструмента | Лучше всего подходит для | Пример варианта использования |
|---|---|---|
| API | Интеграция внешних или внутренних систем | Автоматизация сброса пароля, получение intel threat из API, активация рабочих процессов исправления |
| GPT | Предоставляет определения для обработки естественного языка, которые недоступны в собственном коде в базовых LLM. | Определения предметной области, обобщение инцидентов в уникальных форматах |
| KQL | Запрос источников данных Майкрософт (Microsoft Defender, Microsoft Sentinel) | Получение журналов входа, обнаружение аномалий |
| АГЕНТ | Оркестрация многоэтапных рабочих процессов с помощью крупных языковых моделей (LLM) и дочерних средств | Изучите ситуацию размещения URL-адреса , цепочку нескольких инструментов для исследования. |
| MCP | Динамические интеграции с несколькими инструментами, предоставляемые сервером MCP; Copilot безопасности обнаруживает средства во время выполнения. | Агрегирование intel угроз или оркестрация исправления нескольких средств с помощью сервера MCP. |
Определение агента
Определение агента служит схемой для агента и ключевым компонентом файла манифеста. Это один из ключей верхнего уровня в манифесте и определяет базовую конфигурацию, возможности и поведение агента. Он задает следующее:
- Описательные сведения или сведения о метаданных (например, имя, описание).
- Определения триггеров, описывающие, какие события вызывают запуск агента.
- Связанные средства или средства, которые агент использует для завершения своей работы.
Как разработчик Security Copilot, создаваемые определения агентов доступны аналитикам для запуска и просмотра результатов.
Экземпляр агента
Экземпляр агента — это развернутая версия определения агента в определенной рабочей области. Каждый экземпляр:
- Поддерживает собственное удостоверение или учетные данные.
- Хранит воспоминания и отзывы о конкретных экземплярах.
- Несколько клиентов и рабочих областей могут иметь собственные экземпляры одного определения агента. Изменения конфигурации или обновления памяти для одного экземпляра не влияют на другие.
Манифест
Манифест определяет определение агента, удостоверение, средства и операционную логику в структурированном формате YAML или JSON. Как и файл конфигурации в традиционных программных системах, манифест указывает:
- Уникальное назначение и задачи агента
- Общие рекомендации по эксплуатации
- Логика принятия решений
- Средства, которые необходимо вызвать
- Другие агенты, которые он может вызывать во время выполнения
Манифест включает метаданные (определения и навыки агента), которые может использовать агент, способ группировки этих навыков и действия, которые он может выполнять. Файл манифеста упаковается и развертывается как часть рабочего процесса агента на платформе Security Copilot. Аналитики SOC взаимодействуют с агентом через эту платформу, и агент реагирует на запросы или события на основе конфигурации манифеста и логики инструментов.
Примечание.
В примерах указан формат YAML, так как он понятнее для чтения и может включать комментарии, но любой из форматов работает одинаково хорошо. Формат JSON идентичен формату YAML, но вместо этого использует синтаксис JSON.
Агент YAML
Это пример 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
Агент выполняет трехэтапный процесс вызова дочерних навыков:
ExtractHostname: использует средствоExtractHostname_DCA-090925GPT для синтаксического анализа имени узла из URL-адреса.GetDnsResolutionsByIndicators: использует набор навыков Microsoft Threat Intelligence для получения IP-адресов, связанных с именем узла. Необходимо включить подключаемый модуль в разделе Управление источниками > Пользовательский. Убедитесь, чтоRequiredSkillsets: ThreatIntelligence.DTIнеобходимо добавить, без какогоGetDnsResolutionsByIndicatorsсредства не вызывается.lookupIpAddressGeolocation: объектoperationIdв спецификации OpenAPI, на который ссылается подключаемый модульDCA_SampleAPIPluginAPI для поиска данных о географическом расположении для каждого IP-адреса. Дополнительные сведения см. в разделе Пример API сборки.
Триггер
Триггер — это то, что запускает рабочий процесс агента. Его можно запустить вручную или настроить для выполнения по расписанию. После активации триггера агент следует своему плану и выполняет действия автоматически.
Агенты работают на основе структурированного плана действий и выполняют его. Например, агент проверки фишинга может определить, какие средства или другие агенты следует вызывать из набора предварительно настроенных возможностей. Такие средства, как FetchSkill и ProcessSkill, определенные в триггере, служат точками входа в рабочий процесс агента, направляющую выполнение задачи.
В следующем примере:
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.Каждые 5 минут RecentUrlClicks_DCA-090925_1b вызывается для получения новых данных.
2. Затем для каждого возвращаемого элемента вызывается ProcessSkill URL_Location_DCA_Agent_Entrypoint-090925_1b для работы с данными.
Каждый из этих циклов является выполнением триггера, а каждый вызов ProcessSkill является запуском триггера. Эти вызовы навыка выполняются в сеансах, связанных с экземпляром агента и триггером, и используют связанное с агентом удостоверение.
FetchSkill и ProcessSkill
FetchSkill
При активации триггера при запуске агента FetchSkill, если он настроен, собирает данные. ProcessSkill определяет, как агенты действуют с данными во время выполнения. После получения данных ProcessSkill берет на себя, используя эти данные в качестве входных данных для выполнения определенных действий или анализа. Эти два компонента работают в тандеме для включения динамических рабочих процессов, управляемых данными. Если задано значение FetchSkill, триггер сначала вызывает FetchSkill.
Важно!
Fetch и ProcessSkills должны быть разделены по набору навыков. Они должны соответствовать формату Skillset name.Skill name.
В примере для триггеров Skill name имеет значение RecentUrlClicks_DCA. — Skillset name это Descriptor.name (например, Contoso.SecurityCopilot.Samples-090925_1b). Таким образом, полное имя навыка — Contoso.SecurityCopilot.Samples-090925_1b. RecentUrlClicks_DCA.
ProcessSkill
Если определен FetchSkill, для каждого выходного объекта вызывается ProcessSkill, используя выходные значения в качестве входных данных для ProcessSkill. Если FetchSkill не определен, вызывается 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"
}
]
}
В этом примере ProcessSkill вызывается три раза с Incident, nameи created_at в качестве входных данных.
Рабочая область
Контейнер для работы. Агенты работают в контексте рабочей области. Рабочая область предоставляет единицу управления доступом, конфигурацией, потреблением и обработкой данных.
Память
Память позволяет агентам сохранять контекст во всех взаимодействиях, обеспечивая более интеллектуальные и персонализированные ответы. Сохраняя соответствующую информацию, такую как прошлые действия, предпочтения пользователей или журнал инцидентов, агенты могут обеспечить непрерывность и улучшить процесс принятия решений с течением времени.