Compartir a través de


Cómo Copilot para Microsoft 365 decide qué complemento usar

Microsoft Copilot para Microsoft 365 es su asistente personal para el trabajo. Ayuda con varias tareas generales, como escribir, resumir, investigar y mucho más. Copilot tiene diferentes aptitudes que se corresponden con estos diferentes tipos de tareas. Por ejemplo, Copilot puede resumir los elementos de acción de una reunión, sugerir modificaciones en un archivo o realizar un seguimiento de los recursos y expertos en un tema determinado dentro de su organización. Cada aptitud tiene sus propios parámetros y salidas que se adaptan a la tarea específica.

Al igual que cualquier copiloto, Copilot para Microsoft 365 se entrena con datos en un momento dado. Para recuperar y procesar información nueva y en tiempo real, especialmente datos específicos de su organización y flujos de trabajo, Copilot requiere complementos. Los complementos amplían Copilot para las aptitudes y la utilidad de Microsoft 365 para los usuarios finales, lo que le permite elegir la aptitud adecuada de su repertorio.

Pero, ¿cómo sabe Copilot qué aptitud usar al pedir ayuda? ¿Cómo interpreta la solicitud y la compara con la mejor aptitud disponible? Ese es el trabajo del orquestador copiloto para Microsoft 365.

En este artículo se explica la lógica detrás del proceso de selección de aptitudes de Copilot y cómo puede asegurarse de que Copilot emplea su complemento en cada oportunidad para beneficiar a los usuarios.

Importante

  • Los complementos para Microsoft Copilot para Microsoft 365 están en versión preliminar pública y solo funcionan en el chat de Copilot en Microsoft Teams.
  • La funcionalidad está habilitada de forma predeterminada en todos los inquilinos con licencia de Microsoft 365 Copilot. Los administradores pueden deshabilitar esta funcionalidad en función del usuario y del grupo y controlar cómo se aprueban los complementos individuales para su uso y qué complementos están habilitados. Para obtener más información, consulte Administración de complementos para Copilot en aplicaciones integradas.

Orquestador de Copilot

Entre la entrada del lenguaje natural del usuario final a la salida del lenguaje natural de Copilot, el orquestador de Microsoft Copilot funciona en segundo plano para seleccionar y ejecutar las aptitudes adecuadas desde los complementos adecuados para la tarea especificada del usuario final.

La capa de orquestación representa la interfaz entre los LLM básicos y las muchas maneras de ampliar, enriquecer y personalizar Copilot para la forma en que funcionan los clientes.

Diagrama de la pila de tecnología de Microsoft Copilot. De abajo a arriba: Microsoft Cloud, infraestructura de IA, Sus datos, Modelos de Base, Orquestación de IA, Microsoft Copilots | Copilots, biblioteca de IA de Teams, conectores de Graph, extensibilidad de complementos

En el gráfico siguiente se muestra cómo el orquestador copiloto para Microsoft 365 selecciona el complemento adecuado, con la aptitud adecuada, en el momento adecuado, incluso cuando hay varias opciones entre las que elegir.

Ilustración visual de los pasos secuenciales del texto que sigue a esta imagen.

  1. Entrada de lenguaje natural

El usuario envía una consulta a Copilot, como "¿Qué vales se me asignan en este momento?"

  1. Comprobaciones preliminares

Copilot realiza varias comprobaciones en la consulta, incluidas las comprobaciones de IA responsables y las medidas de seguridad para asegurarse de que no supone ningún riesgo. Si la consulta produce un error en cualquiera de estas comprobaciones, Copilot finalizará la interacción.

  1. Razonamiento

El orquestador de Copilot formula un plan que consta de varias acciones que realizará en un intento de responder al aviso del usuario.

3a. Contexto y selección de herramientas:

El orquestador recupera el contexto de conversación del usuario del almacén de contexto e integra los datos de Microsoft Graph para refinar el contexto. A continuación, ajusta la consulta inicial en función de este contexto actualizado y la reenvía al LLM (modelo de lenguaje grande) para guiar los pasos siguientes. El LLM puede continuar generando una respuesta mediante las capacidades integradas de Copilot, o puede determinar que son necesarios datos adicionales. Si se necesita más información, el orquestador realiza una búsqueda de los complementos (herramientas) con la aptitud adecuada para la tarea desde los complementos habilitados para el usuario en función de las descripciones de los complementos y sus descripciones de funciones.

3b. Coincidencia de funciones y determinación de parámetros:

El orquestador formula un nuevo mensaje que incorpora la consulta inicial del usuario, el contexto actualizado y los complementos seleccionados, y lo presenta al LLM. LlM evalúa la entrada y especifica el complemento y la función óptimos dentro de ese complemento para abordar la tarea. A continuación, proporciona al orquestador los detalles de la función y los parámetros necesarios para recopilar la información necesaria.

