Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается схема версии 1.5, используемая манифестом декларативного агента. Манифест — это документ, доступный для машинного чтения, который предоставляет модель большого языка (LLM) с необходимыми инструкциями, знаниями и действиями, чтобы специализироваться на решении определенного набора проблем пользователей. Манифест приложения Microsoft 365 ссылается на декларативные манифесты агента внутри пакета приложения. Дополнительные сведения см. в справочнике по манифесту приложения Microsoft 365.
Важно!
Последняя версия схемы манифеста декларативного агента — версия 1.6. Мы рекомендуем новым агентам использовать последнюю версию схемы.
Декларативные агенты полезны для понимания и создания текста, подобного человеку, что делает их универсальными для таких задач, как написание и ответы на вопросы. В этой спецификации основное внимание уделяется декларативному манифесту агента, который выступает в качестве структурированной платформы для специализации и расширения функциональных возможностей конкретного пользователя.
Изменения предыдущей версии
Эта версия схемы содержит следующие изменения по версии 1.4:
- Добавлена возможность собраний в список
capabilities, которая позволяет агентам искать собрания в организации.
Схема JSON
Схему, описанную в этом документе, можно найти в формате схемы JSONздесь.
Конвенций
Относительные ссылки в URL-адресах
Если не указано иное, все свойства, которые являются URL-адресами, могут быть относительными ссылками. Относительные ссылки в документе манифеста относятся к расположению документа манифеста.
Длина строки
Если не указано иное, ограничьте все свойства строки 4000 символами. Эта длина строки не задает допустимый размер для всех строковых свойств в документе. Реализации могут устанавливать собственные практические ограничения на длину манифеста.
Нераспознанные свойства
Объекты JSON, определенные в этом документе, поддерживают только описанные свойства. Нераспознанные или посторонние свойства в любом объекте JSON делают весь документ недействительным.
Локализация строк
Локализуемые строки могут использовать ключ локализации вместо значения литерала. Синтаксис : [[key_name]], где key_name — это имя ключа в свойстве localizationKeys в файлах локализации. Дополнительные сведения о локализации см. в статье Локализация агента.
Объект манифеста декларативного агента
Корень документа манифеста — это объект JSON, который охватывает обязательные поля, возможности, начальные параметры диалога и действия.
Объект манифеста декларативного агента содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
version |
String | Обязательный. Версия схемы. Установите значение v1.5. |
id |
String | Необязательный параметр. |
name |
String | Обязательный. Локализуемые. Имя декларативного агента. Он должен содержать по крайней мере один символ nonwhitespace и содержать не более 100 символов. |
description |
String | Обязательный. Локализуемые. Описание декларативного агента. Он должен содержать по крайней мере один символ nonwhitespace и содержать не более 1000 символов. |
instructions |
String | Обязательный. Подробные инструкции или рекомендации о том, как должен вести себя декларативный агент, его функции и любые действия, которые следует избежать. Он должен содержать по крайней мере один символ nonwhitespace и содержать не более 8000 символов. |
capabilities |
Массив объекта Capabilities | Необязательный параметр. Содержит массив объектов, определяющих возможности декларативного агента. Массив не может содержать более одного из каждого производного типа объекта Capabilities. |
conversation_starters |
Массив начального объекта Conversation | Необязательный параметр. Заголовок и текст локализуются. Список примеров вопросов, на которые может ответить декларативный агент. Массив не может содержать более 12 объектов. |
actions |
Массив объекта Action | Необязательный параметр. Список объектов, определяющих подключаемые модули , предоставляющие действия, доступные декларативному агенту. |
behavior_overrides |
Поведение переопределяет объект | Необязательный параметр. Содержит параметры конфигурации, изменяющие поведение агента. |
disclaimer |
Объект "Отказ от ответственности" | Необязательный параметр. Текст заявления об отказе от ответственности, отображаемый пользователю в начале беседы. |
Пример объекта манифеста декларативного агента
В следующем коде показан пример обязательных полей в манифесте декларативного агента.
{
"name" : "Repairs agent",
"description": "This declarative agent is meant to help track any tickets and repairs",
"instructions": "This declarative agent needs to look at my Service Now and Jira tickets/instances to help me keep track of open items"
}
Объект Capabilities
Объект capabilities является базовым типом для объектов в свойстве capabilities объекта манифеста декларативного агента. Возможные типы объектов:
- Объект веб-поиска
- Объект #REF! и #REF!
- Объект соединителей Copilot
- Графический арт-объект
- Объект интерпретатора кода
- Объект Dataverse
- Объект сообщений #REF!
- Объект Email
- Объект пользователя
- Объект моделей сценариев
- Объект Meetings
Примечание.
Пользователи могут получить доступ к декларативным агентам с любыми возможностями, кроме поиска в Интернете, только если их клиенты разрешают лимитное использование или если у них есть лицензия на #REF!.
Пример объекта Capabilities
{
"capabilities": [
{
"name": "WebSearch",
"sites": [
{
"url": "https://contoso.com"
}
]
},
{
"name": "OneDriveAndSharePoint",
"items_by_sharepoint_ids": [
{
"site_id": "bc54a8cc-8c2e-4e62-99cf-660b3594bbfd",
"web_id": "a5377427-f041-49b5-a2e9-0d58f4343939",
"list_id": "78A4158C-D2E0-4708-A07D-EE751111E462",
"unique_id": "304fcfdf-8842-434d-a56f-44a1e54fbed2"
}
],
"items_by_url": [
{
"url": "https://contoso.sharepoint.com/teams/admins/Documents/Folders1"
}
]
},
{
"name": "GraphConnectors",
"connections": [
{
"connection_id": "jiraTickets"
}
]
},
{
"name": "GraphicArt"
},
{
"name": "CodeInterpreter"
},
{
"name": "Dataverse",
"knowledge_sources": [
{
"host_name": "organization.crm.dynamics.com",
"skill": "DVCopilotSkillName",
"tables": [
{
"table_name": "account"
},
{
"table_name": "opportunity"
}
]
}
]
},
{
"name": "TeamsMessages",
"urls": [
{
"url": "https://teams.microsoft.com/l/channel/19%3ApO0102YGEBRSH6RziXCxEgB4mtb7-5hIlDzAjtxs_dg1%40thread.tacv2/G%C3%A9n%C3%A9ral?groupId=2670cf94-acf5-48f4-96d4-c58dd8937afc&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47"
}
]
},
{
"name": "People"
},
{
"name": "ScenarioModels",
"models": [
{
"id": "model_id"
}
]
},
{
"name": "Meetings"
}
]
}
Объект веб-поиска
Указывает, что декларативный агент может искать в Интернете заземляющую информацию.
Объект веб-поиска содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение WebSearch. |
sites |
Массив объекта Site | Необязательный параметр. Массив объектов, определяющих сайты, которые агенту разрешено искать. Если опустить это свойство, агент может выполнять поиск по всем сайтам. Массив не может содержать более четырех элементов. |
Примечание.
Дополнительные сведения о данных, конфиденциальности и безопасности для поиска в Интернете в #REF! и #REF! см. в статье Данные, конфиденциальность и безопасность для поиска в Интернете.
Объект сайта
Указывает сайт, на котором декларативный агент может искать содержимое.
Объект сайта содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
url |
String | Обязательный. Абсолютный URL-адрес сайта для поиска содержимого. URL-адрес не может содержать более двух сегментов пути (например, https://contoso.com/projects/mark-8 является допустимым, но https://contoso.com/projects/mark-8/beta-program недопустимым). URL-адрес не может содержать параметры запроса. |
Объект #REF! и #REF!
Указывает, что декларативный агент может искать в #REF! и #REF! пользователя на наличие сведений о заземлениях.
Объекты #REF! и #REF! содержат следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение OneDriveAndSharePoint. |
items_by_sharepoint_ids |
Массив элементов по идентификаторам #REF! | Необязательный параметр. Массив объектов, определяющих источники #REF! или #REF! с помощью идентификаторов. Если опустить свойства items_by_sharepoint_ids и items_by_url , декларативный агент может получить доступ ко всем источникам #REF! и #REF! в организации. |
items_by_url |
Массив элементов по объекту URL-адреса | Необязательный параметр. Массив объектов, определяющих источники #REF! или #REF! по URL-адресу. Если опустить свойства items_by_sharepoint_ids и items_by_url , декларативный агент может получить доступ ко всем источникам #REF! и #REF! в организации. |
Сведения об оптимизации содержимого #REF! для Copilot см. в статье Оптимизация извлечения содержимого #REF!.
Объект Items by #REF! IDs
Объект items by #REF! IDs содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
site_id |
String | Необязательный параметр. Уникальный идентификатор GUID для сайта #REF! или #REF!. |
web_id |
String | Необязательный параметр. Уникальный идентификатор GUID для определенного веб-сайта #REF! или #REF!. |
list_id |
String | Необязательный параметр. Уникальный идентификатор GUID для библиотеки документов на сайте #REF!. |
unique_id |
String | Необязательный параметр. Уникальный идентификатор GUID, используемый для область папку или файл в библиотеке документов, указанной свойством list_id . |
search_associated_sites |
Boolean | Необязательное свойство. Указывает, следует ли включать поиск связанных сайтов. Это значение применимо только в том случае, site_id если оно ссылается на сайт #REF! HubSite. |
part_type |
String | Необязательный параметр. Указывает тип части part_id , на который ссылается. Это значение применимо только при part_id наличии значения. Возможные значения: OneNotePart. |
part_id |
String | Необязательный параметр. Уникальный идентификатор GUID, используемый для представления части элемента #REF!, например страницы #REF!. |
Совет
Сведения о том, как получить уникальные идентификаторы для ресурса #REF! или #REF!, см. в статье Извлечение идентификаторов возможностей для манифеста декларативного агента.
Элементы по объекту URL-адреса
Объект items by URL содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
url |
String | Необязательный параметр. Абсолютный URL-адрес ресурса #REF! или #REF!. |
Объект соединителей Copilot
Указывает, что декларативный агент может искать сведения о заземлениях выбранных соединителей Copilot.
Объект Соединители Copilot содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение GraphConnectors. |
connections |
Массив объекта Connection | Необязательный параметр. Массив объектов, определяющих соединители Copilot, доступные декларативному агенту. Если опустить это свойство, декларативный агент может получить доступ ко всем соединителям Copilot в организации. |
Объект Connection
Определяет соединитель Copilot.
Объект connection содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
connection_id |
String | Обязательный. Уникальный идентификатор соединителя Copilot. |
additional_search_terms |
String | Необязательный параметр. Запрос язык KeyQL (KQL) для фильтрации элементов на основе полей в схеме подключения. |
items_by_external_id |
Массив объекта идентификатора элемента | Необязательный параметр. Указывает определенные элементы по идентификатору в соединителе Copilot, доступные агенту. |
items_by_path |
Массив объекта Path | Необязательный параметр. Фильтрует элементы, доступные агенту, по путям элементов (семантическаяitemPath метка элементов). |
items_by_container_name |
Массив объекта "Имя контейнера" | Необязательный параметр. Фильтрует элементы, доступные агенту, по имени контейнера (семантическая containerName метка элементов). |
items_by_container_url |
Массив объекта URL-адреса контейнера | Необязательный параметр. Фильтрует элементы, доступные агенту, по URL-адресу контейнера (семантическая containerUrl метка элементов). |
Совет
Инструкции по получению уникального идентификатора для соединителя Copilot см. в разделе Извлечение идентификаторов возможностей для манифеста декларативного агента.
Объект идентификатора элемента
Определяет внешний элемент по его идентификатору.
Объект идентификатора элемента содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
item_id |
String | Обязательный. Уникальный идентификатор внешнего элемента. |
Объект Path
Определяет внешний элемент по пути к нему.
Объект path содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
path |
String | Обязательный. Путь (itemPath значение семантической метки) внешнего элемента. |
Объект имени контейнера
Определяет контейнер по его имени.
Объект имени контейнера содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
container_name |
String | Обязательный. Имя контейнера (containerName значение семантической метки) внешнего элемента. |
Объект URL-адреса контейнера
Определяет контейнер по ЕГО URL-адресу.
Объект URL-адреса контейнера содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
container_url |
String | Обязательный. URL-адрес контейнера (containerUrl значение семантической метки) внешнего элемента. |
Графический арт-объект
Указывает, что декларативный агент может создавать изображения и рисунки на основе текстового ввода от пользователя. Дополнительные сведения см. в разделе Генератор изображений.
Графический арт-объект содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Установите значение GraphicArt. |
Объект интерпретатора кода
Указывает, что декларативный агент может создавать и выполнять код Python для решения сложных математических задач, анализа данных, создания визуализаций и многого другого. Дополнительные сведения см. в разделе Интерпретатор кода.
Объект интерпретатора кода содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Установите значение CodeInterpreter. |
Объект Dataverse
Указывает, что декларативный агент может выполнять поиск данных из таблиц в Dataverse.
Объект Dataverse содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение Dataverse. |
knowledge_sources |
Массив источников знаний | Необязательный параметр. Массив объектов, содержащий идентификаторы, навыки и имена таблиц для экземпляров Dataverse, которые необходимо включить в качестве знаний. |
Объект источников знаний
Содержит сведения об экземплярах Dataverse для включения в качестве знаний.
Объект источников знаний содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
host_name |
String | Обязательный. Уникальный идентификатор узла в Dataverse. |
skill |
String | Уникальный идентификатор, определяющий конфигурацию взаимодействия агента с знаниями Dataverse. |
tables |
Массив таблиц | Массив таблиц для область знаний агента. |
Чтобы найти уникальный skill идентификатор для источников знаний Dataverse, которые необходимо включить:
- В Copilot Studio в области слева выберите Агенты>Copilot для Microsoft 365 и нажмите кнопку Добавить, чтобы создать новый агент.
- Следуйте инструкциям в разделе Добавление источника знаний Dataverse , чтобы добавить знания Dataverse.
- Выберите Опубликовать, а затем скачайте файл .zip.
- Распакуть и открыть файл declarativeAgent.json.
- Значение
skillвключается вknowledge_sourcesраздел, как показано в следующем примере.
{
"name": "Dataverse",
"knowledge_sources": [
{
"host_name": "org0f612cfc.crm.dynamics.com",
"skill": "AIBuilderFileAttachedData_e7eTReDbkX_1t4X1oGoCF",
"tables": [
{
"table_name": "msdyn_aibfileattacheddata"
}
]
}
]
}
Объект Tables
Содержит таблицы для область знаний агента.
Объект tables содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
table_name |
String | Обязательный. Уникальный идентификатор таблицы. |
Объект сообщений #REF!
Указывает, что декларативный агент может выполнять поиск по каналам #REF!, командам, собраниям, чатам 1:1 и групповым чатам.
Объект сообщений #REF! содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение TeamsMessages. |
urls |
Массив URL-адресов #REF! | Необязательный параметр. Массив объектов, определяющих URL-адреса каналов #REF!, чатов собраний, групповых чатов или чатов 1:1, доступных декларативному агенту. Массив не может содержать более пяти объектов. Пропуск этого свойства позволяет выполнять поиск без проверки по всем каналам, собраниям, чатам 1:1 и групповым чатам. |
Объект URL-адреса #REF!
Определяет канал #REF!, команду или чат для собраний.
Объект URL-адреса #REF! содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
url |
String | Обязательный. Хорошо отформатированный URL-адрес #REF!, который ссылается на канал #REF!, чат собрания, групповой чат или чат 1:1. |
Объект Email
Указывает, что декларативный агент может выполнять поиск сообщений электронной почты в почтовых ящиках, к которым у пользователя есть доступ.
Объект email содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение Email. |
shared_mailbox |
Строка | Необязательный параметр. SMTP-адрес общего почтового ящика. |
folders |
Массив папок | Необязательный параметр. При наличии агенту доступны только сообщения электронной почты в указанных папках. |
Объект Folders
Содержит папки для область знаний агента.
Объект folders содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
folder_id |
String | Обязательный. Известное имя папки или идентификатор папки для ссылки. |
Объект пользователя
Указывает, что декларативный агент может искать сведения о людях в организации.
Объект people содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение People. |
Объект моделей сценариев
Указывает, что декларативный агент может использовать модели для конкретных задач.
Объект моделей сценариев содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение ScenarioModels. |
models |
Массив объекта Model | Обязательно. Массив объектов, определяющий модели для конкретных задач, доступные декларативному агенту. |
Объект Model
Определяет модель для конкретной задачи.
Объект модели содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
id |
String | Обязательный. Уникальный идентификатор модели. |
Объект Meetings
Указывает, что декларативный агент может искать сведения о собраниях в организации.
Объект meetings содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
name |
String | Обязательный. Необходимо указать значение Meetings. |
Начальный объект conversation
Объект starters диалога является необязательным в манифесте. Он содержит подсказки, которые агент отображает пользователю, чтобы показать, как начать работу с декларативным агентом.
Начальный объект диалога содержит следующие свойства:
| Свойство | Тип | Описание |
|---|---|---|
text |
String | Обязательный. Локализуемые. Предложение, которое пользователь может использовать для получения желаемого результата от декларативного агента. Он должен содержать по крайней мере один символ nonwhitespace. |
title |
String | Необязательный параметр. Локализуемые. Уникальное название для начала беседы. Он должен содержать по крайней мере один символ nonwhitespace. |
Пример начального объекта conversation
{
"conversation_starters": [
{
"title": "My Open Repairs",
"text": "What open repairs are assigned to me?"
}
]
}
Объект Actions
Actions — это необязательный объект JSON в манифесте. Они выступают в качестве входных данных для разработчиков и могут рассматриваться как подключаемые модули.
Объект действия содержит следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
id |
String | Обязательный. Уникальный идентификатор действия. Это может быть GUID. |
file |
String | Обязательный. Путь к манифесту подключаемого модуля API для этого действия. |
Пример объекта Actions
Поведение переопределяет объект
Необязательный объект JSON, содержащий параметры конфигурации, которые переопределяют поведение агента.
Поведение переопределяет объект, содержащий следующие свойства.
| Свойство | Тип | Описание |
|---|---|---|
suggestions |
Объект Suggestions | Необязательный параметр. Содержит параметры конфигурации для функции предложений. |
special_instructions |
Объект специальных инструкций | Необязательный параметр. Содержит параметры для внедрения специальных инструкций в запрос. |
Объект Suggestions
Необязательный объект JSON, содержащий параметры конфигурации для функции предложений.
Объект suggestions содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
disabled |
Логический | Обязательно. Если задано значение true, функция предложений отключена. Значение по умолчанию — false. |
Объект специальных инструкций
Необязательный объект JSON, содержащий параметры для внедрения специальных инструкций в запрос.
Объект специальных инструкций содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
discourage_model_knowledge |
Логический | Обязательно. Если задано значение true, агент не использует знания модели при создании ответов. Значение по умолчанию — false. |
Объект "Отказ от ответственности"
Заявление об отказе — это необязательный объект JSON в манифесте, указывающий текст заявления об отказе. Агент отображает этот текст пользователю в начале беседы.
Объект disclaimer содержит следующее свойство.
| Свойство | Тип | Описание |
|---|---|---|
text |
String | Обязательный. Текст заявления об отказе. Значение должно содержать по крайней мере один символ, отличный от пробелов, и не должно превышать 500 символов. |
Пример манифеста декларативного агента
В следующем примере показан файл манифеста декларативного агента, который использует большинство свойств манифеста, описанных в этой статье.
{
"$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.5/schema.json",
"version": "v1.5",
"name": "Agents Toolkit declarative agent",
"description": "Declarative agent created with Agents Toolkit",
"instructions": "You are a repairs expert agent. With the response from the listRepairs function, you **must** create a poem out of the repairs listed and always include their title and the assigned person. The poem **must** not use the quote markdown and use regular text. If the user is asking to create a new repair, use the createRepair function and do not add poems.",
"conversation_starters": [
{
"title": "Getting Started",
"text": "How can I get started with Agents Toolkit?"
},
{
"title": "Getting Help",
"text": "How can I get help with Agents Toolkit?"
}
],
"actions": [
{
"id": "repairsPlugin",
"file": "repairs-hub-api-plugin.json"
}
],
"behavior_overrides": {
"suggestions": {
"disabled": true
},
"special_instructions": {
"discourage_model_knowledge": true
}
},
"disclaimer": {
"text": "This declarative agent is a fictional example. You should not take it seriously."
},
"capabilities": [
{
"name": "WebSearch",
"sites": [
{
"url": "https://contoso.com/projects/mark-8"
}
]
},
{
"name": "OneDriveAndSharePoint",
"items_by_url": [
{
"url": "https://contoso.sharepoint.com/sites/ProductSupport"
}
]
},
{
"name": "GraphConnectors",
"connections": [
{
"connection_id": "foodStore"
}
]
},
{
"name": "GraphicArt"
},
{
"name": "CodeInterpreter"
},
{
"name": "Dataverse",
"knowledge_sources": [
{
"host_name": "organization.crm.dynamics.com",
"skill": "DVCopilotSkillName",
"tables": [
{
"table_name": "account"
},
{
"table_name": "opportunity"
}
]
}
]
},
{
"name": "TeamsMessages",
"urls": [
{
"url": "https://teams.microsoft.com/l/channel/19%3ApO0102YGEBRSH6RziXCxEgB4mtb7-5hIlDzAjtxs_dg1%40thread.tacv2/G%C3%A9n%C3%A9ral?groupId=2670cf94-acf5-48f4-96d4-c58dd8937afc&tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47"
}
]
},
{
"name": "Email",
"shared_mailbox": "sample@service.microsoft.com",
"folders": [
{
"folder_id": "inbox"
}
]
},
{
"name": "People"
},
{
"name": "ScenarioModels",
"models": [
{
"id": "model_id"
}
]
},
{
"name": "Meetings"
}
]
}