Поделиться через


Декларативная схема агента 1.4 для Microsoft 365 Copilot

В этой статье описывается схема версии 1.4, используемая манифестом декларативного агента. Манифест — это документ, доступный для машинного чтения, который предоставляет модель большого языка (LLM) с необходимыми инструкциями, знаниями и действиями, чтобы специализироваться на решении определенного набора проблем пользователей. Декларативные манифесты агента ссылаются на манифест приложения Microsoft 365 внутри пакета приложения. Дополнительные сведения см. в справочнике по манифесту приложения Microsoft 365.

Декларативные агенты полезны для понимания и создания текста, подобного человеку, что делает их универсальными для таких задач, как написание и ответы на вопросы. Эта спецификация ориентирована на декларативный манифест агента, который выступает в качестве структурированной платформы для специализации и расширения функциональных возможностей конкретного пользователя.

Изменения предыдущей версии

Эта версия схемы содержит следующие изменения по версии 1.3:

Схема JSON

Схему, описанную в этом документе, можно найти в формате схемы JSONздесь.

Конвенций

Относительные ссылки в URL-адресах

Если не указано иное, все свойства, которые являются URL-адресами, могут быть относительными ссылками. Относительные ссылки в документе манифеста относительно расположения документа манифеста.

Длина строки

Если не указано иное, все строковые свойства должны быть ограничены 4K-символами. Эта длина строки не предоставляет допустимый размер для всего документа. Реализации могут ввести собственные практические ограничения на длину манифеста.

Нераспознанные свойства

Объекты JSON, определенные в этом документе, поддерживают только описанные свойства. Нераспознанные или лишние свойства в любом объекте JSON должны сделать весь документ недействительным.

Локализация строк

Локализуемые строки могут использовать ключ локализации вместо значения литерала. Синтаксис : [[key_name]], где key_name — это имя ключа в свойстве localizationKeys в файлах локализации. Дополнительные сведения о локализации см. в статье Локализация агента.

Объект манифеста декларативного агента

Корень документа манифеста — это объект JSON, который охватывает обязательные поля, возможности, начальные параметры диалога и действия.

Объект манифеста декларативного агента содержит следующие свойства.

Свойство Тип Описание
version String Обязательный. Версия схемы. Необходимо указать значение v1.4.
id Строка Необязательный параметр.
name String Обязательный. Локализуемый. Имя декларативного агента. Он должен содержать по крайней мере один символ nonwhitespace и должен содержать не более 100 символов.
description String Обязательный. Локализуемый. Описание декларативного агента. Он должен содержать по крайней мере один символ nonwhitespace и должен содержать не более 1000 символов.
instructions String Обязательный. Подробные инструкции или рекомендации о том, как должен вести себя декларативный агент, его функции и любые действия, которые следует избежать. Он должен содержать по крайней мере один символ nonwhitespace и должен содержать не более 8000 символов.
capabilities Массив объекта Capabilities Необязательный параметр. Содержит массив объектов, определяющих возможности декларативного агента. В массиве не должно быть более одного производного типа объекта Capabilities .
conversation_starters Массив начального объекта Conversation Необязательный параметр. Заголовок и текст локализуются. Список примеров вопросов, на которые может ответить декларативный агент. В массиве не должно быть более 12 объектов.
actions Массив объекта Action Необязательный параметр. Список объектов, определяющих подключаемые модули API , предоставляющие действия, доступные декларативному агенту.
behavior_overrides Поведение переопределяет объект Необязательный параметр. Содержит параметры конфигурации, изменяющие поведение агента.

Пример объекта манифеста декларативного агента

Следующий код является примером обязательных полей в манифесте декларативного агента.

