Esquema de agente declarativo para Microsoft 365 Copilot

Este artigo descreve uma especificação que estabelece o manifesto do agente declarativo. O manifesto é um documento legível por computador que fornece um Modelo de Linguagem Grande (LLM) com as instruções, conhecimentos e ações necessários para se especializar na resolução de um conjunto selecionado de problemas de utilizador.

Os agentes declarativos são valiosos na compreensão e geração de texto semelhante ao humano, tornando-os versáteis para tarefas como escrever e responder a perguntas. Esta especificação centra-se no manifesto declarativo do agente que atua como uma estrutura estruturada para especializar e melhorar as funcionalidades de que um utilizador específico precisa.

Esquema JSON

O esquema descrito neste documento pode ser encontrado no formato de Esquema JSONaqui.

Convenções

Referências relativas em URLs

Salvo especificação em contrário, todas as propriedades que são URLs poderão ser referências relativas. As referências relativas no documento de manifesto são relativas à localização do documento de manifesto.

Comprimento da cadeia

Salvo especificação em contrário, todas as propriedades de cadeia devem estar limitadas a 4K carateres. Este comprimento de cadeia não confere qualquer tamanho aceitável para todo o documento. As implementações são livres de impor os seus próprios limites práticos ao comprimento do manifesto.

Propriedades não reconhecidas

Os objetos JSON definidos neste documento suportam apenas as propriedades descritas. Propriedades não reconhecidas ou desnecessárias em qualquer objeto JSON DEVEM tornar todo o documento inválido.

Localização de cadeias

As cadeias localizáveis podem utilizar uma chave de localização em vez de um valor literal. A sintaxe é [[key_name]], em key_name que é o nome da chave na localizationKeys propriedade nos ficheiros de localização. Para obter detalhes sobre a localização, veja Localizar o agente.

Objeto de manifesto do agente declarativo

A raiz do documento de manifesto é um objeto JSON que abrange os campos, capacidades, inícios de conversação e ações necessários.

O objeto de manifesto do agente declarativo contém as seguintes propriedades.

Propriedade Tipo Descrição
id String Opcional.
name Cadeia de caracteres Obrigatório. Localizável. O nome do agente declarativo. Tem de conter, pelo menos, um caráter não branco e TEM de ter 100 carateres ou menos.
description Cadeia de caracteres Obrigatório. Localizável. A descrição do agente declarativo. Tem de conter, pelo menos, um caráter não branco e TEM de ter 1000 carateres ou menos.
instructions Cadeia de caracteres Obrigatório. As instruções detalhadas ou diretrizes sobre o comportamento do agente declarativo, as suas funções e quaisquer comportamentos a evitar. TEM de conter, pelo menos, um caráter não branco e TEM de ter 8000 carateres ou menos.
capabilities Matriz do objeto Capacidades Opcional. Contém uma matriz de objetos que definem as capacidades do agente declarativo. NÃO PODE haver mais do que um de cada tipo derivado de objeto Capacidades na matriz.
conversation_starters Matriz do objeto inicial de Conversação Opcional. O Título e o Texto são localizáveis. Uma lista de exemplos de perguntas às quais o agente declarativo pode responder. NÃO PODE haver mais de seis objetos na matriz.
actions Matriz do objeto Ação Opcional. Uma lista de objetos que identificam plug-ins de API que fornecem ações acessíveis ao agente declarativo.

Exemplo de objeto de manifesto de agente declarativo

O seguinte JSON é um exemplo de campos necessários num manifesto de agente declarativo.

{
  "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"
}

Objeto Capacidades

O objeto capabilities é o tipo base de objetos na capabilities propriedade no objeto de manifesto do agente declarativo. Os tipos de objeto possíveis são:

Exemplo de capacidades

{
  "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"
        }
      ]
    }
  ]
}

Objeto de pesquisa na Web

Indica que o agente declarativo pode procurar na Web informações de ligação à terra.

O objeto de pesquisa na Web contém as seguintes propriedades.

Propriedade Tipo Descrição
name Cadeia de caracteres Obrigatório. Tem que ser definida como WebSearch.

Objeto oneDrive e SharePoint

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

O objeto OneDrive e SharePoint contém as seguintes propriedades.

