Возможности декларативного агента в TypeSpec для Microsoft 365 Copilot

TypeSpec для Microsoft 365 Copilot предоставляет встроенные возможности, позволяющие декларативным агентам получать доступ к службам Microsoft 365 и внешним ресурсам. Доступные возможности: CodeInterpreter, CopilotConnectors, Dataverse, Email, GraphicArt, Meetings, OneDriveAndSharePoint, Люди, ScenarioModels, TeamsMessages и WebSearch. Для каждой возможности можно настроить определенные параметры для управления область.

Возможность Описание
CodeInterpreter Создание и выполнение кода Python для решения математических задач, анализа данных и создания визуализаций.
CopilotConnectors Выполните поиск выбранных соединителей Microsoft 365 Copilot для получения сведений о заземлениях.
Dataverse Поиск сведений в средах и таблицах Microsoft Dataverse.
Электронная почта Поиск сообщений электронной почты в почтовых ящиках со специальными возможностями.
Графический объект Создание изображений и рисунков на основе ввода текста.
Собрания Поиск содержимого собрания.
OneDriveAndSharePoint Найдите сайты SharePoint и OneDrive, чтобы найти информацию о заземлениях.
Люди Поиск сведений о людях в организации.
ScenarioModels Используйте модели для конкретных задач для специализированных сценариев.
TeamsMessages Поиск по каналам Teams, собраниям и чатам.
Веб-поиск Поиск информации о заземления в Интернете.

AgentCapabilities.CodeInterpreter

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

op codeInterpreter is AgentCapabilities.CodeInterpreter;

Пример

op codeInterpreter is AgentCapabilities.CodeInterpreter;

AgentCapabilities.CopilotConnectors

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

op copilotConnectors is AgentCapabilities.CopilotConnectors;

Параметры

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

Модели

Connection

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

Свойства
Имя Тип Описание
connectionId string Обязательный. Уникальный идентификатор соединителя Copilot.
additionalSearchTerms string Необязательный параметр. Запрос язык KeyQL (KQL) для фильтрации элементов на основе полей в схеме подключения.
itemsByContainerName Массив ContainerNameItem Необязательный параметр. Фильтрует элементы, доступные агенту, по имени контейнера (семантическая containerName метка элементов).
itemsByContainerUrl Массив ContainerUrlItem Необязательный параметр. Фильтрует элементы, доступные агенту, по URL-адресу контейнера (семантическая containerUrl метка элементов).
itemsByExternalId Массив ExternalIdItem Необязательный параметр. Указывает определенные элементы по идентификатору в соединителе Copilot, доступные агенту.
itemsByExternalUrl Массив ExternalUrlItem Необязательный параметр. Указывает элементы по внешнему URL-адресу в соединителе Copilot, доступные агенту.
itemsByPath Массив PathItem Необязательный параметр. Фильтрует элементы, доступные агенту, по путям элементов (семантическая itemPath метка элементов).

ContainerNameItem

Определяет контейнер по его имени.

Свойства
Имя Тип Описание
containerName string Обязательный. Имя контейнера (containerName значение семантической метки) внешнего элемента.

ContainerUrlItem

Определяет контейнер по ЕГО URL-адресу.

Свойства
Имя Тип Описание
containerUrl string Обязательный. URL-адрес контейнера (containerUrl значение семантической метки) внешнего элемента.

ExternalIdItem

Определяет внешний элемент по его идентификатору.

Свойства
Имя Тип Описание
externalId string Обязательный. Уникальный идентификатор внешнего элемента.

ExternalUrlItem

Определяет внешний элемент по ЕГО URL-адресу.

Свойства
Имя Тип Описание
url string Обязательный. URL-адрес внешнего элемента.

PathItem

Определяет внешний элемент по пути к нему.

Свойства
Имя Тип Описание
path string Обязательный. Путь (itemPath значение семантической метки) внешнего элемента.

Пример

// Basic Copilot connectors with no restrictions
op copilotConnectors is AgentCapabilities.CopilotConnectors;

// Specific connectors
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
  {
    connectionId: "ticketsconnector123";
  },
  {
    connectionId: "wikiconnector123";
  }
]>;

// Specific connector with KQL filtering
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
  {
    connectionId: "ticketsconnector123";
    additionalSearchTerms: "CreatedDate>=2024-01-01 AND Priority:High";
  }
]>;

