Partage via


Instructions pour créer et mettre à niveau des agents Copilot

Importante

  • Les plug-ins pour Microsoft 365 Copilot sont en préversion et fonctionnent uniquement dans Microsoft 365 Copilot.
  • Les plug-ins d’extension de message sont en préversion.
  • Les plug-ins d’extensions de message dans Microsoft 365 Copilot sont en préversion publique pour Microsoft Word et PowerPoint.
  • Vérifiez que Microsoft 365 Copilot est disponible pour votre organization. Vous disposez de deux façons d’obtenir un environnement de développement pour Microsoft 365 Copilot :
    • Un locataire Microsoft 365 de bac à sable avec Microsoft 365 Copilot (disponible en préversion limitée via l’appartenance TAP).
    • Un environnement de production client d’entreprise avec des licences Microsoft 365 Copilot. Pour plus d’informations sur les instructions de validation pour les agents Copilot afin d’augmenter leurs chances d’être répertoriés dans le Team Store, consultez instructions de validation pour les agents Copilot.

Les plug-ins Microsoft 365 fournissent une intégration avec différents produits Microsoft 365, tels que Teams et Outlook. L’intégration permet aux utilisateurs de rechercher ou de créer du contenu dans des systèmes externes. Les plug-ins d’extension de message permettent aux Microsoft 365 Copilot d’interagir avec les API d’autres logiciels et services via un bot. Avec Microsoft 365 Copilot, vous pouvez :

  • Recherchez les informations ou l’enregistrement les plus récents. Par exemple, le dernier ticket d’incident ou les résultats de l’enquête.
  • Résumez les informations en fonction de plusieurs enregistrements. Par exemple, résumez tous les tickets d’incident liés au projet Northwind.

Nous vous recommandons de créer ou de mettre à niveau vos extensions de message existantes pour optimiser leur utilité et leur facilité d’utilisation dans Microsoft 365 Copilot. Les extensions de message doivent prendre en charge une ou plusieurs commandes de recherche. Étant donné que Microsoft 365 Copilot les reconnaît comme des compétences, il peut exécuter des commandes au nom de l’utilisateur.

Le graphique montre l’expérience utilisateur entre Microsoft Teams et Microsoft 365 Copilot.

Définir les descriptions des applications, des commandes et des paramètres

[Doit corriger]

Une bonne description offre un résumé clair et concis des fonctionnalités de l’application et permet Microsoft 365 Copilot de découvrir et d’exécuter efficacement les opérations de recherche. Lorsqu’un utilisateur entre le nom de l’application avec un verbe, par exemple, Rechercher des tickets Contoso, le plug-in d’extension de message doit être appelé à partir de Microsoft 365 Copilot.

Capture d’écran montrant un scénario de réussite avec un exemple d’invite d’exemple de plug-in d’extension de message dans Microsoft 365 Copilot.

Capture d’écran montrant un scénario d’échec sans exemple d’exemple d’invite d’extension de message en tant que plug-in dans Microsoft 365 Copilot.

Description de l’application

Les descriptions longues et courtes de l’application doivent être claires et définir l’étendue de l’application. Pour afficher une application en tant que plug-in dans Microsoft 365 Copilot, modifiez la description de l’application en fonction des exigences suivantes du plug-in :

  • La description longue doit expliquer clairement les fonctionnalités et l’utilisation du plug-in d’extension de message dans Microsoft 365 Copilot. Par exemple, utilisez le cloud Contoso dans Microsoft 365 Copilot pour rechercher et résumer vos tâches.
  • Une brève description doit décrire brièvement les fonctionnalités de l’application dans un langage naturel et peut inclure le nom de l’application.

Les extraits de code suivants présentent les exemples de brève description pour chaque catégorie :

Description : Créez, recherchez, affichez des tickets, des bogues et des projets.

Exemple de description de l’application :

{
  "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.13/MicrosoftTeams.schema.json",
  "version": "1.0.0",
  "manifestVersion": "1.13",
  "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."
  },

Description de la commande de recherche

La description de la commande mappe l’intention de l’utilisateur et l’énoncé à la commande de recherche à l’intérieur d’un plug-in et doit être basée sur l’analyse de l’intention de l’utilisateur et des mots clés. Les descriptions des commandes de recherche doivent :

  • Concentrez-vous sur ce que et comment la commande recherche (liste détaillée) en langage naturel.
  • Incluez des verbes et des synonymes, le cas échéant.
  • Concentrez-vous sur les mots clés susceptibles d’être utilisés dans la fonction de recherche de vos applications natives.

Description sémantique

