Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
La característica de desarrollo descrita en este artículo está en versión preliminar. Le recomendamos que experimente con esta característica, pero no debe usarse en un complemento de producción. Las siguientes son las limitaciones durante la versión preliminar inicial:
- La característica solo está habilitada para Office en Windows y Office en la Web. Estamos trabajando para ofrecer soporte técnico a Office en Mac.
- La característica solo está habilitada para Excel, PowerPoint o Word. Estamos trabajando para ofrecer soporte técnico a Outlook.
Un complemento para un agente declarativo puede llamar a las API de la biblioteca de JavaScript de Office para realizar operaciones de lectura y escritura en el contenido y los metadatos de un documento de Office que está abierto actualmente en una aplicación de Office. Esta capacidad permite a Copilot trabajar con documentos de Office de maneras precisas y sin errores que, de lo contrario, requerirían un complemento de Office.
Relación de los agentes de Copilot con el marco de complementos de Office
Tanto los complementos de Office como los complementos de agente declarativo llaman a las API en la biblioteca de JavaScript de Office y una extensión de Microsoft 365 que usa la biblioteca puede incluir un complemento, un complemento o ambos. El mejor enfoque depende de los escenarios de usuario que la extensión debe habilitar.
- Si la extensión debe proporcionar acciones simples y rápidas que no necesitan parámetros pasados, incluya solo un complemento con botones o menús personalizados de la cinta de opciones, denominados comandos de complemento.
- Si la extensión necesita una experiencia de panel, necesita que el usuario configure la configuración, debe mostrar metadatos sobre el contenido del documento de Office o necesita una experiencia similar a una página por cualquier otro motivo, incluya un complemento con un panel de tareas.
- Si la extensión necesita proporcionar acciones complejas que requieran parámetros pasados en tiempo de ejecución o necesiten una interfaz de lenguaje natural, incluya un agente de Copilot.
Escenarios
A continuación se muestran algunas maneras seleccionadas en las que un agente de Copilot que llama a las API de la biblioteca de JavaScript de Office mejora el valor de una extensión de Microsoft 365.
Análisis de contenido: Un agente se puede usar para analizar el contenido de un documento, una presentación o una hoja de cálculo y tomar medidas en función de lo que encuentre. Estos son algunos ejemplos.
- Un agente analiza una solicitud de propuesta (RFP) y, a continuación, captura las respuestas a las preguntas del RFP desde un sistema back-end. El usuario simplemente pide al agente que "rellene las respuestas que conoce a las preguntas".
- Un agente analiza un documento, o una tabla de una hoja de cálculo, para el contenido que implica que se deben realizar ciertas acciones, ya sea en el propio documento o en otro lugar de los sistemas empresariales del cliente. El usuario podría pedir al agente que "revise el documento de los elementos que faltó en la lista de auditoría".
Inserción de datos de confianza: Si hace una pregunta a un motor de IA típico, combina información que encuentra y compone una respuesta; un proceso que puede introducir imprecisiones. Pero un agente de Copilot basado en un complemento puede insertar datos sin cambios desde un origen de confianza. Por ejemplo:
- Considere la posibilidad de un agente que permita la inserción de investigaciones legales en Word donde se pueda editar. Un usuario pregunta al agente "¿En qué circunstancias puede un arrendador romper unilateralmente una concesión de espacio residencial en Indiana?" A continuación, el agente captura el contenido, sin cambios, de los precedentes y estatutos, y lo inserta en el documento.
- Considere la posibilidad de un agente que administre el inventario de recursos digitales. En el chat del agente de Copilot, un usuario pregunta "Insertar una tabla de nuestras fotos de color con el nombre de cada una, el número de veces que se descargó y su tamaño en megabytes, ordenados por orden de la mayoría descargados". A continuación, el agente captura estos datos, sin cambios, del sistema de registro e inserta la tabla en una hoja de cálculo de Excel.
Cuando el agente se combina con un complemento, se habilitan aún más escenarios. Incluir un agente de Microsoft 365 Copilot con un complemento de Office proporciona al menos dos ventajas al complemento:
- Copilot se convierte en una interfaz de lenguaje natural para la funcionalidad del complemento.
- El agente puede pasar parámetros al JavaScript que invoca, lo que no es posible cuando se invoca un comando de función en un complemento desde un botón o elemento de menú.
Aprender a usar el complemento es una manera de que un agente pueda mejorar un complemento. Cuando un usuario necesita realizar varios pasos o tareas con el complemento para lograr un objetivo, la interfaz de chat de Copilot puede facilitar el proceso de introducción al complemento. Por ejemplo, considere una firma legal que necesita tener una lista de preguntas que se deben responder sobre cada concesión que prepara. La creación de esta lista de preguntas puede llevar mucho tiempo y consumir mucho trabajo. Pero se puede pedir a un agente de Copilot que genere un primer borrador de lista de preguntas y que las inserte en un documento de Word mediante la biblioteca de JavaScript de Office.
Creación del primer complemento de la biblioteca de JavaScript de Office
Estos son los pasos principales para crear un complemento de API para un agente de Copilot que llama a las API de la biblioteca de JavaScript de Office.
- Asegúrese de que cumple los requisitos previos
- Cree el proyecto
- Configuración del manifiesto
- Configuración del agente declarativo
- Configuración del complemento
- Creación de las funciones de JavaScript
- Copia de archivos de configuración del proyecto
- Prueba del agente y el complemento
- Realizar cambios en el agente
Requisitos previos
- Requisitos especificados en Requisitos para las opciones de extensibilidad de Copilot
- Visual Studio Code
- Node.js 18, 20 o 22
- Microsoft 365 Agents Toolkit (una evolución del kit de herramientas de Teams)
Cree el proyecto
Empiece por crear un agente declarativo básico.
Abra Visual Studio Code.
Seleccione Microsoft 365 Agents Toolkit en la barra de actividad.
Seleccione Crear un nuevo agente o aplicación.
Seleccione Agente declarativo.
Seleccione Sin acción para crear un agente declarativo básico.
En la lista Carpeta del área de trabajo, seleccione Carpeta predeterminada para almacenar la carpeta raíz del proyecto en la ubicación predeterminada o vaya a una carpeta donde quiera colocar el nuevo proyecto de agente.
Escriba
Excel Agent
como nombre de la aplicación y presione Entrar.El proyecto se abre en una nueva ventana de Visual Studio Code. Cierre la ventana de Visual Studio Code original.
Configuración del manifiesto
Los pasos siguientes configuran el manifiesto.
Abra el archivo manifest.json en la carpeta appPackage .
Debe usar la versión preliminar del esquema de manifiesto, por lo que debe reemplazar las
$schema
propiedades ymanifestVersion
por lo siguiente."$schema": "https://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.schema.json", "manifestVersion": "devPreview",
En la raíz del manifiesto, agregue la siguiente propiedad de autorización . Esta propiedad concede al agente permiso para leer y escribir en documentos de Office.
"authorization": { "permissions": { "resourceSpecific": [ { "name": "Document.ReadWrite.User", "type": "Delegated" } ] } }
En la raíz del manifiesto, agregue la siguiente propiedad extensiones . Sobre este código, tenga en cuenta lo siguiente.
- La
requirements.scopes
propiedad garantiza que el agente solo está disponible en Excel, no en otras aplicaciones de Office. - El objeto de
runtimes
configura el entorno de ejecución de JavaScript que Usa Office para ejecutar las API de biblioteca de JavaScript de Office que invoca el agente. - La
code.script
propiedad especifica la dirección URL de un archivo JavaScript que contiene las funciones que llaman a las API de la biblioteca de JavaScript de Office. Ese mismo archivo contiene una invocación del método Office.actions.associate para asignar la función a un identificador de acción. Este archivo se crea en un paso posterior. - La
code.page
propiedad especifica la dirección URL de una página web que contiene una etiqueta incrustada<script>
que carga el archivo al que se hace referencia en lacode.page
propiedad . Este archivo se crea en un paso posterior. - El objeto en tiempo de ejecución incluye una
actions
matriz que incluye un objeto de acción. - El valor de la
actions.id
propiedad es el mismo identificador de acción que se pasa a la llamada deassociate
. - La
actions.type
propiedad se establece enexecuteDataFunction
, que es el tipo que puede aceptar parámetros cuando copilot lo invoca.
"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" } ] } ] } ]
- La
La documentación de referencia del JSON del manifiesto se encuentra en La referencia del esquema del manifiesto de aplicación de Microsoft 365.
Configuración del agente declarativo
Abra el archivo declarativeAgent.json en la carpeta appPackage .
Reemplace su contenido por el código siguiente. Sobre este JSON, tenga en cuenta lo siguiente:
- La
actions.id
propiedad de este archivo es el identificador colectivo de todas las funciones del archivo especificado enactions.file
. Normalmente no debe coincidir con enextensions.runtimes.actions.id
el manifiesto, que es el identificador de una acción específica. - El archivo que especifique en la
actions.file
propiedad se creará en un paso siguiente posterior.
{ "$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" } ] }
- La
La documentación de referencia de los agentes declarativos se encuentra en el esquema de agente declarativo 1.4 para Microsoft 365 Copilot.
Configuración del complemento
Cree un archivo en la carpeta appPackage y asígnele el nombre asignado a la
actions.file
propiedad en el archivo declarativeAgent.json : Office-API-local-plugin.json.Pegue el siguiente contenido en el archivo. Sobre este JSON, tenga en cuenta los detalles siguientes:
- El archivo de configuración del complemento de API especifica las funciones del complemento en el sentido de las acciones del agente, no las funciones de JavaScript. Incluye las instrucciones para cada acción. También configura el tiempo de ejecución para Copilot. (Ha configurado el tiempo de ejecución de Office en el manifiesto en un paso anterior).
-
functions.name
debe coincidir con laextensions.runtimes.actions.id
propiedad del manifiesto del complemento:FillColor
. - La
runtimes.run_for_functions
matriz debe incluir la misma cadenafunctions.name
que o una cadena comodín que coincida con ella. - La
runtimes.spec.local_endpoint
propiedad especifica que la función de JavaScript asociada a laFillColor
cadena está disponible en la biblioteca de JavaScript de Office, en lugar de en algún punto de conexión 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" ] } ] }
La documentación de referencia de los complementos de API se encuentra en el esquema de manifiesto del complemento de API 2.3 para Microsoft 365 Copilot.
Creación de las funciones de JavaScript
En la raíz del proyecto, cree una carpeta denominada src y, a continuación, cree una subcarpeta bajo los comandos con nombre.
En la carpeta de comandos , cree un archivo denominado commands.ts y asígnele el siguiente contenido. Tenga en cuenta los siguientes detalles sobre este código.
- La
fillColor
función establece el color de fondo de la celda especificada en el color especificado. Llama a objetos y métodos de la biblioteca de JavaScript de Office, que se carga en el entorno de ejecución de JavaScript mediante un archivo que se crea en un paso posterior. - El primer parámetro del
associate
método debe coincidir exactamente con laextensions.runtimes.actions.id
propiedad del manifiesto y con lafunctions.name
propiedad del JSON de complementos de API. - El
message
parámetro es un objeto pasado por el entorno de ejecución de Copilot al runtime de JavaScript en Office. Se trata de un objeto que contiene la dirección de celda y los parámetros de color que el usuario especificó en un símbolo del sistema de lenguaje natural, como "Establecer la celda C4 en 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."; }) });
- La
En la carpeta de comandos , cree un archivo denominado commands.html y asígnele el siguiente contenido. Este archivo es necesario porque los archivos de JavaScript no se pueden cargar directamente en el tipo de tiempo de ejecución que Office usa para los complementos de api de Copilot. En su lugar, un archivo HTML con un
<script>
elemento carga JavaScript. Tenga en cuenta los siguientes detalles sobre este archivo.- Dado que el único propósito del archivo es cargar otros archivos, el
<body>
elemento está vacío. El archivo no tiene interfaz de usuario y nunca se muestra a los usuarios. - Carga el archivo office.js, que es la biblioteca de JavaScript de Office, desde un servidor de Microsoft.
-
No tiene un
<script>
elemento para cargar un archivo commands.js (transpilado desde el commands.ts que creó) porque este<script>
elemento se agrega en tiempo de compilación mediante un archivo que se agrega en un paso posterior. - Cuando el proyecto se compila y sirve en un servidor, la dirección URL de este archivo HTML coincide con el valor de la
extensions.runtimes.code.page
propiedad en el manifiesto. Consulte Configuración del manifiesto anteriormente en este artículo.
<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>
- Dado que el único propósito del archivo es cargar otros archivos, el
Copia de archivos de configuración del proyecto
Office usa la infraestructura de complementos de Office para ejecutar complementos de API para la biblioteca de JavaScript de Office. Durante el período de versión preliminar inicial de los complementos de api de Office locales, no hay una plantilla de Agents Toolkit para este tipo de proyecto. Por este motivo, algunos archivos usados por Agents Toolkit para el desarrollo de complementos de Office deben agregarse al proyecto. La forma más rápida de generar esos archivos es crear un proyecto de complemento, copiar los archivos necesarios del proyecto de complemento en este proyecto de agente y, a continuación, realizar algunas modificaciones ligeras.
Abra una nueva ventana Visual Studio Code.
Seleccione Microsoft 365 Agents Toolkit en la barra de actividad.
Seleccione Crear un nuevo agente o aplicación.
Seleccione Complemento de Office.
Seleccione Panel de tareas.
En la lista Carpeta del área de trabajo, seleccione Carpeta predeterminada para almacenar la carpeta raíz del proyecto en la ubicación predeterminada o vaya a una carpeta donde quiera colocar el nuevo proyecto de agente.
Escriba cualquier cadena como nombre de aplicación y presione Entrar.
El proyecto se abre en una nueva ventana de Visual Studio Code. Cierre la nueva ventana Visual Studio Code y la que creó el proyecto.
Copie los siguientes archivos de la raíz del proyecto de complemento que creó en la raíz del proyecto de complemento de API. Después de copiar los archivos, elimine la carpeta del proyecto del complemento.
- babel.config.json
- package.json
- tsconfig.json
- webpack.config.js
Nota:
Parte del contenido de estos archivos no es necesario para el proyecto de complemento de API. En los pasos restantes de esta sección, solo realizará los cambios mínimos en estos archivos que son necesarios para asegurarse de que el complemento se instala de forma local y se ejecuta correctamente. Estamos trabajando duro para desarrollar una plantilla de proyecto de Agents Toolkit para complementos que llamen a las API de la biblioteca de JavaScript de Office.
En Visual Studio Code, abra el archivo webpack.config.js.
Busque la definición del
entry
objeto y, a continuación, elimine lataskpane
propiedad de él. Cuando haya terminado, laentry
propiedad debe tener un aspecto similar al siguiente.entry: { polyfill: ["core-js/stable", "regenerator-runtime/runtime"], commands: "./src/commands/commands.ts", },
Busque la definición de la
plugins
matriz. En la parte superior hay una llamada de para un panel denew HtmlWebpackPlugin
tareas de complemento. Elimine esta llamada denew HtmlWebpackPlugin
. Cuando haya terminado, todaplugins
la matriz debería tener un aspecto similar al siguiente.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"], }), ],
En la carpeta appPackage , hay dos archivos de imagen; color.png y outline.png. Para trabajar con la infraestructura de herramientas de complemento, estos archivos deben moverse. Cree una subcarpeta denominada assets en la carpeta appPackage y mueva los dos archivos a ella.
Abra manifest.json y cambie los valores de las
color
propiedades youtline
para que coincidan con sus nuevas ubicaciones. Cuando haya terminado, laicons
propiedad debe tener un aspecto similar al siguiente."icons": { "outline": "assets/outline.png", "color": "assets/color.png" },
Prueba del agente y el complemento
En la interfaz de la línea de comandos (CLI), vaya a la raíz del proyecto del complemento de API y ejecute
npm install
. Espere a que termine la instalación.Cierre todas las aplicaciones de Office.
En Visual Studio Code, seleccione Microsoft 365 Agents Toolkit en la barra de actividad y, a continuación, en el panel CUENTAS, asegúrese de que ha iniciado sesión en una cuenta de Microsoft 365 en la que se habilita la compatibilidad con Copilot y para cargar aplicaciones personalizadas.
Seleccione Aprovisionar en el panel CICLO DE VIDA .
Entre otras cosas, el aprovisionamiento crea una carpeta de compilación dentro de la carpeta appPackage con el archivo zip del paquete. El archivo contiene el manifiesto y los archivos JSON para el agente y el complemento.
En la CLI de la raíz del proyecto, ejecute
npm run dev-server
para iniciar el servidor en localhost.Nota:
Si se le pide que elimine un certificado antiguo o que instale uno nuevo, acepte ambas solicitudes.
Espere hasta que vea una línea en la ventana del servidor similar al ejemplo siguiente que indica que la aplicación se compiló correctamente. Esta salida significa que el servidor está ejecutando y sirviendo los archivos.
webpack 5.99.8 compiled successfully in 1090 ms
El primer paso en las pruebas depende de la plataforma.
- Para probar en Office en Windows, abra Excel y, a continuación, abra (o cree) un libro.
- Para probar en Office en la Web, en un explorador, vaya a y, a
https://excel.cloud.microsoft
continuación, abra (o cree) un libro.
Abra Copilot en la cinta de opciones y seleccione el control de hamburguesa en el panel Copilot . El Agente de Excel debe estar en la lista de agentes. (Es posible que tenga que seleccionar Ver más para asegurarse de que todos los agentes están en la lista). Si el agente no aparece en la lista, pruebe una o ambas de las siguientes acciones.
- Espere unos minutos y vuelva a cargar Copilot.
- Con Copilot abierto a la lista de agentes, coloque el cursor en la ventana de Copilot y presione Ctrl+R.
Seleccione Agente de Excel, seleccione el inicio de conversación Cambiar color de celda y, a continuación, seleccione el control Enviar en el cuadro de conversación de la parte inferior del panel. En unos segundos, debería ver un mensaje de confirmación similar al siguiente.
Seleccione Confirmar en respuesta al mensaje de confirmación. El color de la celda debe cambiar.
Sugerencia
Si Copilot informa de un error, repita el mensaje, pero agregue la siguiente oración al mensaje: "Si recibe un error, notifique el texto completo del error a mí".
Intente escribir otras combinaciones de celda y color en el cuadro de conversación, como "Establecer la celda G5 en el color del cielo".
Realizar cambios en el agente
No se admite la recarga activa ni la recarga activa de un complemento de API de Office en el período de vista previa. Para realizar cambios, apague primero el servidor y desinstale el agente con estos pasos.
Apagar el servidor depende de la ventana en la que se ejecuta.
- Si el servidor web se ejecuta en el mismo símbolo del sistema o Visual Studio Code TERMINAL donde ejecutó
npm run dev-server
, asigne el foco de la ventana y presione Ctrl+C. Para finalizar el proceso, elija "Y" en respuesta al aviso. - Si el servidor web se ejecuta en una ventana independiente, en un símbolo del sistema, un shell de Bash o Visual Studio Code TERMINAL en la raíz del proyecto, ejecute
npm run stop
. Se cierra la ventana del servidor.
- Si el servidor web se ejecuta en el mismo símbolo del sistema o Visual Studio Code TERMINAL donde ejecutó
Borre la memoria caché de Office siguiendo las instrucciones de Borrar manualmente la memoria caché.
Abra Teams y seleccione Aplicaciones en la barra de actividad y, a continuación, seleccione Administrar las aplicaciones en la parte inferior del panel Aplicaciones .
Busque Agente de Exceldev en la lista de aplicaciones.
Para expandir su fila, seleccione la flecha hacia la izquierda del nombre.
Seleccione el icono de papelera cerca del extremo derecho de la fila y, a continuación, seleccione Quitar en el símbolo del sistema.
Realice los cambios y repita los pasos descritos en Probar el agente y el complemento.