Recursos do agente declarativo no TypeSpec para o Microsoft 365 Copilot

O TypeSpec para Microsoft 365 Copilot fornece recursos internos que permitem que agentes declarativos acessem serviços e recursos externos do Microsoft 365. Os recursos disponíveis incluem CodeInterpreter, CopilotConnectors, Dataverse, Email, GraphicArt, Meetings, OneDriveAndSharePoint, People, ScenarioModels, TeamsMessages e WebSearch. Cada funcionalidade pode ser configurada com parâmetros específicos para controlar o escopo.

Funcionalidade Descrição
CodeInterpreter Gere e execute código Python para resolver problemas matemáticos, analisar dados e criar visualizações.
Conectores do Copilot Pesquise conectores selecionados do Microsoft 365 Copilot para obter informações de aterramento.
Dataverse Pesquise informações em ambientes e tabelas do Microsoft Dataverse.
Email Pesquisar mensagens de email em caixas de correio acessíveis.
GraphicArt Crie imagens e arte com base na entrada de texto.
Reuniões Pesquisar conteúdo da reunião.
OneDriveAndSharePoint Pesquise sites do SharePoint e OneDrive para obter informações básicas.
Pessoas Pesquise informações sobre as pessoas na organização.
ScenarioModels Use modelos específicos de tarefas para cenários especializados.
TeamsMessages Pesquise canais, reuniões e chats do Teams.
Pesquisa na Web Pesquise na web por informações básicas.

AgentCapabilities.CodeInterpreter

Indica que o agente declarativo pode gerar e executar código Python para resolver problemas matemáticos complexos, analisar dados, gerar visualizações e muito mais.

op codeInterpreter is AgentCapabilities.CodeInterpreter;

Exemplo

op codeInterpreter is AgentCapabilities.CodeInterpreter;

AgentCapabilities.CopilotConnectors

Indica que o agente declarativo pode pesquisar conectores Copilot selecionados para obter informações de aterramento.

op copilotConnectors is AgentCapabilities.CopilotConnectors;

Parâmetros

Nome Tipo Descrição
Connections Matriz de Conexão Opcional. Uma matriz de objetos que identificam os conectores do Copilot disponíveis para o agente declarativo. Se essa propriedade for omitida, todos os conectores do Copilot na organização estarão disponíveis para o agente declarativo.

Modelos

Conexão

Identifica um conector Copilot.

Propriedades
Nome Tipo Descrição
connectionId string Obrigatório. O identificador exclusivo do conector do Copilot.
additionalSearchTerms string Opcional. Uma consulta de QL por palavra-chave (KQL) para filtrar itens com base nos campos no esquema da conexão.
itemsByContainerName Matriz de ContainerNameItem Opcional. Filtra os itens disponíveis para o agente por nome do contêiner (o containerName rótulo semântico nos itens).
itemsByContainerUrl Matriz de ContainerUrlItem Opcional. Filtra os itens disponíveis para o agente por URL do contêiner (o containerUrl rótulo semântico dos itens).
itemsByExternalId Matriz de ExternalIdItem Opcional. Especifica itens específicos por ID no conector do Copilot que estão disponíveis para o agente.
itemsByExternalUrl Matriz de ExternalUrlItem Opcional. Especifica itens por URL externa no conector do Copilot que estão disponíveis para o agente.
itemsByPath Matriz de PathItem Opcional. Filtra os itens disponíveis para o agente por caminhos de item (o itemPath rótulo semântico nos itens).

ContainerNameItem

Identifica um contêiner pelo nome.

Propriedades
Nome Tipo Descrição
containerName string Obrigatório. O nome do contêiner (containerName valor do rótulo semântico) do item externo.

ContainerUrlItem

Identifica um contêiner por sua URL.

Propriedades
Nome Tipo Descrição
containerUrl string Obrigatório. A URL do contêiner (containerUrl valor do rótulo semântico) do item externo.

ExternalIdItem

Identifica um item externo por sua ID.

Propriedades
Nome Tipo Descrição
externalId string Obrigatório. O identificador exclusivo do item externo.

ExternalUrlItem

Identifica um item externo por sua URL.

Propriedades
Nome Tipo Descrição
url string Obrigatório. A URL do item externo.

PathItem

Identifica um item externo por seu caminho.

Propriedades
Nome Tipo Descrição
path string Obrigatório. O caminho (itemPath valor do rótulo semântico) do item externo.

Exemplo

// 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

Indica que o agente declarativo pode pesquisar informações no Microsoft Dataverse.

op dataverse is AgentCapabilities.Dataverse;

Parâmetros

Nome Tipo Descrição
KnowledgeSources Matriz de DataverseKnowledgeSource Opcional. Uma matriz de objetos que identifica as fontes de conhecimento do Dataverse disponíveis para o agente declarativo. Se essa propriedade for omitida, todos os ambientes acessíveis do Dataverse estarão disponíveis para o agente declarativo.

Modelos

DataverseKnowledgeSource

Representa uma fonte de conhecimento do Dataverse.

Propriedades
Nome Tipo Descrição
hostName string Obrigatório. O nome do host do ambiente do Dataverse.
skill string Opcional. O identificador de habilidade da fonte de conhecimento.
tables Matriz de DataverseTable Opcional. Uma matriz de tabelas que o agente declarativo pode acessar. Se essa propriedade for omitida, todas as tabelas acessíveis no ambiente estarão disponíveis para o agente declarativo.