[Bon à corriger]

La propriété semanticDescription est utilisée pour fournir une description détaillée d’une commande pour Microsoft 365 Copilot. La description sémantique des commandes prend en charge jusqu’à 5 000 caractères et n’est pas affichée dans l’interface utilisateur. Si la semanticDescription propriété est vide, Microsoft 365 Copilot utilise les informations contenues dans le description champ. Lors de l’écriture d’un semanticDescription, vous devez inclure des informations sur les valeurs attendues, les limites et les plages de la commande.

La semanticDescription propriété n’est pas un champ obligatoire. Toutefois, si vous ajoutez semanticDescription dans le manifeste de l’application, les vérifications de validation existantes pour les descriptions courtes, de paramètres et de commandes s’appliquent également aux descriptions sémantiques.

Les extraits de code suivants montrent les exemples de commande et de description sémantique pour chaque catégorie :

Description : recherchez les tâches de haute priorité liées à Northwind qui doivent être effectuées demain.

Exemple de description de commande :

"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"
          ],

Importante

Pour activer le lien de connexion OAuth dans le plug-in, veillez à true définir la initialRun propriété sur pour les commandes de recherche dans le manifeste de l’application.

Description du paramètre

Chaque commande d’extension de message a une propriété correspondante parameters , qui prend en charge jusqu’à cinq paramètres. Le premier paramètre doit être visible dans la barre de recherche de l’extension de message. Un paramètre doit avoir une bonne description, qui doit contenir une combinaison de paramètres, d’énumérations, d’acronymes et de format de sortie acceptables.

La propriété semanticDescription est utilisée pour fournir une description détaillée d’une commande pour Microsoft 365 Copilot. La description sémantique des paramètres prend en charge jusqu’à 2 000 caractères et n’est pas affichée dans l’interface utilisateur. Si la semanticDescription propriété est vide, Microsoft 365 Copilot utilise les informations contenues dans le description champ. Lors de l’écriture d’un semanticDescription, vous devez inclure des informations sur les valeurs attendues, les limites et les plages de la commande.

Une bonne description des paramètres explique les exigences du système dans un langage naturel avec un format de sortie. Voici quelques exemples de demandes de recherche de base et avancées pour chaque catégorie :

  • Recherche de base : recherchez les tâches liées à Northwind.
  • Recherche avancée : recherchez les tâches de haute priorité liées à Northwind qui doivent être effectuées demain.

Exemple de description du paramètre :

"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 you need tasks for.",
        "semanticDescription": "Date or number of days for which you need tasks for. Output: Number",
        "inputType": "text"
    },
    {
        "name": "Priority",
        "title": "Priority",
        "description": "Priority of tasks.",
        "semanticDescription": "Priority of tasks. Acceptable values are high, medium, low, NA",
        "inputType": "text"
    }] 

Améliorer l’extension de message pour récupérer des informations par le biais d’énoncés composés

[Doit corriger]

Remarque

La boîte de dialogue de recherche (appelée module de tâche dans TeamsJS v1.x) n’est pas prise en charge dans Microsoft 365 Copilot.

Par Microsoft 365 Copilot, une extension de message basée sur la recherche doit prendre en charge plus de trois énoncés composés uniques pour effectuer une récupération approfondie d’informations précises. Pour activer les énoncés composés, vous devez étendre l’étendue de la recherche afin de gérer trois paramètres ou plus en mettant à jour le manifeste de l’application (précédemment appelé manifeste d’application Teams) et en veillant à ce que les éléments suivants :

  • Mettez à jour votre service web pour prendre en charge la recherche basée sur plusieurs paramètres. Pour plus d’informations sur la façon de répondre aux demandes des utilisateurs, consultez répondre à la commande de recherche.

  • Microsoft 365 Copilot peut passer une chaîne vide ou une valeur null pour les paramètres, qui ne font pas partie de l’énoncé utilisateur. Mettez à jour votre service web pour gérer les paramètres.

  • Une extension de message prend en charge jusqu’à 10 commandes (9 utilisables) et chaque commande a une propriété correspondante parameters , qui prend en charge jusqu’à cinq paramètres.


