Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Важно!
Некоторые сведения относятся к предварительно выпущенному продукту, который может быть существенно изменен перед выпуском. Корпорация Майкрософт не дает никаких гарантий, явных или подразумеваемых, относительно предоставленных здесь сведений.
Для разработки агента Security Copilot и его средств (также называемых навыками) требуется файл манифеста в формате YAML или JSON (например, manifest.yaml). Этот файл определяет метаданные о наборе инструментов (подключаемом модуле) и указывает, как следует вызывать каждое средство.
Манифест агента включает три ключа верхнего уровня, которые являются следующими:
Каждый ключ содержит собственный набор пар вложенных ключей и значений, некоторые из которых являются обязательными или необязательными полями в зависимости от формата инструмента.
В этом справочном руководстве описываются поля манифеста, доступные для разработки Security Copilot агентов.
Агент 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 сборки.
Примеры
См. полный список примеров коллекции.
Пример агента для интерактивного агента см. в разделе Интерактивные агенты.
Синтаксис YAML манифеста
Ниже приведены параметры (поля) манифеста агента для трех ключей верхнего уровня и его подразделов.
Сводка по полю дескриптора
| Поле | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Name |
string | Внутреннее имя набора навыков. Должно быть уникальным именем в рабочей области. | Не разрешает / , \ ? # @; не может содержать пробелы. |
Да |
DisplayName |
string | Понятное имя набора навыков. | Нет* | |
Description |
string | Понятное описание набора навыков. | Не может быть пустым или пустым. | Да |
Authorization |
объект | Задайте значения авторизации. Дополнительные сведения см. в разделе Проверка подлинности . | Нет; Требуется для средства API и SupportedAuthTypes не равен None. |
|
SupportedAuthTypes |
массив | Список поддерживаемых типов проверки подлинности для набора навыков. Дополнительные сведения см. в разделе Проверка подлинности . | Нет; Требуется для средства API |
(* подразумевает рекомендуемые, но не обязательные)
Сводка по полю AgentDefinitions
| Поле | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Name |
string | Имя, используемое для установки агента; | Не может содержать пробелы, точку (.) и не может быть пустой или пустой. | Да |
DisplayName |
string | Понятное имя для отображения пользовательского интерфейса. | Да | |
Description |
string | Удобочитаемая сводка о назначении и функциональности агента. | Да | |
Publisher |
string | Имя издателя агента. | Да | |
Product |
string | Исходный продукт, связанный с агентом. Используется для фильтрации при перечислении определений агентов. | Да | |
RequiredSkillsets |
string | Наборы навыков, необходимые для работы агента. | Да | |
AgentSingleInstanceConstraint |
string | Определяет, где можно развернуть агент. Можно задать значение None, Workspaceили Tenant. - None: нет ограничений. - Workspace: один экземпляр на рабочую область. - Tenant: один экземпляр на клиент. |
Нет | |
Settings |
объект | Применяется только к вызову FetchSkill. | Нет | |
Triggers |
объект | Определяет, как и когда активируется агент. Требуется по крайней мере один триггер. Name: описательное имя триггера. DefaultPeriodSeconds: интервал в секундах для запланированного выполнения. Триггеры не предотвращают одновременные выполнения. Чтобы отключить запланированное выполнение, задайте для этого значения значение 0. FetchSkill: если задано значение , триггер сначала вызывает этот навык (инструмент). Триггер ожидает массив объектов. Для каждого объекта он вызывает ProcessSkill , используя значения объекта в качестве входных данных для ProcessSkill. Распространенным шаблоном будет listAlerts FetchSkill и InvestigateAlertAgent ProcessSkill. Дополнительные сведения об триггере см. в разделе Компоненты агента. |
Name: не может содержать пробелы |
Да; Name и ProcessSkill. |
PromptSkill |
объект | Включите взаимодействие или взаимодействие с агентом в чате. | Да; Применимо только для интерактивных агентов. |
Сводка по полю SkillGroups
Состоит из списка групп навыков, включая Format, Settings и Skills.
| Поле | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Format |
string | Доступные параметры см. в разделе Формат. | Да | |
Skills |
объект | См. раздел Навыки для получения сведений о структуре объекта. | Да; для форматов: GPT, API, KQL, AGENT |
|
Settings |
объект | Структуру объекта см. в разделе Параметры. | Да; для форматов: API, GPT, KQL, AGENT |
Формат (поле SkillGroups)
Параметры поля Format:
Навыки (поле SkillGroups)
Структура объекта для Skills поля:
| Поле | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Name |
string | Внутреннее имя этого средства (навык) | Не может содержать пробелы и точку(.) | Да |
DisplayName |
string | Понятное имя для этого средства. | Рекомендуемый | |
Description |
string | Понятное описание для этого средства | Не может быть пустым или пустым. | Рекомендуемый |
Inputs |
объект | Список имен, описаний и обязательных или необязательных объектов для ввода пользователем средства. | Нет | |
Settings |
объект | Настраиваемые параметры, основанные на формате навыка. | Да | |
ChildSkills |
массив строк | Список имен инструментов, от которые зависит агент или вызывает во время выполнения. Средства выполняют определенные задачи и вызываются агентом для выполнения своих целей. Позволяет создавать цепочку или состав нескольких средств для создания более сложного поведения агента. | Нет; Однако применимо и требуется только для FORMAT: AGENT навыка. |
|
Interfaces |
объект | При создании интерактивного агента задайте значение InteractiveAgent . |
Да | |
SuggestedPrompts |
объект | Prompt: фактический запрос для отображения пользователю (если начальный запрос) или используйте в качестве шаблона для создания предлагаемых запросов. Title: заголовок запроса. Personas: тип persona, с которого выравнивается запрос. IsStarterAgent: для начального запроса задайте значение true. Рекомендация. Задайте для начального и рекомендуемого подсказок максимальное количество предложений в двух предложениях. |
Да; Применимо только для интерактивных агентов.
Title и Personas (требуется только для начальных запросов). |
Параметры (поле SkillGroups)
Структура объекта для Settings поля выглядит следующим образом для поддерживаемых форматов. Примеры навыков (инструментов) см. в разделе Примеры инструментов.
API
| Имя параметра | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
OpenApiSpecUrl |
string | URL-адрес общедоступной спецификации OpenAPI. | Да | |
EndpointUrl |
string | URL-адрес общедоступной конечной точки. | Нет; Укажите, только если вы не хотите использовать сервер API, указанный в спецификации OpenAPI. | |
EndpointUrlSettingName |
string | Настраиваемый параметр для запроса URL-адреса общедоступной конечной точки во время настройки подключаемого модуля. | Нет; Укажите, только если нужно настроить конечную точку API. | |
EnableSkillContextApi |
логический | Установите этот параметр, только если средствам API требуется доступ к API SkillContext. | Нет |
GPT
| Имя параметра | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
ModelName |
string | Выбирает модель GPT для использования. | Должен быть gpt-4.1 | Да |
Template |
string | Шаблон запроса GPT. | Поддерживает до 80 000 символов | Да |
АГЕНТ
| Имя параметра | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Instructions |
string | Руководство или четкие указания, определяющие поведение и миссию агента. Руководство используется для управления ответами агента и обеспечения их соответствия предполагаемому варианту использования. | Обычно написан на естественном языке и включает в себя форматирование, например markdown или комментарии. | Да |
KQL
| Имя параметра | Тип | Описание | Ограничения | Обязательный |
|---|---|---|---|---|
Target |
string | Выберите систему или платформу, на которой выполняется средство. См. раздел Целевые параметры. | Да | |
Template |
string | Шаблон запроса KQL. | Поддерживает до 80 000 символов. | Да, если TemplateUrl параметр не указан. |
TemplateUrl |
string | Общедоступный URL-адрес для скачивания шаблона запроса KQL (до 80 000 символов). | Да. Укажите либо один TemplatUrl из этих вариантов, Template но не оба. |
|
PackageUrl |
string | Общедоступный URL-адрес ZIP-файла с шаблоном запроса KQL. Примечание. Указывается на уровне SkillGroup. | Да, если Template или TemplateUrl не указаны. |
|
TemplateFile |
string | Относительный путь к шаблону запроса KQL (до 80 000 символов) в PackageUrl ZIP-файле. |
Да, если PackageUrl задан параметр . |
LogicApp
| Имя параметра | Тип | Описание | Обязательный |
|---|---|---|---|
SubscriptionId |
string | Microsoft Azure идентификатор подписки из Logic Apps. Подписка должна находиться в том же клиенте, что и клиент пользователя Security Copilot. | Да |
ResourceGroup |
string | Microsoft Azure группу ресурсов из приложения логики, где создается ресурс. | Да |
WorkflowName |
string | Имя ресурса приложения логики. | Да |
TriggerName |
string | Имя триггера, созданного в Logic Apps. | Да |
Параметры целевого объекта
Microsoft Defender
Никаких дополнительных параметров.
Microsoft Sentinel
Эти параметры допустимы для средства KQL, где целевой объект Microsoft Sentinel.
Settings:
Target: Sentinel
# The ID of the AAD Organization that the Sentinel workspace is in.
TenantId: '{{TenantId}}'
# The id of the Azure Subscription that the Sentinel workspace is in.
SubscriptionId: '{{SubscriptionId}}'
# The name of the Resource Group that the Sentinel workspace is in.
ResourceGroupName: '{{ResourceGroupName}}'
# The name of the Sentinel workspace.
WorkspaceName: '{{WorkspaceName}}'
Kusto
Эти параметры допустимы для средства KQL, где целевой объект — Kusto.
Settings:
# The Kusto cluster URL.
Cluster:
# The Kusto database name.
Database:
Проверка подлинности
Security Copilot поддерживает несколько схем проверки подлинности средств. См . раздел Типы проверки подлинности. Примеры различных типов проверки подлинности см. в разделе Подключаемый модуль API.
| Схема | Описание | Поддержка манифеста Copilot | Поддержка OpenAI + |
|---|---|---|---|
None |
Без проверки подлинности | Да | Да |
Basic |
Обычная проверка подлинности | Да | Нет |
ApiKey |
Проверка подлинности на основе ApiKey. ApiKey передается в пользовательском заголовке или параметре запроса. | Да | Да* |
ServiceHttp |
Проверка подлинности на основе предоставленного маркера. | Да | Да |
OAuthAuthorizationCodeFlow |
Поток кода авторизации OAuth 2.0 — это более безопасный и сложный метод проверки подлинности, используемый для предоставления доступа к сторонним приложениям без совместного использования учетных данных пользователя. | Да | Да |
OAuthClientCredentialsFlow |
Аналогично обычной проверке подлинности, но используется для обмена данными между серверами или при доступе к общедоступным данным, для которых не требуются разрешения пользователя. | Да | Нет |
OAuthPasswordGrantFlow |
Устаревший способ обмена учетными данными пользователя на маркер доступа с помощью типа предоставления пароля OAuth 2.0. Больше не рекомендуется. | Да | Нет |
AAD |
доступ только к приложению Microsoft Entra. | Да | Да* |
AADDelegated |
Доступ только для пользователей и Microsoft Entra приложений. | Да | Да* |
+Это поле используется для указания двух разных типов отправки, поддерживаемых в Security Copilot.*Они представляют собой методы проверки подлинности, которые выходят за рамки первоначально поддерживаемых OpenAI.
Типы проверки подлинности
В таблице показаны поддерживаемые параметры для каждого типа проверки подлинности.
| Тип проверки подлинности | Setting | Описание |
|---|---|---|
AAD или AADDelegated |
EntraScopes |
Разделенный запятыми список областей Microsoft Entra для запроса. |
Basic или OAuthPasswordGrantFlow |
Username |
Имя пользователя, используемое для обычной проверки подлинности. |
Password |
Пароль, используемый для обычной проверки подлинности. | |
ApiKey |
Key |
Имя параметра заголовка или запроса. Значение по умолчанию — Authorization, но может быть пользовательским значением. Например, X-ApiKey. |
AuthScheme |
Имя схемы проверки подлинности, которая добавляется к значению при использовании в заголовке. Допустимыми параметрами являются пустая строка, носитель или базовый. | |
Location |
Расположение ключа API, заголовка или QueryParams. Значение по умолчанию — Заголовок. | |
Value |
Используемый ключ или маркер. | |
ServiceHttp |
AccessToken |
Используемый ключ или маркер. Bearer AuthScheme добавляется к маркеру в заголовке запроса авторизации. |
OAuthAuthorizationCodeFlowили OAuthClientCredentialsFlowOAuthPasswordGrantFlow |
TokenEndpoint |
Конечная точка для запроса маркера. |
Scopes |
Необязательный список областей, разделенных запятыми. | |
ClientId |
Идентификатор клиента, используемый при запросе маркера. Необязательный для OAuthPasswordGrantFlow. |
|
ClientSecret |
Секрет клиента, используемый при запросе маркера. Необязательный для OAuthPasswordGrantFlow. |
|
AuthorizationContentType |
Тип контента, используемый при отправке запроса маркера. Значение по умолчанию — application/x-www-form-urlencoded. | |
OAuthAuthorizationCodeFlow |
AuthorizationEndpoint |
Конечная точка для запроса кода авторизации. |