DataverseTable

Representa uma tabela do Dataverse.

Propriedades
Nome Tipo Descrição
tableName string Obrigatório. O nome lógico da tabela.

Exemplo

// 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

Indica que o agente declarativo pode pesquisar mensagens de email nas caixas de correio às quais o usuário tem acesso.

op email is AgentCapabilities.Email;

Parâmetros

Nome Tipo Descrição
Folders Matriz de Pastas Opcional. Uma matriz de objetos de pastas.
SharedMailbox string Opcional. O endereço SMTP de uma caixa de correio compartilhada.

Modelos

Pasta

Propriedades
Nome Tipo Descrição
folderId string Obrigatório. O nome conhecido da pasta ou ID da pasta a ser referenciada.

Exemplo

// 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

Indica que o agente declarativo pode criar imagens e arte com base na entrada de texto do usuário.

op graphicArt is AgentCapabilities.GraphicArt;

Exemplo

op graphicArt is AgentCapabilities.GraphicArt;

AgentCapabilities.Meetings

Indica que o agente declarativo pode pesquisar o conteúdo da reunião.

op meetings is AgentCapabilities.Meetings;

Exemplo

op meetings is AgentCapabilities.Meetings;

AgentCapabilities.OneDriveAndSharePoint

Indica que o agente declarativo pode pesquisar o SharePoint e o OneDrive de um usuário para obter informações básicas.

op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;

Parâmetros

Nome Tipo Descrição
ItemsBySharePointIds Matriz de SharePointIds Opcional. Uma matriz de objetos que identificam fontes do SharePoint ou do OneDrive usando IDs. Se os parâmetros e os ItemsByUrl forem omitidos, todas as fontes do ItemsBySharePointIds OneDrive e do SharePoint na organização estarão disponíveis para o agente declarativo.
ItemsByUrl Matriz de SharePointUrl Opcional. Uma matriz de objetos que identifica as fontes do SharePoint ou do OneDrive por URL. Se os parâmetros e os ItemsByUrl forem omitidos, todas as fontes do ItemsBySharePointIds OneDrive e do SharePoint na organização estarão disponíveis para o agente declarativo.

Modelos

SharePointIds

Contém um ou mais identificadores de objeto que identificam um recurso do SharePoint ou do OneDrive.

Propriedades
Nome Tipo Descrição
itemId string Opcional. Um identificador GUID exclusivo usado para definir o escopo de uma pasta ou arquivo na biblioteca de documentos especificado pela propriedade listId.
listId string Opcional. Um identificador GUID exclusivo para uma biblioteca de documentos dentro de um site do SharePoint.
siteId string Opcional. Um identificador GUID exclusivo para um site do SharePoint ou OneDrive.
webId string Opcional. Um identificador GUID exclusivo para uma Web específica em um site do SharePoint ou OneDrive.

SharePointUrl

Representa a URL de um recurso do SharePoint ou do OneDrive.

Propriedades
Nome Tipo Descrição
url string Obrigatório. Uma URL absoluta para um recurso do SharePoint ou do OneDrive.

Exemplo

// 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

Indica que o agente declarativo pode pesquisar informações sobre pessoas na organização.

op people is AgentCapabilities.People;

Exemplo

op people is AgentCapabilities.People;

AgentCapabilities.ScenarioModels

Indica que o agente declarativo pode usar modelos específicos de tarefa.

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

Parâmetros

Nome Tipo Descrição
Models Matriz de ScenarioModel Obrigatório. Uma matriz de objetos que identifica os modelos específicos da tarefa disponíveis para o agente declarativo.

Modelos

Modelo de cenário

Identifica um modelo específico da tarefa.

Propriedades
Nome Tipo Descrição
id string Obrigatório. O identificador exclusivo do modelo.

Exemplo

// 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

Indica que o agente declarativo pode pesquisar canais, equipes, reuniões, chats 1:1 e chats em grupo do Teams.

op teamsMessages is AgentCapabilities.TeamsMessages;

Parâmetros

Nome Tipo Descrição
TeamsMessagesByUrl Matriz de TeamsMessagesUrl Opcional. Uma matriz de objetos que identificam as URLs dos canais do Teams, chats de reunião, chats em grupo ou chats 1:1 disponíveis para o agente declarativo. A omissão dessa propriedade permite uma pesquisa sem escopo em todos os canais, reuniões, chats 1:1 e chats em grupo.

Modelos

TeamsMessagesUrl

Identifica um canal, equipe ou chat de reunião do Teams.

Propriedades
Nome Tipo Descrição
url string Obrigatório. Uma URL bem formatada do Teams vinculada a um canal do Teams, chat de reunião, chat em grupo ou chat 1:1.

Exemplo

// 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

Indica que o agente declarativo pode pesquisar na web por informações básicas.

op webSearch is AgentCapabilities.WebSearch;

Parâmetros

Nome Tipo Descrição
Sites Matriz de SiteUrl Opcional. Uma matriz de objetos que identifica sites que o agente tem permissão para pesquisar. Se essa propriedade for omitida, todo o agente terá permissão para pesquisar todos os sites.

Modelos

SiteUrl

Indica um site que um agente declarativo pode pesquisar conteúdo.

Propriedades
Nome Tipo Descrição
url string Obrigatório. Uma URL absoluta para um site a ser pesquisado em busca de conteúdo.

Exemplo

// 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";
  }
]>;