Le code suivant est un exemple de plusieurs paramètres définis dans le manifeste de l’application :
"commands": [
                {
                    "id": "inventorySearch",
                    "context": [
                        "compose",
                        "commandBox"
                    ],
                    "description": "Search products by name, category, inventory status, supplier location, stock level",
                    "title": "Product inventory",
                    "type": "query",
                    "parameters": [
                        {
                            "name": "productName",
                            "title": "Product name",
                            "description": "Enter a product name here",
                            "inputType": "text"
                        },
                        {
                            "name": "categoryName",
                            "title": "Category name",
                            "description": "Enter the category of the product",
                            "inputType": "text"
                        },
                        {
                            "name": "inventoryStatus",
                            "title": "Inventory status",
                            "description": "Enter what status of the product inventory. Possible values are 'in stock', 'low stock', 'on order', or 'out of stock'",
                            "inputType": "text"
                        },
                        {
                            "name": "supplierCity",
                            "title": "Supplier city",
                            "description": "Enter the supplier city of product",
                            "inputType": "text"
                        },
                        {
                            "name": "stockQuery",
                            "title": "Stock level",
                            "description": "Enter a range of integers such as 0-42 or 100- (for >100 items). Only use if you need an exact numeric range.",
                            "inputType": "text"
                        }
                    ]
                },
                {
                    "id": "discountSearch",
                    "context": [
                        "compose",
                        "commandBox"
                    ],
                    "description": "Search for discounted products by category",
                    "title": "Discounts",
                    "type": "query",
                    "parameters": [
                        {
                            "name": "categoryName",
                            "title": "Category name",
                            "description": "Enter the category to find discounted products",
                            "inputType": "text"
                        }
                    ]
                },
                {
                    "id": "revenueSearch",
                    "context": [
                        "compose",
                        "commandBox"
                    ],
                    "description": "Find products based on their revenue/period",
                    "title": "Revenue",
                    "type": "query",
                    "parameters": [
                        {
                            "name": "revenueRange",
                            "title": "Revenue range",
                            "description": "Enter 'high' or 'low' or enter a range of integers such as 0-10000 or 5000- using this exact format",
                            "inputType": "text"
                        }
                    ]
                }
            ]

Capture d’écran montrant un exemple de scénario de réussite dans lequel l’application Northwind retourne une réponse pour un produit de la mer et des paramètres de stock.

Les paramètres de recherche doivent avoir des descriptions correctes avec des paramètres, des énumérations, des acronymes et un format de sortie acceptables. Pour plus d’informations et d’exemples, consultez description des paramètres.

Définir des exemples d’invites

[Doit corriger]

La samplePrompts propriété guide les utilisateurs sur l’utilisation des différents plug-ins dans Microsoft 365 Copilot. Microsoft 365 Copilot utilise les exemples d’invites pour afficher les invites de l’utilisateur. Les invites doivent être adaptables à différents paramètres régionaux et effacer les différentes commandes. Des exemples d’invites sont disponibles pour l’expérience de première exécution (FRE) dans Microsoft 365 Copilot lorsqu’un utilisateur installe ou active un plug-in pour la première fois.

Capture d’écran montrant les exemples d’invites affichés lorsque le plug-in d’extension de message est activé dans Microsoft 365 Copilot.

Remarque

  • Si le manifeste de l’application ne spécifie pas la samplePrompts propriété, les invites ne s’affichent pas.
  • La samplePrompts propriété est obligatoire pour la validation de l’application pendant le processus de soumission de l’application.
  • Si vous définissez plusieurs commandes pour votre application, un maximum de trois invites (une à partir de chacune des trois premières commandes) sont affichées à l’utilisateur. Les invites pivotent pour fournir à l’utilisateur un ensemble diversifié d’invites sur différentes commandes.

Le code suivant est un exemple de propriété dans le samplePrompts manifeste de l’application :

"composeExtensions": [
 {
  "canUpdateConfiguration": true,
  "botId": "bxxxxxx5-xxxx-xxxx-xxxx-4xxxxxx16599",
  "commands": [
   {
    "id": "orders",
    "title": "Orders",
    "context": [
     "Commandbox",
     "Compose"
    ],
    "description": "Search for orders",
    "semanticDescription": "Search for orders",
    "samplePrompts": [
     {
      "text": "Search for all orders"
     },
     {
      "text": "Search for orders related to Contoso"
     },
     {
      "text": "Search for all pending orders"
     },
     {
      "text": "Search for all completed ordered for Fabrikam"
     }
    ]
   }
  ]
 }
]

Créer des réponses enrichies de carte adaptative

[Doit corriger]