3c. Ejecución de herramientas:

El orquestador usa la respuesta del LLM para construir una solicitud de API y enviar la solicitud al ejecutor de herramientas, que recupera de forma segura la información solicitada situada fuera de la infraestructura de Copilot. Ejecuta la solicitud y envía los resultados al orquestador para su posterior procesamiento.

3d. Análisis de resultados y formulación de respuesta:

El orquestador integra la respuesta de la API en el contexto en curso y consulta el LLM en un bucle de razonamiento continuo hasta que el LLM lo considere adecuado para generar una respuesta final.

  1. Responder

El orquestador compila toda la información recopilada durante el proceso de razonamiento y la envía al LLM para crear una respuesta final. Después de asegurarse de que la respuesta cumple con las directrices de IA responsable, envía la respuesta al orquestador, que la registra en el almacén de contexto y la entrega al usuario a través de la interfaz de usuario de Copilot.

  1. Salida del lenguaje natural

Por último, el orquestador entrega la respuesta al usuario y actualiza el estado de la conversación. Copilot está listo para su siguiente aviso.

Si se imagina el mensaje de un usuario a Copilot como un proyecto de construcción, el orquestador de Copilot es el contratista general, que coordina y organiza el trabajo de los subcontratistas especializados, sus complementos. De forma similar a un contratista general, el orquestador es responsable de garantizar que el proyecto está "completado" según las especificaciones implícitas por la entrada del usuario (es decir, que la respuesta de Copilot satisface la intención del usuario en su solicitud).

Sin embargo, es responsabilidad de cada complemento proporcionar a Copilot una descripción precisa de sus habilidades y ejecutar sus habilidades de forma eficaz. Esto infundirá una sensación de confianza en los usuarios y garantizará que Copilot llamará a su complemento cada vez que se necesiten sus habilidades. En la sección siguiente se proporcionan más detalles sobre cómo optimizar el complemento y los documentos de OpenAPI para que el orquestador lo busque y use.

Optimización del complemento

Copilot para Microsoft 365 puede elegir de forma única la aptitud adecuada de los muchos de su repertorio. Pero, ¿cómo puedes asegurarte de que Copilot elegirá tu complemento para proporcionar la aptitud adecuada?

La respuesta radica en cómo se describe el complemento, sus aptitudes y los parámetros para la ejecución de aptitudes. La especificación de descripciones concisas y precisas en el manifiesto del complemento es fundamental para garantizar que el orquestador de Copilot sepa cuándo y cómo invocar el complemento.

Mecanismos de coincidencia

Cuando un usuario envía una consulta a Copilot, el orquestador busca su catálogo completo de aptitudes (funciones) desde los complementos instalados para identificar hasta cinco aptitudes que mejor coinciden con la consulta. El orquestador primero intenta buscar coincidencias en palabras exactas (coincidencia léxica) y expande su ámbito de búsqueda según sea necesario para incluir coincidencias en significados descriptivos (coincidencia semántica), trabajando desde nombres de función específicos hasta descripciones generales del complemento, hasta que se rellenan las cinco ranuras candidatas a funciones. En concreto, esta es la jerarquía de mecanismos de coincidencia para la selección de funciones del complemento Copilot:

  1. Coincidencia léxica en el nombre de la función.
  2. Coincidencia semántica en la descripción de la función.
  3. Coincidencia léxica en el nombre del complemento (agrega todas las funciones del complemento a la lista de candidatos). Este paso se encuentra actualmente en versión preliminar privada.
  4. Coincidencia semántica en el nombre del complemento (agrega todas las funciones del complemento a la lista de candidatos).

El orquestador funciona a través de la lista anterior hasta que se rellenan las cinco ranuras candidatas a funciones.

En las secciones siguientes se proporcionan instrucciones y ejemplos para crear nombres y descripciones de complementos, aptitudes (funciones) y parámetros.

Descripciones del complemento

Las descripciones del complemento deben incluir las acciones del usuario, los tipos de entrada y los tipos de salida para los que está previsto el complemento.

Las descripciones largas y cortas de la aplicación en el manifiesto de la aplicación deben definir claramente el ámbito de la aplicación. Para representar una aplicación como un complemento en Copilot, la descripción de la aplicación debe modificarse para satisfacer los siguientes requisitos de complemento:

  • La descripción de larga duración de la aplicación debe explicar claramente cómo los usuarios pueden usar un complemento de extensión de mensaje en Copilot y qué funcionalidad pueden esperar. Por ejemplo, use la nube de Contoso en Copilot para buscar y resumir las tareas.
  • La descripción breve debe describir brevemente la funcionalidad de la aplicación en un lenguaje natural y puede incluir el nombre de la aplicación.

En la tabla siguiente se enumeran los breves ejemplos de descripción para varios escenarios de complemento:

Descripción: crear, buscar, ver incidencias, errores y proyectos.

