Compartilhar via


Capacidades do agente declarativo no TypeSpec para Microsoft 365 Copilot

O TypeSpec para Microsoft 365 Copilot fornece capacidades incorporadas que permitem aos agentes declarativos aceder aos serviços e recursos externos do Microsoft 365. As capacidades disponíveis incluem CodeInterpreter, CopilotConnectors, Dataverse, Email, GraphicArt, Meetings, OneDriveAndSharePoint, Pessoas, ScenarioModels, TeamsMessages e WebSearch. Cada capacidade pode ser configurada com parâmetros específicos para controlar o âmbito.

Funcionalidade Descrição
CodeInterpreter Gere e execute código Python para resolver problemas matemáticos, analisar dados e criar visualizações.
CopilotConnectors Procure informações de terra nos conectores de Microsoft 365 Copilot selecionados.
Dataverse Procure informações em ambientes e tabelas do Microsoft Dataverse.
Email Procure mensagens de e-mail em caixas de correio acessíveis.
Gráficos Crie imagens e imagens com base na introdução de texto.
Reuniões Procurar conteúdo da reunião.
OneDriveAndSharePoint Procure informações de base nos sites do SharePoint e no OneDrive.
Pessoas Procure informações sobre pessoas na organização.
ScenarioModels Utilize modelos específicos de tarefas para cenários especializados.
TeamsMessages Procure em canais, reuniões e chats do Teams.
WebSearch Procure informações de base na Web.

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 procurar informações de terra nos conectores Copilot selecionados.

op copilotConnectors is AgentCapabilities.CopilotConnectors;

Parâmetros

Nome Tipo Descrição
Connections Matriz de Ligação Opcional. Uma matriz de objetos que identificam os conectores Copilot disponíveis para o agente declarativo. Se esta propriedade for omitida, todos os conectores Copilot na organização estã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 Copilot.
additionalSearchTerms string Opcional. Uma consulta QL por palavra-chave (KQL) para filtrar itens com base em campos no esquema da ligação.
itemsByContainerName Matriz de ContainerNameItem Opcional. Filtra os itens disponíveis para o agente pelo nome do contentor (a containerName etiqueta semântica nos itens).
itemsByContainerUrl Matriz de ContainerUrlItem Opcional. Filtra os itens disponíveis para o agente por URL de contentor (a containerUrl etiqueta semântica nos itens).
itemsByExternalId Matriz de ExternalIdItem Opcional. Especifica itens específicos por ID no conector Copilot que estão disponíveis para o agente.
itemsByExternalUrl Matriz de ExternalUrlItem Opcional. Especifica itens por URL externo no conector 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 itens (a itemPath etiqueta semântica nos itens).

ContainerNameItem

Identifica um contentor pelo respetivo nome.

Propriedades
Nome Tipo Descrição
containerName string Obrigatório. O nome do contentor (containerName valor da etiqueta semântica) do item externo.

ContainerUrlItem

Identifica um contentor pelo respetivo URL.

Propriedades
Nome Tipo Descrição
containerUrl string Obrigatório. O URL do contentor (containerUrl valor da etiqueta semântica) do item externo.

ExternalIdItem

Identifica um item externo pelo respetivo ID.

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

ExternalUrlItem

Identifica um item externo pelo respetivo URL.

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

PathItem

Identifica um item externo pelo respetivo caminho.

Propriedades
Nome Tipo Descrição
path string Obrigatório. O caminho (itemPath valor da etiqueta semântica) 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 procurar 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 identificam as origens de conhecimento Dataverse disponíveis para o agente declarativo. Se esta propriedade for omitida, todos os ambientes Dataverse acessíveis estarão disponíveis para o agente declarativo.

Modelos

DataverseKnowledgeSource

Representa uma origem de conhecimento Dataverse.

Propriedades
Nome Tipo Descrição
hostName string Obrigatório. O nome do anfitrião do ambiente Dataverse.
skill string Opcional. O identificador de competências da origem de conhecimento.
tables Matriz de DataverseTable Opcional. Uma matriz de tabelas às quais o agente declarativo pode aceder. Se esta propriedade for omitida, todas as tabelas acessíveis no ambiente estarão disponíveis para o agente declarativo.

DataverseTable

Representa uma tabela 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 procurar mensagens de e-mail nas caixas de correio às quais o utilizador tem acesso.

op email is AgentCapabilities.Email;

Parâmetros

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

Modelos

Pasta

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

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 imagens com base na entrada de texto do utilizador.

op graphicArt is AgentCapabilities.GraphicArt;

Exemplo

op graphicArt is AgentCapabilities.GraphicArt;

AgentCapabilities.Meetings

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

op meetings is AgentCapabilities.Meetings;

Exemplo

op meetings is AgentCapabilities.Meetings;

AgentCapabilities.OneDriveAndSharePoint

Indica que o agente declarativo pode procurar informações de base no SharePoint e no OneDrive de um utilizador.

op oneDriveAndSharePoint is AgentCapabilities.OneDriveAndSharePoint;

Parâmetros

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

Modelos

SharePointIds

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

Propriedades
Nome Tipo Descrição
itemId string Opcional. Um identificador GUID exclusivo utilizado para definir o âmbito de uma pasta ou ficheiro na biblioteca de documentos especificada pela propriedade listId.
listId string Opcional. Um identificador GUID exclusivo para uma biblioteca de documentos num site do SharePoint.
siteId string Opcional. Um identificador GUID exclusivo para um site do SharePoint ou do OneDrive.
webId string Opcional. Um identificador GUID exclusivo para uma Web específica num site do SharePoint ou do OneDrive.

SharePointUrl

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

Propriedades
Nome Tipo Descrição
url string Obrigatório. Um URL absoluto 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 procurar 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 utilizar modelos específicos de tarefas.

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

ScenarioModel

Identifica um modelo específico de tarefas.

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 procurar em canais do Teams, equipas, reuniões, conversas 1:1 e conversas em grupo.

op teamsMessages is AgentCapabilities.TeamsMessages;

Parâmetros

Nome Tipo Descrição
TeamsMessagesByUrl Matriz de TeamsMessagesUrl Opcional. Uma matriz de objetos que identificam os URLs dos canais do Teams, conversas de reunião, conversas de grupo ou conversas de 1:1 disponíveis para o agente declarativo. Omitir esta propriedade permite uma pesquisa não selecionada através de todos os canais, reuniões, conversas 1:1 e conversas de grupo.

Modelos

TeamsMessagesUrl

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

Propriedades
Nome Tipo Descrição
url string Obrigatório. Um URL do Teams bem formatado que liga a um canal do Teams, a um chat de reunião, a um chat de grupo ou a um chat de 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 procurar na Web informações de ligação à terra.

op webSearch is AgentCapabilities.WebSearch;

Parâmetros

Nome Tipo Descrição
Sites Matriz de SiteUrl Opcional. Uma matriz de objetos que identificam sites que o agente tem permissão para pesquisar. Se esta propriedade for omitida, todo o agente tem permissão para procurar em todos os sites.

Modelos

SiteUrl

Indica um site onde um agente declarativo pode procurar conteúdo.

Propriedades
Nome Tipo Descrição
url string Obrigatório. Um URL absoluto para um site a procurar 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";
  }
]>;