Les extensions de message répondent à une entrée utilisateur avec une carte adaptative. Une carte adaptative pour un plug-in d’extension de message doit fonctionner efficacement, être riche et répondre aux exigences suivantes :

  • La réponse de carte adaptative doit inclure du contenu de carte adaptative et un aperçu carte informations dans le cadre du même modèle. [Doit corriger]

    Capture d’écran montrant un exemple d’application montrant Microsoft 365 Copilot réponse de l’application contient un aperçu et du contenu dans la même réponse.


    Exemple de modèle de réponse de carte adaptative
    {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.5",
        "body": [
          {
            "type": "Container",
            "items": [
              {
                "type": "TextBlock",
                "text": "${companyName}",
                "size": "Medium",
                "wrap": true,
                "style": "heading"
              },
              {
                "type": "TextBlock",
                "text": "${stockExchange} ${stockSymbol}",
                "isSubtle": true,
                "spacing": "None",
                "wrap": true
              },
              {
                "type": "TextBlock",
                "text": "${formattedDate} ${formattedTime}",
                "wrap": true
              }
            ]
          },
          {
            "type": "Container",
            "spacing": "None",
            "items": [
              {
                "type": "ColumnSet",
                "columns": [
                  {
                    "type": "Column",
                    "width": "stretch",
                    "items": [
                      {
                        "type": "TextBlock",
                        "text": "${currentPrice} ",
                        "size": "ExtraLarge",
                        "wrap": true
                      },
                      {
                        "type": "TextBlock",
                        "text": "${priceChange} ${percentChange}",
                        "color": "${changeColor}",
                        "spacing": "None",
                        "wrap": true
                      }
                    ]
                  },
                  {
                    "type": "Column",
                    "width": "auto",
                    "items": [
                      {
                        "type": "FactSet",
                        "facts": [
                          {
                            "title": "Open",
                            "value": "${openPrice} "
                          },
                          {
                            "title": "High",
                            "value": "${highPrice} "
                          },
                          {
                            "title": "Low",
                            "value": "${lowPrice} "
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "previewCard": {
          "contentType": "application/vnd.microsoft.card.hero",
          "content": {
            "title": "${companyName}",
            "text": "${stockSymbol}"
          }
        }
      }
    

    Remarque

    Les types imBack d’action et messageBack ne sont pas pris en charge dans un objet de données.

    Les types d’actions suivants sont recommandés :

    • Action.OpenUrl: ouvre une URL spécifiée à partir du carte.
    • Action.ToggleVisibility: affiche ou masque un ou plusieurs éléments dans le carte.
    • Action.Execute: collecte les champs d’entrée et les envoie en tant que requête à votre service de bot.
    • Action.Submit: ouvre une boîte de dialogue ou une vue d’étape à l’aide du type invoke dans l’objet de données.

    Le graphique montre un exemple des boutons d’action Mettre à jour le stock, réapprovisionner et Annuler le réapprovisionnement dans une réponse de carte adaptative dans Microsoft 365 Copilot.

  • Si un utilisateur peut modifier les informations sur le carte via une boîte de dialogue, stageview ou directement à partir de l’carte, nous recommandons que la carte adaptative prend en charge les actions universelles et l’actualisation automatique. [Recommandé]

  • Les cartes adaptatives doivent inclure une URL dans le cadre des métadonnées, ce qui permet aux cartes d’être facilement copiées d’un hub à un autre. [Recommandé]

  • À l’exception des miniatures, toute image d’une carte adaptative doit avoir un texte de remplacement. [Recommandé]

Plug-ins d’extension de message dans les applications Microsoft 365 Copilot

[Doit corriger]

Importante

Les plug-ins d’extension de message dans Microsoft 365 Copilot applications sont en préversion privée limitée pour Word et PowerPoint. Plus de détails à publier après l’annonce d’une préversion publique.

Les agents Copilot personnalisent et étendent l’expérience Microsoft 365 Copilot en apportant davantage de compétences et de connaissances à Microsoft 365 Copilot pour une expérience utilisateur personnalisée. En utilisant des plug-ins, qui sont un sous-ensemble d’agents Copilot, les utilisateurs peuvent intégrer des fonctionnalités supplémentaires dans Microsoft 365 Copilot en interagissant avec des applications tierces, que ce soit pour récupérer ou modifier des informations au sein de ces applications. Par instance, les plug-ins d’extension de message facilitent la recherche de données dans d’autres applications afin que Microsoft 365 Copilot puissent les présenter sur demande lorsque le plug-in est activé.

Si vous avez développé un plug-in pour Microsoft 365 Copilot pour Teams ou copilot.microsoft.com, vous connaissez déjà les avantages qu’il offre aux utilisateurs dans leur workflow.

Exemples de code

Exemple de nom Description TypeScript
Extension de message d’inventaire Northwind Cet exemple montre comment utiliser une extension de message Teams comme plug-in dans Microsoft 365 Copilot. View

Voir aussi