Ejemplo de descripción de la aplicación:

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json",
  "version": "1.0.0",
  "manifestVersion": "1.16",
  "id": "2bxxxxc5-5xxx-4xxx-aXXX-94xxxx8919e5",
  "name": {
    "short": "Tasks",
    "full": "Contoso Tasks"
  },
  "description": {
    "short": "Create, search, view tickets, bugs, and projects",
    "full": "Contoso Tasks makes it easy to stay organized. Create, assign, and track tasks individually or collaboratively with your team, and see everything come together in one place."
  },

Descripciones de aptitudes

Las descripciones de aptitudes se usan para interpretar el mensaje del usuario en una intención y, a continuación, asignarlo a la aptitud más relevante disponible para Copilot. Incluya la acción que controla la aptitud y también el formato esperado de entrada y descripción de la salida.

Actualmente, la compatibilidad del complemento de extensión de mensajes de Teams se limita a los comandos de búsqueda, con compatibilidad con comandos de acción próximamente.

Las descripciones de aptitudes de búsqueda deben:

  • Céntrese en qué y cómo busca el comando (lista detallada) en lenguaje natural.
  • Incluya verbos y sinónimos, si procede.
  • Céntrese en las palabras clave que probablemente se usarán en la función de búsqueda de las aplicaciones nativas.

Descripción semántica

La propiedad semanticDescription se usa para proporcionar una descripción detallada de un comando para Copilot para Microsoft 365. La descripción semántica de los comandos admite hasta 5000 caracteres y no se muestra en la interfaz de usuario. Si la semanticDescription propiedad se deja vacía, Copilot para Microsoft 365 usa la información del description campo. Al escribir un semanticDescription, debe incluir información sobre los valores esperados, los límites y los intervalos para el comando.

La semanticDescription propiedad no es un campo obligatorio. Sin embargo, si agrega semanticDescription en el manifiesto de la aplicación, las comprobaciones de validación existentes para obtener descripciones breves, de parámetros y de comandos también se aplican a las descripciones semánticas.

En la tabla siguiente se muestran ejemplos de descripción semántica y de comandos para varios escenarios de complemento:

Descripción: busque tareas de alta prioridad relacionadas con Northwind que vencen mañana.

Ejemplo de descripción de comandos:

"commands": [
        {
          "id": "Search",
          "type": "query",
          "title": "Tasks",
          "description": "Search for high priority tasks related to Northwind that are due tomorrow",
          "semanticDescription": "Search for issues, epics, stories, tasks, sub tasks, bugs + additional details.",
          "initialRun": true,
          "fetchTask": false,
          "context": [
            "commandBox",
            "compose",
            "message"
          ],

Descripciones de parámetros

Una buena descripción del parámetro explica cuál es el parámetro, no lo que hace el parámetro y el formato esperado.

Cuando se usa directamente en el chat de Microsoft Teams y la redacción de correo de Outlook, puede usar una extensión de mensaje para consultar un parámetro a la vez. Cuando se usa como complemento, los comandos de búsqueda de extensión de mensaje admiten hasta cinco parámetros (un parámetro debe estar visible en la barra de búsqueda de la extensión de mensaje). Un parámetro debe tener una buena descripción, que debe describir la entrada esperada, incluido el formato o el tipo.

La propiedad semanticDescription se usa para proporcionar una descripción detallada de un comando para Microsoft Copilot. La descripción semántica de los parámetros admite hasta 2000 caracteres y no se muestra en la interfaz de usuario. Si la semanticDescription propiedad se deja vacía, Copilot usa la información en el description campo . Al escribir un semanticDescription, debe incluir información sobre los valores esperados, los límites y los intervalos para el comando.

A continuación se muestran algunos ejemplos de solicitudes de búsqueda básicas y avanzadas para varios escenarios de complemento:

Búsqueda básica: busque tareas relacionadas con Northwind.
Búsqueda avanzada: busque tareas de alta prioridad relacionadas con Northwind que vencen mañana.

Ejemplo de descripción de parámetros:

"parameters": [
    {
        "name": "Name",
        "title": "Project or Task Name",
        "description": "Project name or task name as keyword",
        "inputType": "text"
    },
    {
        "name": "Time",
        "title": "Time",
        "description": "Date or number of days for which to find tasks. Output: Number",
        "semanticDescription": "Date or number of days for which you need tasks for. Output: Number",
        "inputType": "text"
    },
    {
        "name": "Priority",
        "title": "Priority",
        "description": "Priority of tasks. Acceptable values: high, medium, low, NA ",
        "semanticDescription": "Priority of tasks. Acceptable values are high, medium, low, NA",
        "inputType": "text"
    }]

Paso siguiente

Obtenga información sobre los procedimientos recomendados para optimizar la detección y la utilidad de los complementos en Copilot para Microsoft 365.