Propriedade Tipo Descrição
name Cadeia de caracteres Obrigatório. Tem que ser definida como OneDriveAndSharePoint.
items_by_sharepoint_ids Matriz de Itens por objeto IDs do SharePoint Opcional. Uma matriz de objetos que identificam origens do SharePoint ou do OneDrive com IDs. Se as items_by_sharepoint_ids propriedades e items_by_url forem omitidas, todas as origens do OneDrive e do Sharepoint na organização estão disponíveis para o agente declarativo.
items_by_url Matriz de Itens por objeto de URL Opcional. Uma matriz de objetos que identificam origens do SharePoint ou do OneDrive por URL. Se as items_by_sharepoint_ids propriedades e items_by_url forem omitidas, todas as origens do OneDrive e do Sharepoint na organização estão disponíveis para o agente declarativo.
Objeto Itens por IDs do SharePoint

O objeto Itens por IDs do SharePoint contém as seguintes propriedades.

Propriedade Tipo Descrição
site_id String Opcional. Um identificador GUID exclusivo para um site do SharePoint ou do OneDrive.
web_id String Opcional. Um identificador GUID exclusivo para uma Web específica num site do SharePoint ou do OneDrive.
list_id String Opcional. Um identificador GUID exclusivo para uma lista num site do SharePoint ou do OneDrive.
unique_id String Opcional. Um identificador GUID exclusivo utilizado para representar uma entidade ou recurso específico.

Dica

Para obter instruções sobre como obter os identificadores exclusivos de um recurso do SharePoint ou do OneDrive, veja Obter IDs de capacidades para o manifesto declarativo do agente.

Itens por objeto de URL

O objeto Itens por URL contém as seguintes propriedades.

Propriedade Tipo Descrição
url String Opcional. Um URL absoluto para um recurso do SharePoint ou do OneDrive.

Objeto de conectores do Microsoft Graph

Indica que o agente declarativo pode procurar informações de terra nos conectores selecionados do Microsoft Graph.

O objeto conectores do Microsoft Graph contém as seguintes propriedades.

Propriedade Tipo Descrição
name Cadeia de caracteres Obrigatório. Tem que ser definida como GraphConnectors.
connections Matriz do objeto Ligação Opcional. Uma matriz de objetos que identificam os conectores do Microsoft Graph disponíveis para o agente declarativo. Se esta propriedade for omitida, todos os conectores do Microsoft Graph na organização estão disponíveis para o agente declarativo.
Objeto Connection

Identifica um conector do Microsoft Graph.

O objeto de ligação contém as seguintes propriedades.

Propriedade Tipo Descrição
connection_id Cadeia de caracteres Obrigatório. O identificador exclusivo do conector do Microsoft Graph.

Dica

Para obter instruções sobre como obter o identificador exclusivo para um conector do Microsoft Graph, veja Obter IDs de capacidades para o manifesto declarativo do agente.

Objeto de iniciadores de conversação

O objeto de iniciadores de conversação é opcional no manifesto. Contém sugestões que são apresentadas ao utilizador para demonstrar como podem começar a utilizar o agente declarativo.

O objeto inicial da conversação contém as seguintes propriedades:

Propriedade Tipo Descrição
text Cadeia de caracteres Obrigatório. Localizável. Uma sugestão que o utilizador pode utilizar para obter o resultado pretendido do agente declarativo. Tem de conter, pelo menos, um caráter não branco.
title String Opcional. Localizável. Um título exclusivo para o arranque da conversação. Tem de conter, pelo menos, um caráter não branco.

Exemplo de objeto de iniciadores de conversação

{
  "conversation_starters": [
    {
      "title": "My Open Repairs",
      "text": "What open repairs are assigned to me?"
    }
  ]
}

Objeto Actions

As ações são um objeto JSON opcional no manifesto. Funciona como uma entrada de programador e pode ser considerada como plug-ins.

O objeto de ação contém as seguintes propriedades.

Propriedade Tipo Descrição
id Cadeia de caracteres Obrigatório. Um identificador exclusivo para a ação. Pode ser um GUID.
file Cadeia de caracteres Obrigatório. Um caminho para o manifesto do plug-in da API para esta ação.

Exemplo de objeto de ações

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

Exemplo de manifesto do agente declarativo

Eis um exemplo de um ficheiro de manifesto de agente declarativo que utiliza a maioria das propriedades do manifesto descritas neste artigo.

{
    "$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"
                }
            ]
        }
    ]
}