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


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

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

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

Схема JSON

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

Конвенций

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

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

Длина строки

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

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

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

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

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

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

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

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

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

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

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

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

Пример возможностей

{
  "capabilities": [
    {
      "name": "WebSearch"
    },
    {
      "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 String Обязательный. Необходимо указать значение WebSearch.

Объект 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 в организации.
Объект 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, используемый для представления определенной сущности или ресурса.

Совет

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

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

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

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

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

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

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

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

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

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

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

Совет

Инструкции по получению уникального идентификатора для соединителя Microsoft Graph см. в разделе Извлечение идентификаторов возможностей для манифеста декларативного агента.

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

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

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

{
    "$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.0/schema.json",
    "name": "Teams Toolkit declarative copilot",
    "description": "Declarative copilot created with Teams Toolkit",
    "instructions": "You are a repairs expert copilot. 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"
        }
    ],

    "capabilities": [
        {
            "name": "WebSearch"
        },
        {
            "name": "OneDriveAndSharePoint",
            "items_by_url": [
                {
                    "url": "https://contoso.sharepoint.com/sites/ProductSupport"
                }
            ]
        },
        {
            "name": "GraphConnectors",
            "connections": [
                {
                    "connection_id": "foodStore"
                }
            ]
        }
    ]
}