{
  "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 объекта манифеста декларативного агента. Возможные типы объектов:

Примечание.

Декларативные агенты с любыми возможностями, кроме поиска в Интернете, доступны только пользователям в клиентах, которые разрешают лимитное использование, или клиентам с лицензией на Microsoft 365 Copilot.

Пример объекта 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 String Обязательный. Необходимо указать значение WebSearch.
sites Массив объекта Site Необязательный параметр. Массив объектов, определяющих сайты, которые агенту разрешено искать. Если это свойство опущено, всем агентам разрешено выполнять поиск по всем сайтам. Массив не должен содержать более четырех элементов.

Примечание.

Дополнительные сведения о данных, конфиденциальности и безопасности для поиска в Интернете в Microsoft 365 Copilot Chat и Microsoft 365 Copilot см. в статье Данные, конфиденциальность и безопасность для поиска в Интернете.

Объект сайта

Указывает сайт, на котором декларативный агент может искать содержимое.

Объект сайта содержит следующие свойства.

Свойство Тип Описание
url String Обязательный. Абсолютный URL-адрес сайта для поиска содержимого. URL-адрес не должен содержать более двух сегментов пути (например, https://contoso.com/projects/mark-8 является допустимым, https://contoso.com/projects/mark-8/beta-program недопустимым). URL-адрес не должен содержать параметры запроса.

Объект OneDrive и SharePoint

Указывает, что декларативный агент может искать в SharePoint и OneDrive пользователя на наличие сведений о заземлениях.

Объекты OneDrive и SharePoint содержат следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение OneDriveAndSharePoint.
items_by_sharepoint_ids Массив элементов по идентификаторам SharePoint Необязательный параметр. Массив объектов, определяющих источники SharePoint или OneDrive с помощью идентификаторов. Если свойства items_by_sharepoint_ids и свойства опущены items_by_url , декларативному агенту будут доступны все источники OneDrive и Sharepoint в организации.
items_by_url Массив элементов по объекту URL-адреса Необязательный параметр. Массив объектов, определяющих источники SharePoint или OneDrive по URL-адресу. Если свойства items_by_sharepoint_ids и свойства опущены items_by_url , декларативному агенту будут доступны все источники OneDrive и Sharepoint в организации.

Сведения об оптимизации содержимого SharePoint для Copilot см. в статье Оптимизация извлечения содержимого SharePoint.

Объект Items by SharePoint IDs

Объект items by SharePoint IDs содержит следующие свойства.

Свойство Тип Описание
site_id String Необязательный параметр. Уникальный идентификатор GUID для сайта SharePoint или OneDrive.
web_id String Необязательный параметр. Уникальный идентификатор GUID для определенного веб-сайта SharePoint или OneDrive.
list_id String Необязательный параметр. Уникальный идентификатор GUID для списка на сайте SharePoint или OneDrive.
unique_id String Необязательный параметр. Уникальный идентификатор GUID, используемый для представления определенной сущности или ресурса.
search_associated_sites Boolean Необязательное свойство. Указывает, следует ли включать поиск связанных сайтов. Это значение применимо только в том случае, site_id если оно ссылается на сайт SharePoint HubSite.
part_type String Необязательный параметр. Указывает тип части part_id , на который ссылается. Это значение применимо только при part_id наличии значения. Возможные значения: OneNotePart.
part_id String Необязательный параметр. Уникальный идентификатор GUID, используемый для представления части элемента SharePoint, например страницы OneNote.

Совет

Сведения о том, как получить уникальные идентификаторы для ресурса SharePoint или OneDrive, см. в статье Извлечение идентификаторов возможностей для манифеста декларативного агента.

Элементы по объекту URL-адреса

Объект items by URL содержит следующие свойства.

Свойство Тип Описание
url String Необязательный параметр. Абсолютный URL-адрес ресурса SharePoint или OneDrive.

Объект соединителей Copilot

Указывает, что декларативный агент может искать сведения о заземлениях выбранных соединителей Copilot.

Объект Соединители Copilot содержит следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение GraphConnectors.
connections Массив объекта Connection Необязательный параметр. Массив объектов, определяющих соединители Copilot, доступные декларативному агенту. Если это свойство опущено, декларативному агенту доступны все соединители Copilot в организации.
Объект Connection

Определяет соединитель Copilot.

Объект connection содержит следующие свойства.

Свойство Тип Описание
connection_id String Обязательный. Уникальный идентификатор соединителя Copilot.
additional_search_terms String Необязательный параметр. Запрос языка ключевых слов (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

Указывает, что декларативный агент может выполнять поиск данных из таблиц в Microsoft Dataverse.

Объект Dataverse содержит следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение Dataverse.
knowledge_sources Массив источников знаний Необязательный параметр. Массив объектов, содержащий идентификаторы, навыки и имена таблиц для экземпляров Dataverse, которые необходимо включить в качестве знаний.
Объект источников знаний

Содержит сведения об экземплярах Dataverse для включения в качестве знаний.

Объект источников знаний содержит следующие свойства.

Свойство Тип Описание
host_name String Обязательный. Уникальный идентификатор узла в Dataverse.
skill String Уникальный идентификатор, определяющий конфигурацию взаимодействия агента с знаниями Dataverse.
tables Массив таблиц Массив таблиц для область знаний агента.
Объект Tables

Содержит таблицы для область знаний агента.

Объект tables содержит следующее свойство.

Свойство Тип Описание
table String Обязательный. Уникальный идентификатор таблицы.

Объект teams messages

Указывает, что декларативный агент может выполнять поиск по каналам Teams, командам, собраниям, чатам 1:1 и групповым чатам.

Объект Teams messages содержит следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение TeamsMessages.
urls Массив URL-адресов Teams Необязательный параметр. Массив объектов, определяющих URL-адреса каналов Teams, чатов собраний, групповых чатов или чатов 1:1, доступных декларативному агенту. В массиве не должно быть более пяти объектов. Пропуск этого свойства позволяет выполнять поиск без проверки по всем каналам, собраниям, чатам 1:1 и групповым чатам.
Объект URL-адреса Teams

Определяет канал Teams, команду или чат для собраний.

Объект URL-адреса Teams содержит следующие свойства.

Свойство Тип Описание
url String Обязательный. Хорошо отформатированный URL-адрес Teams, который ссылается на канал Teams, чат собрания, групповой чат или чат 1:1.

Объект Email

Указывает, что декларативный агент может выполнять поиск сообщений электронной почты в почтовых ящиках, к которым у пользователя есть доступ.

Объект email содержит следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение Email.
shared_mailbox Строка Необязательный параметр. SMTP-адрес общего почтового ящика.
folders String Необязательный параметр. Массив объектов folder_id .
Объект Folders

Содержит папки для область знаний агента.

Объект folders содержит следующее свойство.

Свойство Тип Описание
folder_id String Обязательный. Известное имя папки или идентификатор папки для ссылки.

Объект пользователя

Указывает, что декларативный агент может искать сведения о людях в организации.

Объект people содержит следующее свойство.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение People.

Объект моделей сценариев

Указывает, что декларативный агент может использовать модели для конкретных задач.

Объект моделей сценариев содержит следующие свойства.

Свойство Тип Описание
name String Обязательный. Необходимо указать значение ScenarioModels.
models Массив объекта Model Обязательно. Массив объектов, определяющий модели для конкретных задач, доступные декларативному агенту.
Объект Model

Определяет модель для конкретной задачи.

Объект модели содержит следующее свойство.

Свойство Тип Описание
id String Обязательный. Уникальный идентификатор модели.

Начальный объект 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

{
  "actions": [
    {
      "id": "repairsPlugin",
      "file": "plugin.json"
    }
  ]
}

Поведение переопределяет объект

Необязательный объект JSON, содержащий параметры конфигурации, которые переопределяют поведение агента.

Поведение переопределяет объект, содержащий следующие свойства.

Свойство Тип Описание
suggestions Объект Suggestions Необязательный параметр. Содержит параметры конфигурации для функции предложений.
special_instructions Объект специальных инструкций Необязательный параметр. Содержит параметры для внедрения специальных инструкций в запрос.

Объект Suggestions

Необязательный объект JSON, содержащий параметры конфигурации для функции предложений.

Объект suggestions содержит следующее свойство.

Свойство Тип Описание
disabled Логический Обязательно. Если задано значение true, функция предложений будет отключена. Значение по умолчанию — false.

Объект специальных инструкций

Необязательный объект JSON, содержащий параметры для внедрения специальных инструкций в запрос.

Объект disclaimer содержит следующее свойство.

Свойство Тип Описание
discourage_model_knowledge Логический Обязательно. Если задано значение true, агент не рекомендуется использовать знания модели при создании ответов. Значение по умолчанию — false.

Пример манифеста декларативного агента

В следующем примере показан файл манифеста декларативного агента, который использует большинство свойств манифеста, описанных в этой статье.

{
  "$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.4/schema.json",
  "version": "v1.4",
  "name": "Teams Toolkit declarative agent",
  "description": "Declarative agent created with Teams 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 Teams Toolkit?"
    },
    {
      "title": "Getting Help",
      "text": "How can I get help with Teams Toolkit?"
    }
  ],
  "actions": [
    {
      "id": "repairsPlugin",
      "file": "repairs-hub-api-plugin.json"
    }
  ],
  "behavior_overrides": {
    "suggestions": {
      "disabled": true
    },
    "special_instructions": {
      "discourage_model_knowledge": true
    }
  },
  "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": "[email protected]",
      "folders": [
        {
         "folder_id": "inbox"
        }
      ]
    },
    {
      "name": "People"
    },
    {
      "name": "ScenarioModels",
      "models": [
        {
          "id": "model_id"
        }
      ]
    }
  ]
}