// Multiple connectors with different filtering approaches
op copilotConnectors is AgentCapabilities.CopilotConnectors<Connections = [
  {
    connectionId: "ticketsconnector456";
    itemsByPath: [
      { path: "/projects/customer-portal" },
      { path: "/projects/mobile-app" }
    ];
    itemsByContainerName: [
      { containerName: "Engineering Projects" },
      { containerName: "Product Backlog" }
    ];
  },
  {
    connectionId: "wikiconnector789";
    additionalSearchTerms: "space:ENGINEERING AND lastModified>now()-30d";
    itemsByContainerUrl: [
      { containerUrl: "https://wiki.contoso.com/ENGINEERING" },
      { containerUrl: "https://wiki.contoso.com/PRODUCT" }
    ];
  },
  {
    connectionId: "databaseconnector012";
    itemsByExternalId: [
      { externalId: "customer001" },
      { externalId: "customer002" },
      { externalId: "customer007" }
    ];
  }
]>;

AgentCapabilities.Dataverse

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

op dataverse is AgentCapabilities.Dataverse;

Параметры

Имя Тип Описание
KnowledgeSources Массив DataverseKnowledgeSource Необязательный параметр. Массив объектов, определяющих источники знаний Dataverse, доступные декларативному агенту. Если это свойство пропущено, декларативному агенту будут доступны все доступные среды Dataverse.

Модели

DataverseKnowledgeSource

Представляет источник знаний Dataverse.

Свойства
Имя Тип Описание
hostName string Обязательный. Имя узла среды Dataverse.
skill string Необязательный параметр. Идентификатор навыка для источника знаний.
tables Массив DataverseTable Необязательный параметр. Массив таблиц, к которым может получить доступ декларативный агент. Если это свойство опущено, декларативному агенту будут доступны все доступные таблицы в среде.

DataverseTable

Представляет таблицу Dataverse.

Свойства
Имя Тип Описание
tableName string Обязательный. Логическое имя таблицы.

Пример

// Basic Dataverse with no restrictions
op dataverse is AgentCapabilities.Dataverse;

// Dataverse with specific environment
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
  {
    hostName: "contoso.crm.dynamics.com";
  }
]>;

// Dataverse with specific tables
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
  {
    hostName: "contoso.crm.dynamics.com";
    tables: [
      { tableName: "account" },
      { tableName: "contact" },
      { tableName: "opportunity" }
    ];
  }
]>;

// Dataverse with skill and tables
op dataverse is AgentCapabilities.Dataverse<KnowledgeSources = [
  {
    hostName: "contoso.crm.dynamics.com";
    skill: "sales-assistant";
    tables: [
      { tableName: "account" },
      { tableName: "lead" }
    ];
  }
]>;

AgentCapabilities.Email

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

op email is AgentCapabilities.Email;

Параметры

Имя Тип Описание
Folders Массив папок Необязательный параметр. Массив объектов папок.
SharedMailbox string Необязательный параметр. SMTP-адрес общего почтового ящика.

Модели

Folder

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

Пример

// Basic email search with no restrictions
op email is AgentCapabilities.Email;

// Email search with specific well-known folders
op email is AgentCapabilities.Email<
  Folders = [
    { folderId: "Inbox" },
    { folderId: "SentItems" },
    { folderId: "Archive" }
  ]
>;

// Email search with shared mailbox access
op email is AgentCapabilities.Email<
  SharedMailbox = "support@contoso.com"
>;

// Email search with custom folders and shared mailbox
op email is AgentCapabilities.Email<
  Folders = [
    { folderId: "Inbox" }
  ],
  SharedMailbox = "legal@contoso.com"
>;

AgentCapabilities.GraphicArt

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

op graphicArt is AgentCapabilities.GraphicArt;

Пример

op graphicArt is AgentCapabilities.GraphicArt;

AgentCapabilities.Meetings

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

op meetings is AgentCapabilities.Meetings;

Пример

op meetings is AgentCapabilities.Meetings;

AgentCapabilities.OneDriveAndSharePoint

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

op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;

Параметры

Имя Тип Описание
ItemsBySharePointIds Массив Идентификаторов SharePoint Необязательный параметр. Массив объектов, определяющих источники SharePoint или OneDrive с помощью идентификаторов. Если и ItemsBySharePointIds параметры опущены ItemsByUrl , декларативному агенту будут доступны все источники OneDrive и SharePoint в организации.
ItemsByUrl Массив SharePointUrl Необязательный параметр. Массив объектов, определяющих источники SharePoint или OneDrive по URL-адресу. Если и ItemsBySharePointIds параметры опущены ItemsByUrl , декларативному агенту будут доступны все источники OneDrive и SharePoint в организации.

Модели

SharePointIds

Содержит один или несколько идентификаторов объектов, которые идентифицируют ресурс SharePoint или OneDrive.

Свойства
Имя Тип Описание
itemId string Необязательный параметр. Уникальный идентификатор GUID, используемый для область папки или файла в библиотеке документов, указанной свойством listId.
listId string Необязательный параметр. Уникальный идентификатор GUID для библиотеки документов на сайте SharePoint.
siteId string Необязательный параметр. Уникальный идентификатор GUID для сайта SharePoint или OneDrive.
webId string Необязательный параметр. Уникальный идентификатор GUID для определенного веб-сайта SharePoint или OneDrive.

