Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les plug-ins permettent aux agents déclaratifs dans Microsoft 365 Copilot d’interagir avec les serveurs MCP ou les API REST qui ont une description OpenAPI. Avec un plug-in, les utilisateurs peuvent demander à un agent déclaratif non seulement d’interroger un serveur MCP ou une API REST pour obtenir des informations, mais également de créer, mettre à jour et supprimer des données et des objets. Tout ce que le serveur MCP ou l’API REST peut faire est accessible via des invites en langage naturel.
Remarque
En plus d’appeler des serveurs MCP ou des API REST, il existe une fonctionnalité en préversion qui permet à un plug-in d’appeler des API dans une bibliothèque locale. Nous vous encourageons à tester cette fonctionnalité, mais elle ne doit pas être utilisée dans un plug-in de production. Pour plus d’informations, consultez Créer des plug-ins d’API pour Microsoft 365 Copilot avec la bibliothèque JavaScript Office.
Importante
Les plug-ins sont uniquement pris en charge en tant qu’actions au sein d’agents déclaratifs. Ils ne sont pas activés dans Microsoft 365 Copilot.
Un plug-in fournit un manifeste de plug-in que Copilot utilise pour découvrir les fonctionnalités du serveur mcp ou de l’API du plug-in. Copilot peut ensuite décider quand un plug-in installé et activé est adapté pour répondre à une invite donnée. Pour en savoir plus sur le fichier manifeste requis par un plug-in, consultez Schéma de manifeste de plug-in pour Microsoft 365 Copilot.
Exemple de plug-in
Prenons l’exemple d’un serveur MCP de budgets qui permet d’interroger et de créer des budgets, de facturer des dépenses ou d’ajouter des fonds aux budgets existants. L’invite « Combien reste-t-il dans le budget de voyage Contoso » peut déclencher un plug-in budgétaire, en appelant l’outil get-budgets .
POST /mcp
Content-Type: application/json
{
"method": "tools/call",
"params": {
"name": "get-budgets",
"arguments": {
"budgetName": "contoso travel"
}
}
}
Copilot utilise la réponse du résultat de l’outil pour générer sa réponse : « Le budget de voyage de Contoso dispose actuellement de 5 000 $ en fonds disponibles. Si vous avez besoin d’allouer des fonds à des catégories spécifiques ou d’effectuer le suivi des dépenses, je peux également vous aider à le faire. Faites-moi savoir comment je peux vous aider !
L’invite « Facturer 500 $ au budget de voyage Contoso pour le billet d’avion de Megan » peut être traduite en appel d’outil suivant.
POST /mcp
Content-Type: application/json
{
"method": "tools/call",
"params": {
"name": "get-budgets",
"arguments": {
"budgetName": "contoso travel"
}
}
}
Copilot utilise la réponse de l’outil pour générer sa réponse : « Le budget de voyage de Contoso a actuellement 5 000 $ en fonds disponibles. Si vous avez besoin d’allouer des fonds à des catégories spécifiques ou d’effectuer le suivi des dépenses, je peux également vous aider à le faire. Faites-moi savoir comment je peux vous aider !
L’invite « Facturer 500 $ au budget de voyage Contoso pour le billet d’avion de Megan » peut être traduite en appel de l’outil MCP suivant.
POST /mcp
Content-Type: application/json
{
"method": "tools/call",
"params": {
"name": "charge-budget",
"arguments": {
"budgetName": "contoso travel",
"amount": 500,
"description": "Megan's airline ticket"
}
}
}
Copilot répond à l’utilisateur, en utilisant les informations retournées : « Les frais de 500 $ pour le billet d’avion de Megan ont été traités avec succès. Le budget de voyage contoso a maintenant 4 500 $ restants en fonds disponibles. Si vous avez besoin d’effectuer d’autres transactions ou si vous avez besoin d’aide supplémentaire pour votre budget, s’il vous plaît faites-le moi savoir !
Fonctionnement des plug-ins
L’utilisateur demande à l’agent « Combien reste-t-il dans le budget de rénovation de la salle d’attente Fourth Coffee ? »
L’agent identifie un plug-in lié au budget à partir de ses plug-ins disponibles qui dispose d’un outil serveur MCP ou d’une API
GetBudgetpour obtenir des détails sur le budget. Il mappe des parties de la question de l’utilisateur aux paramètres de la fonction :budgetName="".L’agent demande à l’utilisateur de l’autoriser à envoyer
Fourth Coffee lobby renovationau plug-in.L’utilisateur choisit d’autoriser le partage des données avec le plug-in une seule fois, ou choisit de toujours autoriser le partage des données pour cette fonction.
Si l’API ou le serveur MCP du plug-in nécessite une authentification, le plug-in demande un jeton ou une clé API à partir du magasin de jetons.
Le magasin de jetons retourne un jeton ou une clé. Si nécessaire, le magasin de jetons oblige l’agent à inviter l’utilisateur à se connecter.
L’agent envoie une requête au serveur mcp ou à l’API du plug-in, qui est hébergé en dehors de Microsoft 365.
Le serveur ou l’API MCP retourne une réponse.
{ "name": "Fourth Coffee lobby renovation", "availableFunds": 5000.00 }L’agent génère une réponse basée sur la réponse du serveur MCP ou de l’API.
L’agent envoie la réponse « Les fonds disponibles restants dans le budget de rénovation de la salle d’attente du Quatrième Café sont de 5 000 $. »
Confirmation des actions
Copilot demande à l’utilisateur avant d’envoyer des données pour la première fois à un plug-in.
Une fois que l’utilisateur a confirmé la connexion, les outils serveur MCP et les API qui récupèrent uniquement des données ne nécessitent pas de confirmation, contrairement aux outils et API qui modifient les données. Les développeurs de plug-ins peuvent remplacer ces valeurs par défaut. Pour plus d’informations, consultez Invites de confirmation pour les plug-ins d’API pour Microsoft 365 Copilot.
Personnalisation de la présentation de la réponse
Copilot génère des réponses conversationnelles à l’aide de données provenant de réponses d’API ou de serveur MCP. Les plug-ins peuvent personnaliser ces réponses en fournissant des modèles de carte adaptative pour afficher les données de manière structurée.
Optimiser votre plug-in pour l’orchestrateur Copilot
Microsoft 365 Copilot pouvez choisir de manière unique la compétence appropriée parmi les nombreuses compétences de son répertoire. Mais comment vous assurer que Copilot choisit votre plug-in pour fournir la compétence appropriée ?
La réponse réside dans la façon dont vous décrivez votre plug-in, ses compétences et les paramètres pour l’initiation des compétences. Spécifiez des descriptions concises et précises dans le manifeste de votre plug-in pour vous assurer que l’orchestrateur Copilot sait quand et comment appeler votre plug-in.
La façon dont vous décrivez votre plug-in à l’orchestrateur dépend du type de plug-in que vous générez, comme décrit dans le tableau suivant.
| Type de plug-in | Décrit par | En savoir plus |
|---|---|---|
| Plug-ins d’API | Description OpenAPI | Comment rendre un document OpenAPI efficace dans l’extension de Copilot |
| Actions Copilot Studio | Noms et descriptions dans Copilot Studio carte de conversation | Orchestrer des rubriques et des actions copilotes avec l’IA générative |
| Plug-ins d’extension de message | Manifeste d'application | Instructions pour les plug-ins d’extension de message |
Génération de packages de plug-ins
Il existe deux outils que les développeurs peuvent utiliser pour générer des packages de plug-in d’API.
- Microsoft 365 Agents Toolkit dans Visual Studio ou Visual Studio Code peut créer des packages de plug-in basés sur un serveur MCP existant ou une description OpenAPI. Agents Toolkit propose également des projets de démarrage avec un exemple d’API et le package de plug-in correspondant.
- Kiota est un outil en ligne de commande et une extension Visual Studio Code qui peut générer des packages de plug-in basés sur une description OpenAPI existante.
Limitations
Plug-ins de l’agent déclaratif
Lorsqu’un agent déclaratif inclut jusqu’à cinq plug-ins définis dans le manifeste de l’agent déclaratif, les plug-ins sont toujours injectés dans l’invite. Lorsque plus de cinq plug-ins sont définis, l’agent utilise la correspondance sémantique. La correspondance sémantique est basée sur la description du plug-in, et non sur l’une des fonctions individuelles au sein du plug-in lui-même.
Un plug-in peut inclure un nombre illimité de fonctions. Toutes les fonctions sont retournées, même si une seule fonction est correspondante. Toutefois, en raison des limites de fenêtre de jeton, la qualité des réponses peut se dégrader si plus de 10 fonctions sont incluses.
La fenêtre de jeton pour les entrées et sorties d’un plug-in tronque le contenu volumineux. La limite fonctionnelle est susceptible de changer à mesure que les modèles s’améliorent et en fonction de la surcharge du système. Optimisez les petites longueurs de jetons ou optez pour des options d’extensibilité qui permettent de diffuser en continu du contenu volumineux si nécessaire.
Contenu connexe
- Créer des plug-ins d’API à partir d’une API existante pour Microsoft 365 Copilot
- Créer des plug-ins d’API avec une nouvelle API pour Microsoft 365 Copilot
- Créer des plug-ins à partir d’un serveur MCP pour Microsoft 365 Copilot
- Schéma de manifeste de plug-in pour Microsoft 365 Copilot
- Écrire des instructions efficaces pour les agents déclaratifs avec des plug-ins d’API