Pedidos de confirmação para plug-ins de MCP e API para Microsoft 365 Copilot

Importante

Os plug-ins só são suportados como ações dentro de agentes declarativos. Não estão ativados no Microsoft 365 Copilot.

A primeira vez Microsoft 365 Copilot utiliza um plug-in de Protocolo de Contexto de Modelo (MCP) ou API, notifica o utilizador e pede-lhe para permitir ou cancelar a operação. Se o utilizador permitir que o Copilot se ligue ao plug-in, todas as operações futuras que obtêm dados (operações HTTP GET) não requerem qualquer confirmação. Outras operações HTTP solicitam ao utilizador, mostrando os dados a serem enviados e dando ao utilizador a opção de permitir ou recusar.

Caixa de diálogo de confirmação do Copilot para ligar a um plug-in pela primeira vez

Os programadores de plug-in podem alterar este comportamento para operações individuais no respetivo servidor MCP ou API. Os programadores também podem personalizar o texto que o Copilot apresenta ao utilizador como parte do pedido de confirmação.

Comportamento do pedido de substituição

Os programadores podem controlar se Microsoft 365 Copilot pede confirmação ao utilizador (após o pedido inicial pela primeira vez) de uma ferramenta específica ao definir a readOnlyHint propriedade true como para a ferramenta na resposta do tools/list servidor MCP. Para obter mais informações, veja a referência de esquema mcP.

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "tools": [
      {
        "name": "get_weather",
        "title": "Weather Information Provider",
        "description": "Get current weather information for a location",
        "annotations": {
          "readOnlyHint": true,
        },
        "inputSchema": {
          "type": "object",
          "properties": {
            "location": {
              "type": "string",
              "description": "City name or zip code"
            }
          },
          "required": ["location"]
        }
      }
    ]
  }
}

Personalizar texto de confirmação

Os programadores podem especificar o texto de confirmação ao definir a body propriedade no objeto Confirmação no objeto Capacidades de função da função no manifesto do plug-in. O valor de body deve ser indicativo do que a função faz. Se esta propriedade não estiver presente no manifesto, é utilizada a description propriedade no objeto Função .

{
  "name": "GetBudgets",
  "description": "Returns details including name and available funds of budgets, optionally filtered by budget name",
  "capabilities": {
    "confirmation": {
      "type": "AdaptiveCard",
      "title": "Search budgets",
      "body": "Do you want to allow searching for budgets?"
    }
  }
}

Localizar texto de confirmação

Pode configurar cadeias localizáveis para serem utilizadas como pedidos de confirmação. Os passos seguintes descrevem o processo.

Passo 1: Utilizar chaves de localização no manifesto de plug-in

No manifesto de plug-in (por exemplo, plugin.json), substitua as cadeias literais por chaves de localização com o formato:

    {
      "schema_version": "v2.3",
      "name_for_human": "[[plugin_name]]",
      "description_for_human": "[[plugin_description]]"
    }

Estas chaves (por exemplo, plugin_name e plugin_description) têm de corresponder às entradas no ficheiro de localização e estar em conformidade com o regex ^[a-zA-Z_][a-zA-Z0-9_]*.

Passo 2: Criar ficheiros de localização

Crie os seus ficheiros de localização no formato JSON e inclua uma localizationKeys propriedade que mapeia cada chave para a respetiva cadeia traduzida, conforme mostrado no exemplo seguinte.

    {
  "localizationKeys": {
    "plugin_name": "Weather Assistant",
    "plugin_description": "Provides weather updates and forecasts."
      }
    }

Pode criar vários ficheiros de localização para idiomas diferentes (por exemplo, en.json, fr.json, de.json) e referenciá-los na configuração do plug-in.

Passo 3: Adicionar localizationInfo ao Manifesto da Aplicação

Inclua uma secção localizationInfo no manifesto da aplicação que referencia os ficheiros de localização. Por exemplo,

    "localizationInfo": {
      "defaultLanguageTag": "en",
      "defaultLanguageFile": "en.json",
      "additionalLanguages": [
        {
          "languageTag": "fr",
          "file": "fr.json"
        }
      ]
    }

Plug-ins para Microsoft 365 Copilot