SharePointUrl

Представляет URL-адрес ресурса SharePoint или OneDrive.

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

Пример

// Basic OneDrive and SharePoint with no restrictions
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;

// URL-based filtering for specific sites
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint<
  ItemsBySharePointIds = [],
  ItemsByUrl = [
    { url: "https://contoso.sharepoint.com/sites/Engineering" },
    { url: "https://contoso.sharepoint.com/sites/ProductManagement" },
    { url: "https://contoso-my.sharepoint.com/personal/john_contoso_com" }
  ]
>;

// ID-based filtering with comprehensive site and document library scoping
op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint<
  ItemsBySharePointIds = [
    {
      siteId: "12345678-1234-1234-1234-123456789012";
      searchAssociatedSites: true;
    },
    {
      siteId: "87654321-4321-4321-4321-210987654321";
      webId: "11111111-2222-3333-4444-555555555555";
      listId: "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
    },
    {
      siteId: "99999999-8888-7777-6666-555555555555";
      webId: "ffffffff-dddd-cccc-3333-cccccccccccc";
      listId: "ffffffff-eeee-dddd-cccc-bbbbbbbbbbbb";
      itemId: "12121212-3434-5656-7878-909090909090";
    }
  ],
  ItemsByUrl = [
    { url: "https://contoso.sharepoint.com/sites/Engineering" }
  ]
>;

AgentCapabilities.People

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

op people is AgentCapabilities.People;

Пример

op people is AgentCapabilities.People;

AgentCapabilities.ScenarioModels

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

op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
  { id: "model-id" }
]>;

Параметры

Имя Тип Описание
Models Массив ScenarioModel Обязательно. Массив объектов, определяющий модели для конкретных задач, доступные декларативному агенту.

Модели

ScenarioModel

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

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

Пример

// Single specialized model for analytics
op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
  { id: "financial-forecasting-model-v3" }
]>;

// Multiple models for different business scenarios
op scenarioModels is AgentCapabilities.ScenarioModels<Models = [
  { id: "sentiment-analysis-model" },
  { id: "document-classification-model" },
  { id: "risk-assessment-model" }
]>;

AgentCapabilities.TeamsMessages

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

op teamsMessages is AgentCapabilities.TeamsMessages;

Параметры

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

Модели

TeamsMessagesUrl

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

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

Пример

// Basic Teams messages with no restrictions
op teamsMessages is AgentCapabilities.TeamsMessages;

// Teams messages limited to specific channels and chats
op teamsMessages is AgentCapabilities.TeamsMessages<TeamsMessagesByUrl = [
  { url: "https://teams.microsoft.com/l/channel/19%3a123abc...%40thread.skype/General?groupId=12345&tenantId=67890" },
  { url: "https://teams.microsoft.com/l/chat/19%3ameeting_abc123...%40thread.v2/0?context=%7b%22Tid%22%3a%22...%22%7d" },
  { url: "https://teams.microsoft.com/l/channel/19%3a456def...%40thread.tacv2/Engineering?groupId=54321&tenantId=09876" }
]>;

// Teams messages for project-specific channels
op teamsMessages is AgentCapabilities.TeamsMessages<TeamsMessagesByUrl = [
  { url: "https://teams.microsoft.com/l/channel/19%3aprojectA...%40thread.tacv2/Development?groupId=11111&tenantId=22222" },
  { url: "https://teams.microsoft.com/l/channel/19%3aprojectA...%40thread.tacv2/Testing?groupId=11111&tenantId=22222" },
  { url: "https://teams.microsoft.com/l/chat/19%3astandup_daily...%40thread.v2/0?context=%7b%22Tid%22%3a%22...%22%7d" }
]>;

AgentCapabilities.WebSearch

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

op webSearch is AgentCapabilities.WebSearch;

Параметры

Имя Тип Описание
Sites Массив SiteUrl Необязательный параметр. Массив объектов, определяющих сайты, которые агенту разрешено искать. Если это свойство опущено, всем агентам разрешено выполнять поиск по всем сайтам.

Модели

SiteUrl

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

Свойства
Имя Тип Описание
url string Обязательный. Абсолютный URL-адрес сайта для поиска содержимого.

Пример

// Basic web search with no restrictions
op webSearch is AgentCapabilities.WebSearch;

// Web search limited to specific documentation sites
op webSearch is AgentCapabilities.WebSearch<Sites = [
  {
    url: "https://learn.microsoft.com";
  },
  {
    url: "https://docs.microsoft.com";
  },
  {
    url: "https://techcommunity.microsoft.com";
  }
]>;

// Web search for company-specific resources
op webSearch is AgentCapabilities.WebSearch<Sites = [
  {
    url: "https://company.com/knowledge-base";
  },
  {
    url: "https://support.company.com";
  }
]>;