Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A funcionalidade de desenvolvimento descrita neste artigo está em pré-visualização. Recomendamos que experimente esta funcionalidade, mas não deve ser utilizada num plug-in de produção. Seguem-se as limitações durante a pré-visualização inicial:
- A funcionalidade só está ativada para o Office no Windows e Office na Web. Estamos a trabalhar para disponibilizar suporte para o Office no Mac.
- A funcionalidade só está ativada para o Excel, PowerPoint ou Word. Estamos a trabalhar para trazer suporte para o Outlook.
Um plug-in de um agente declarativo pode chamar as APIs na Biblioteca JavaScript do Office para realizar operações de leitura e escrita nos conteúdos e metadados de um documento do Office que está atualmente aberto numa aplicação do Office. Esta capacidade permite que o Copilot trabalhe com documentos do Office de formas precisas e isentas de erros que, de outra forma, exigiriam um Suplemento do Office.
A relação dos agentes copilot com a arquitetura de Suplemento do Office
Tanto os Suplementos do Office como os plug-ins declarativos do agente chamam APIs na Biblioteca JavaScript do Office e uma extensão do Microsoft 365 que utiliza a biblioteca pode incluir um plug-in, um suplemento ou ambos. A melhor abordagem depende dos cenários de utilizador que a extensão deve ativar.
- Se a extensão fornecer ações simples e rápidas que não precisam de parâmetros transmitidos aos mesmos, inclua apenas um suplemento com botões ou menus personalizados do friso, denominados comandos de suplemento.
- Se a extensão precisar de uma experiência dashboard, precisar que o utilizador configure as definições, precisar de apresentar metadados sobre o conteúdo do documento do Office ou precisar de uma experiência semelhante a uma página por qualquer outro motivo, inclua um suplemento com um painel de tarefas.
- Se a extensão precisar de fornecer ações complexas que exijam parâmetros transmitidos no runtime ou precise de uma interface de linguagem natural, inclua um agente Copilot.
Cenários
Seguem-se algumas formas selecionadas de um agente copilot que chama apIs da Biblioteca JavaScript do Office melhorar o valor de uma extensão do Microsoft 365.
Análise de conteúdo: Um agente pode ser utilizado para analisar o conteúdo de um documento, apresentação ou folha de cálculo e tomar medidas consoante o que encontrar. Eis alguns exemplos.
- Um agente analisa um Pedido de Proposta (RFP) e, em seguida, obtém as respostas às perguntas no RFP a partir de um sistema de back-end. O utilizador pede simplesmente ao agente para "Preencher as respostas que sabe sobre as perguntas".
- Um agente analisa um documento, ou uma tabela numa folha de cálculo, relativamente a conteúdos que impliquem determinadas ações que têm de ser realizadas, quer no próprio documento, quer noutro local nos sistemas empresariais do cliente. O utilizador poderá pedir ao agente para "Rever o documento relativamente aos itens que não vi na lista de auditoria".
Inserção fidedigna de dados: Se fizer uma pergunta a um motor de IA típico, este combina as informações que encontra e compõe uma resposta; um processo que pode introduzir imprecisões. No entanto, um agente Copilot baseado num suplemento pode inserir dados inalterados a partir de uma origem fidedigna. Alguns exemplos:
- Considere um agente que permite a inserção de investigação legal em Word onde pode ser editado. Um utilizador pergunta ao agente "Em que circunstâncias pode um menor ou unilateralmente quebrar um arrendamento de espaço residencial no Indiana?" Em seguida, o agente obtém conteúdo, inalterado, de precedentes e estatutos, e insere-o no documento.
- Considere um agente que gere o inventário de recursos digitais. Na conversa do agente Copilot, um utilizador pergunta "Insira uma tabela das nossas fotografias a cores com o nome de cada uma, o número de vezes que foi transferido e o respetivo tamanho em megabytes, ordenados por ordem da maioria dos transferidos". Em seguida, o agente obtém estes dados, inalterados, do sistema de registos e insere a tabela numa folha de cálculo do Excel.
Quando o agente é combinado com um suplemento, são ativados ainda mais cenários. A inclusão de um agente de Microsoft 365 Copilot com um Suplemento do Office proporciona, pelo menos, duas vantagens para o suplemento:
- O Copilot torna-se uma interface de linguagem natural para a funcionalidade do suplemento.
- O agente pode transmitir parâmetros para o JavaScript que invoca, o que não é possível quando um comando de função num suplemento é invocado a partir de um botão ou item de menu.
Aprender a utilizar o suplemento é uma forma de um agente melhorar um suplemento. Quando um utilizador precisa de executar vários passos ou tarefas com o suplemento para atingir um objetivo, a interface de chat da Copilot pode facilitar o processo de introdução ao suplemento. Por exemplo, considere uma empresa jurídica que precisa de ter uma lista de perguntas que têm de ser respondidas sobre cada arrendamento que prepara. Criar esta lista de perguntas pode ser moroso e de mão-de-obra intensiva. No entanto, pode ser pedido a um agente copilot que produza um primeiro rascunho de lista de perguntas e que as insira num documento Word com a Biblioteca JavaScript do Office.
Criar o seu primeiro plug-in da Biblioteca JavaScript do Office
Seguem-se os principais passos para criar um plug-in de API para um agente copilot que chama as APIs da Biblioteca JavaScript do Office.
- Certifique-se de que cumpre os Pré-requisitos
- Criar o projeto
- Configurar o manifesto
- Configurar o agente declarativo
- Configurar o plug-in
- Criar as funções JavaScript
- Copiar ficheiros de configuração do projeto
- Testar o agente e o plug-in
- Efetuar alterações no agente
Pré-requisitos
- Requisitos especificados em Requisitos para opções de extensibilidade do Copilot
- Visual Studio Code
- Node.js 18, 20 ou 22
- Toolkit de Agentes do Microsoft 365 (uma evolução do Teams Toolkit)
Criar o projeto
Comece por criar um agente declarativo básico.
Abra o Visual Studio Code.
Selecione Toolkit de Agentes do Microsoft 365 na barra de atividade.
Selecione Criar um Novo Agente/Aplicação.
Selecione Agente Declarativo.
Selecione Sem Ação para criar um agente declarativo básico.
Na lista Pastas da Área de Trabalho, selecione Pasta predefinida para armazenar a pasta raiz do projeto na localização predefinida ou navegue para uma pasta onde pretende colocar o novo projeto de agente.
Introduza
Excel Agent
como o Nome da Aplicação e prima Enter.O projeto é aberto numa nova janela de Visual Studio Code. Feche a janela de Visual Studio Code original.
Configurar o manifesto
Os passos seguintes configuram o manifesto.
Abra o ficheiro manifest.json na pasta appPackage .
Tem de utilizar a versão de pré-visualização do esquema de manifesto, por isso, substitua as
$schema
propriedades emanifestVersion
pelo seguinte."$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json", "manifestVersion": "devPreview",
Na raiz do manifesto, adicione a seguinte propriedade de autorização . Esta propriedade dá ao seu agente permissão para ler e escrever em documentos do Office.
"authorization": { "permissions": { "resourceSpecific": [ { "name": "Document.ReadWrite.User", "type": "Delegated" } ] } }
Na raiz do manifesto, adicione a seguinte propriedade extensions . Acerca deste código, tenha em atenção o seguinte.
- A
requirements.scopes
propriedade garante que o agente só está disponível no Excel e não noutras aplicações do Office. - O objeto no configura o
runtimes
runtime javaScript que o Office utiliza para executar as APIs da Biblioteca JavaScript do Office que o seu agente invoca. - A
code.script
propriedade especifica o URL de um ficheiro JavaScript que contém as funções que chamam as APIs da Biblioteca JavaScript do Office. Esse mesmo ficheiro contém uma invocação do método Office.actions.associate para mapear a função para um ID de ação. Irá criar este ficheiro num passo posterior. - A
code.page
propriedade especifica o URL de uma página Web que contém uma etiqueta incorporada<script>
que carrega o ficheiro que é referência nacode.page
propriedade . Irá criar este ficheiro num passo posterior. - O objeto runtime inclui uma
actions
matriz que inclui um objeto de ação - O valor da
actions.id
propriedade é o mesmo ID de ação que é transmitido à chamada deassociate
. - A
actions.type
propriedade está definida comoexecuteDataFunction
, que é o tipo que pode aceitar parâmetros quando invocada por Copilot.
"extensions": [ { "requirements": { "scopes": [ "workbook" ] }, "runtimes": [ { "id": "ContosoAgentRuntime", "type": "general", "code": { "page": "https://localhost:3000/commands.html", "script": "https://localhost:3000/commands.js" }, "lifetime": "short", "actions": [ { "id": "FillColor", "type": "executeDataFunction" } ] } ] } ]
- A
A documentação de referência para o manifesto JSON está em Referência do esquema de manifesto da aplicação Microsoft 365.
Configurar o agente declarativo
Abra o ficheiro declarativeAgent.json na pasta appPackage .
Substitua o respetivo conteúdo pelo seguinte código. Acerca deste JSON, tenha em atenção o seguinte:
- A
actions.id
propriedade neste ficheiro é o ID coletivo de todas as funções no ficheiro especificado emactions.file
. Normalmente, não deve corresponder aoextensions.runtimes.actions.id
no manifesto, que é o ID de uma ação específica. - Crie o ficheiro que especificar na
actions.file
propriedade num passo seguinte.
{ "$schema": "https://developer.microsoft.com/json-schemas/copilot/declarative-agent/v1.4/schema.json", "version": "v1.4", "name": "Excel Agent", "description": "Agent for working with Excel cells.", "instructions": "You are an agent for working with an add-in. You can work with any cells, not just a well-formatted table.", "conversation_starters": [ { "title": "Change cell color", "text": "I want to change the color of cell B2 to orange" } ], "actions": [ { "id": "ExcelActions", "file": "Office-API-local-plugin.json" } ] }
- A
A documentação de referência para agentes declarativos está em Esquema de agente declarativo 1.4 para Microsoft 365 Copilot.
Configurar o plug-in
Crie um ficheiro na pasta appPackage e atribua-lhe o nome atribuído à
actions.file
propriedade no ficheiro declarativeAgent.json : Office-API-local-plugin.json.Cole o seguinte conteúdo no ficheiro. Sobre este JSON, tenha em atenção os seguintes detalhes:
- O ficheiro de configuração do plug-in da API especifica as funções do plug-in no sentido das ações do agente e não das funções JavaScript. Inclui as instruções para cada ação. Também configura o runtime para Copilot. (Configurou o runtime para o Office no manifesto num passo anterior.)
- O
functions.name
tem de corresponder àextensions.runtimes.actions.id
propriedade no manifesto do suplemento:FillColor
. - A
runtimes.run_for_functions
matriz tem de incluir a mesma cadeia de carateres oufunctions.name
uma cadeia de carateres universais que corresponda à mesma. - A
runtimes.spec.local_endpoint
propriedade especifica que a função JavaScript associada àFillColor
cadeia está disponível na Biblioteca JavaScript do Office, em vez de em algum ponto final REST.
{ "$schema": "https://developer.microsoft.com/json-schemas/copilot/plugin/v2.3/schema.json", "schema_version": "v2.3", "name_for_human": "Excel Agent", "description_for_human": "Excel actions in agent", "namespace": "addInFunction", "functions": [ { "name": "FillColor", "description": "FillColor changes a single cell location to a specific color.", "parameters": { "type": "object", "properties": { "Cell": { "type": "string", "description": "A cell location in the format of A1, B2, etc.", "default": "B2" }, "Color": { "type": "string", "description": "A color in hex format, e.g., #30d5c8", "default": "#30d5c8" } }, "required": [ "Cell", "Color" ] }, "returns": { "type": "string", "description": "A string indicating the result of the action." }, "states": { "reasoning": { "description": "`FillColor` changes the color of a single cell based on the grid location and a color value.", "instructions": "The user will pass ask for a color that isn't in the hex format needed in most cases, make sure to convert to the closest approximation in the right format." }, "responding": { "description": "`FillColor` changes the color of a single cell based on the grid location and a color value.", "instructions": "If there is no error present, tell the user the cell location and color that was set." } } } ], "runtimes": [ { "type": "LocalPlugin", "spec": { "local_endpoint": "Microsoft.Office.Addin" }, "run_for_functions": [ "FillColor" ] } ] }
A documentação de referência para plug-ins de API está no esquema de manifesto de plug-in da API 2.3 para Microsoft 365 Copilot.
Criar as funções JavaScript
Na raiz do projeto, crie uma pasta com o nome src e, em seguida, crie uma subpasta com o nome comandos.
Na pasta de comandos , crie um ficheiro com o nome commands.ts e atribua-lhe o seguinte conteúdo. Tenha em atenção os seguintes detalhes sobre este código.
- A
fillColor
função define a cor de fundo da célula especificada para a cor especificada. Chama objetos e métodos da Biblioteca JavaScript do Office, que é carregada para o runtime javaScript por um ficheiro que cria num passo posterior. - O primeiro parâmetro do
associate
método tem de corresponder exatamente àextensions.runtimes.actions.id
propriedade no manifesto e àfunctions.name
propriedade nos plug-ins da API JSON. - O
message
parâmetro é um objeto transmitido pelo runtime copilot para o runtime javaScript no Office. É um objeto que contém o endereço da célula e os parâmetros de cor como o utilizador especificou num pedido de linguagem natural, como "Definir a célula C4 como verde".
async function fillColor(cell, color) { // @ts-ignore await Excel.run(async (context) => { context.workbook.worksheets.getActiveWorksheet().getRange(cell).format.fill.color = color; await context.sync(); }) } // @ts-ignore Office.onReady((info) => { // @ts-ignore Office.actions.associate("FillColor", async (message) => { const { Cell: cell, Color: color } = JSON.parse(message); await fillColor(cell, color); return "Cell color changed."; }) });
- A
Na pasta de comandos , crie um ficheiro com o nome commands.html e atribua-lhe o seguinte conteúdo. Este ficheiro é necessário porque os ficheiros JavaScript não podem ser carregados diretamente para o tipo de runtime que o Office utiliza para plug-ins da API copilot. Em vez disso, um ficheiro HTML com um
<script>
elemento carrega o JavaScript. Tenha em atenção os seguintes detalhes sobre este ficheiro.- Uma vez que a única finalidade do ficheiro é carregar outros ficheiros, o
<body>
elemento está vazio. O ficheiro não tem IU e nunca é apresentado aos utilizadores. - Carrega o ficheiro office.js, que é a Biblioteca JavaScript do Office, a partir de um servidor Microsoft.
-
Não tem um
<script>
elemento para carregar um ficheiro decommands.js (transpiado do commands.ts que criou) porque este<script>
elemento é adicionado no momento da compilação por um ficheiro que adiciona num passo posterior. - Quando o projeto é criado e servido num servidor, o URL deste ficheiro HTML corresponde ao valor da
extensions.runtimes.code.page
propriedade no manifesto. Veja Configurar o manifesto anteriormente neste artigo.
<html> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> <!-- Office JavaScript API --> <script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js"></script> </head> <body> </body> </html>
- Uma vez que a única finalidade do ficheiro é carregar outros ficheiros, o
Copiar ficheiros de configuração do projeto
O Office utiliza a infraestrutura dos Suplementos do Office para executar plug-ins de API para a biblioteca javaScript do Office. Durante o período de pré-visualização inicial dos plug-ins locais da API do Office, não existe um modelo do Toolkit de Agentes para este tipo de projeto. Por este motivo, alguns ficheiros utilizados pelo Toolkit de Agentes para o desenvolvimento de Suplementos do Office têm de ser adicionados ao projeto. A forma mais rápida de gerar esses ficheiros é criar um projeto de suplemento, copiar os ficheiros necessários do projeto de suplemento para este projeto de agente e, em seguida, fazer algumas edições leves.
Abra uma nova janela de Visual Studio Code.
Selecione Toolkit de Agentes do Microsoft 365 na barra de atividade.
Selecione Criar um Novo Agente/Aplicação.
Selecione Suplemento do Office.
Selecione Painel de tarefas.
Na lista Pastas da Área de Trabalho, selecione Pasta predefinida para armazenar a pasta raiz do projeto na localização predefinida ou navegue para uma pasta onde pretende colocar o novo projeto de agente.
Introduza qualquer cadeia como o Nome da Aplicação e prima Enter.
O projeto é aberto numa nova janela de Visual Studio Code. Feche a nova janela Visual Studio Code e a janela a partir da qual criou o projeto.
Copie os seguintes ficheiros da raiz do projeto de suplemento que criou para a raiz do projeto de plug-in da API. Depois de copiar os ficheiros, elimine a pasta do projeto do suplemento.
- babel.config.json
- package.json
- tsconfig.json
- webpack.config.js
Observação
Alguns dos conteúdos destes ficheiros não são necessários para o projeto de plug-in da API. Nos restantes passos desta secção, só faz as alterações mínimas a estes ficheiros necessários para garantir que o plug-in é executado corretamente. Estamos a trabalhar arduamente para desenvolver um modelo de projeto do Toolkit de Agentes para plug-ins que chamam APIs da Biblioteca JavaScript do Office.
Em Visual Studio Code, abra o ficheiro webpack.config.js.
Localize a definição do
entry
objeto e, em seguida, elimine ataskpane
propriedade do mesmo. Quando terminar, a propriedade deverá ter oentry
seguinte aspeto.entry: { polyfill: ["core-js/stable", "regenerator-runtime/runtime"], commands: "./src/commands/commands.ts", },
Localize a definição da
plugins
matriz. Na parte superior encontra-se uma chamada de para um painel denew HtmlWebpackPlugin
tarefas de suplemento. Elimine esta chamada denew HtmlWebpackPlugin
. Quando terminar, todaplugins
a matriz deverá ter o seguinte aspeto.plugins: [ new CopyWebpackPlugin({ patterns: [ { from: "appPackage/assets/*", to: "assets/[name][ext][query]", }, { from: "appPackage/manifest*.json", to: "[name]" + "[ext]", transform(content) { if (dev) { return content; } else { return content.toString().replace(new RegExp(urlDev, "g"), urlProd); } }, }, ], }), new HtmlWebpackPlugin({ filename: "commands.html", template: "./src/commands/commands.html", chunks: ["polyfill", "commands"], }), ],
Na pasta appPackage , existem dois ficheiros de imagem; color.png e outline.png. Para trabalhar com a infraestrutura de ferramentas de suplementos, estes ficheiros têm de ser movidos. Crie uma subpasta com o nome assets na pasta appPackage e mova os dois ficheiros para a mesma.
Abra manifest.json e altere os valores das
color
propriedades eoutline
para corresponderem às novas localizações. Quando terminar, a propriedade deverá ter oicons
seguinte aspeto."icons": { "outline": "assets/outline.png", "color": "assets/color.png" },
Testar o agente e o plug-in
Na interface de linha de comandos (CLI), navegue para a raiz do projeto de plug-in da API e, em seguida, execute
npm install
. Aguarde a instalação ser concluída.Feche todos os aplicativos do Office.
No Visual Studio Code, selecione Microsoft 365 Agents Toolkit na barra de atividade e, em seguida, no painel CONTAS, certifique-se de que tem sessão iniciada numa conta do Microsoft 365 na qual o suporte está ativado para o Copilot e para carregar aplicações personalizadas.
Selecione Aprovisionar no painel CICLO DE VIDA .
Entre outras coisas, o aprovisionamento cria uma pasta de criação dentro da pasta appPackage com o ficheiro zip do pacote. O ficheiro contém o manifesto e os ficheiros JSON para o agente e plug-in.
Na sua CLI na raiz do projeto, execute
npm run dev-server
para iniciar o servidor no localhost.Observação
Se lhe for pedido para eliminar um certificado antigo e/ou para instalar um novo, aceite ambos os pedidos.
Aguarde até ver uma linha na janela do servidor semelhante ao seguinte exemplo que indica que a aplicação foi compilada com êxito. Esta saída significa que o servidor está a executar e a servir os ficheiros.
webpack 5.99.8 compiled successfully in 1090 ms
O primeiro passo no teste depende da plataforma.
- Para testar no Office no Windows, abra o Excel e, em seguida, abra (ou crie) um livro.
- Para testar no Office na Web, num browser, navegue até
https://excel.cloud.microsoft
e, em seguida, abra (ou crie) um livro.
Abra Copilot a partir do friso e selecione o controlo de hambúrguer no painel Copilot . O Agente do Excel deve estar na lista de agentes. (Poderá ter de selecionar Ver mais para garantir que todos os agentes estão listados.) Se o agente não estiver listado, experimente uma ou ambas as ações seguintes.
- Aguarde alguns minutos e recarregue o Copilot.
- Com Copilot aberto à lista de agentes, coloque o cursor na janela Copilot e prima Ctrl+R.
Selecione Agente do Excel, selecione o iniciador de conversação Alterar cor da célula e, em seguida, selecione o controlo Enviar na caixa de conversação na parte inferior do painel. Em alguns segundos, deverá ver um pedido de confirmação semelhante ao seguinte.
Selecione Confirmar em resposta ao pedido de confirmação. A cor da célula deve mudar.
Dica
Se Copilot comunicar um erro, repita o pedido, mas adicione a seguinte frase ao pedido: "Se receber um erro, comunique-me o texto completo do erro."
Experimente introduzir outras combinações de célula e cor na caixa de conversação, como "Definir a célula G5 para a cor do céu".
Efetuar alterações no agente
O recarregamento em direto e o recarregamento frequente de um plug-in da API do Office não são suportados no período de pré-visualização. Para fazer alterações, primeiro encerre o servidor e desinstale o agente com estes passos.
Encerrar o servidor depende da janela em que está a ser executado.
- Se o servidor Web estiver em execução na mesma linha de comandos ou Visual Studio Code TERMINAL onde executou
npm run dev-server
, concentre-se na janela e prima Ctrl+C. Para terminar o processo, selecione "Y" em resposta ao pedido. - Se o servidor Web estiver em execução numa janela separada, numa linha de comandos, shell bash ou Visual Studio Code TERMINAL na raiz do projeto, execute
npm run stop
. A janela do servidor é fechada.
- Se o servidor Web estiver em execução na mesma linha de comandos ou Visual Studio Code TERMINAL onde executou
Limpe a cache do Office ao seguir as instruções em Limpar manualmente a cache.
Abra o Teams e selecione Aplicações na barra de atividade e, em seguida, selecione Gerir as suas aplicações na parte inferior do painel Aplicações .
Localize o Excel Agentdev na lista de aplicações.
Para expandir a linha, selecione a seta de cabeça para a esquerda do nome.
Selecione o ícone do caixote do lixo junto à extremidade direita da linha e, em seguida, selecione Remover na linha de comandos.
Faça as alterações e, em seguida, repita os passos em Testar o agente e o plug-in.