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 interactions d’un agent peuvent utiliser du texte, de la parole, des images ou des vidéos. Il traite l’entrée de l’utilisateur pour comprendre sa demande et évalue l’entrée pour effectuer les tâches pertinentes. Un agent peut demander des informations ou activer l’accès aux services, et répond à l’utilisateur.
Étendues d’agent
Les agents de Microsoft Teams peuvent participer à une conversation en tête-à-tête, à une conversation de groupe ou à un canal au sein d’une équipe. Chaque étendue offre des opportunités et des défis uniques pour votre agent conversationnel.
| Dans un canal | Dans une conversation de groupe | Dans une conversation privée |
|---|---|---|
| Portée massive | Moins de membres | Mode traditionnel |
| Interactions individuelles concises | @mention à l’agent | Agent Q&A |
| @mention à l’agent | Similaire au canal | Des agents qui racontent des blagues et prennent des notes |
Dans un canal
Les canaux contiennent des conversations à thread entre plusieurs personnes, jusqu’à 2000. Cela peut donner à votre agent une portée massive, mais les interactions individuelles doivent être concises. Les interactions multitours traditionnelles ne fonctionnent pas. Au lieu de cela, vous devez chercher à utiliser des cartes ou des boîtes de dialogue interactives (appelées modules de tâche dans TeamsJS v1.x), ou déplacer la conversation vers une conversation en tête-à-tête pour collecter beaucoup d’informations. Votre agent n’a accès aux messages que dans les emplacements .@mentioned Vous pouvez récupérer des messages supplémentaires à partir de la conversation à l’aide d’autorisations Microsoft Graph et au niveau de l’organisation.
Les agents fonctionnent mieux dans un canal dans les cas suivants :
- Notifications, où vous fournissez une carte interactive permettant aux utilisateurs de prendre des informations supplémentaires.
- Scénarios de commentaires, tels que les sondages et les enquêtes.
- Un cycle de requête ou de réponse unique résout les interactions et les résultats sont utiles pour plusieurs membres de la conversation.
- Agents sociaux ou amusants, où vous obtenez une image de chat impressionnante, choisissez un gagnant au hasard, etc.
Dans une conversation de groupe
Les conversations de groupe sont des conversations non thématiques entre trois personnes au minimum. Elles impliquent généralement moins de membres qu’un canal et sont plus éphémères. Comme pour un canal, votre agent n’a accès qu’aux messages dans les endroits où il est @mentioned directement.
Les agents qui fonctionnent mieux dans un canal fonctionnent également mieux dans une conversation de groupe.
Dans une conversation privée
La conversation en tête-à-tête est un moyen traditionnel pour un agent conversationnel d’interagir avec un utilisateur. Voici quelques exemples d’agents conversationnels individuels :
- Agent Q&A
- des agents qui lancent des workflows dans d’autres systèmes.
- des agents qui racontent des blagues.
- des agents qui prennent des notes. Avant de créer des agents un-à-un, déterminez si une interface basée sur la conversation est la meilleure façon de présenter vos fonctionnalités.
Gestionnaire d’activités et logique de l’agent
Pour créer une application d’agent qui répond à vos besoins, il est essentiel de comprendre la logique du gestionnaire d’activités et de l’agent Microsoft Teams. Ces deux composants clés fonctionnent ensemble pour organiser la logique conversationnelle.
Gestionnaire d’activités Teams : processus Événements et interactions spécifiques aux équipes, tels que la création de canaux, les ajouts de membres d’équipe et d’autres actions propres à l’environnement Teams. Dans le SDK Teams v2, les gestionnaires sont enregistrés directement sur une instance plutôt que via un
Apphéritage de classe.Logique de l’agent : l’objet
Appabrite la logique conversationnelle de l’agent et est chargé de prendre des décisions en fonction des entrées de l’utilisateur. Les activités entrantes sont acheminées vers le gestionnaire approprié en fonction du type d’activité et de la correspondance de modèle facultative.
Gestionnaire d’activités Teams
Le gestionnaire d’activités est au cœur des fonctionnalités d’un agent, gérant et traitant les interactions utilisateur. Dans le SDK Teams v2 :
- Vous instanciez un
Appobjet et enregistrez des gestionnaires sur celui-ci. - Les gestionnaires reçoivent un objet de contexte typé (
IActivityContexten TypeScript,IContext<TActivity>en C#,ActivityContext[TActivity]en Python). - Les réponses et les messages proactifs sont envoyés via
ctx.reply()ouctx.send().
Lorsqu’un agent Teams reçoit une activité, le SDK l’achemine via le gestionnaire enregistré. Les événements spécifiques à Teams (cycle de vie des canaux, modifications des membres, etc.) sont affichés sous forme d’événements nommés distincts, de sorte que vous n’avez pas besoin d’inspecter channelData.eventType manuellement.
Remarque
Si le traitement d’une activité d’agent prend plus de 15 secondes, Teams envoie une demande de nouvelle tentative au point de terminaison de l’agent, de sorte que vous pouvez voir des demandes en double.
Extraits de code du gestionnaire d’activités
Les extraits de code suivants montrent les gestionnaires d’activité Teams pour les événements de canal et de cycle de vie d’équipe.
Les agents sont créés à l’aide du Microsoft.Teams.Apps package. Vous instanciez des inscriptions de gestionnaires de chaîne an App et en utilisant des méthodes d’extension telles que OnMessage(), OnChannelCreated(), etc. Tous les gestionnaires reçoivent un IContext<TActivity> objet.
OnChannelCreated
using Microsoft.Teams.Apps;
WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddTeamsBotApplication();
WebApplication app = builder.Build();
TeamsBotApplication teams = app.UseTeamsBotApplication();
teams.OnChannelCreated(async (context, cancellationToken) =>
{
var channel = context.Activity.ChannelData.Channel;
var team = context.Activity.ChannelData.Team;
// Code logic here
});
OnChannelDeleted
teams.OnChannelDeleted(async (context, cancellationToken) =>
{
// Code logic here
});
OnChannelRenamed
teams.OnChannelRenamed(async (context, cancellationToken) =>
{
// Code logic here
});
OnTeamRenamed
teams.OnTeamRenamed(async (context, cancellationToken) =>
{
// Code logic here
});
OnMembersAdded
teams.OnMembersAdded(async (context, cancellationToken) =>
{
foreach (var member in context.Activity.MembersAdded)
{
// Code logic here
}
});
OnMembersRemoved
teams.OnMembersRemoved(async (context, cancellationToken) =>
{
foreach (var member in context.Activity.MembersRemoved)
{
// Code logic here
}
});
OnMessageUpdate / OnMessageDelete
Les modifications de message sont gérées via OnMessageUpdate. Les suppressions réversibles sont gérées par OnMessageDelete.
teams.OnMessageUpdate(async (context, cancellationToken) =>
{
// Code logic here
});
teams.OnMessageDelete(async (context, cancellationToken) =>
{
// Code logic here
});
Exemple de gestionnaire d’activité d’agent
Le code suivant fournit un exemple d’activité d’agent :
using Microsoft.Teams.Apps;
WebApplicationBuilder builder = WebApplication.CreateSlimBuilder(args);
builder.Services.AddTeamsBotApplication();
WebApplication app = builder.Build();
TeamsBotApplication teams = app.UseTeamsBotApplication();
teams.OnMessage(async (context, cancellationToken) =>
{
var senderName = context.Activity.From.Name;
await context.SendAsync($"Hello <at>{senderName}</at>.", cancellationToken);
});
app.Run();
Logique de l’agent
La logique de l’agent intègre les règles fondamentales et les cadres de prise de décision qui dictent les actions et les interactions d’un agent. Il décrit comment l’agent interprète les entrées utilisateur, formule des réponses et participe aux conversations.
Dans le SDK v2 de Teams, la logique d’agent traite les activités entrantes à partir d’un ou plusieurs canaux d’agent et génère des activités sortantes. Tout le routage d’activité est géré par l’instance App : vous enregistrez les gestionnaires et le SDK leur distribue automatiquement les activités.
Gestionnaires d’activités principales
La App classe expose les méthodes d’extension pour inscrire des gestionnaires. Les méthodes sont renvoyées App pour le chaînage fluide.
| Événement | Méthode d’extension | Description |
|---|---|---|
| Tout type d’activité reçu | OnActivity(handler) |
Le gestionnaire fourre-tout a appelé pour chaque activité. |
| Activité de message reçue | OnMessage(handler) |
Gérer les SMS entrants. Passez une chaîne regex comme premier argument pour la correspondance de modèle. |
| Mise à jour de conversation reçue | OnConversationUpdate(handler) |
Activité brute de mise à jour des conversations. |
| Membres non-agent joints | OnMembersAdded(handler) |
Se déclenche lorsque MembersAdded.Length > 0. |
| Membres non-agent restants | OnMembersRemoved(handler) |
Se déclenche lorsque MembersRemoved.Length > 0. |
| Installation ajoutée | OnInstall(handler) |
L’agent a été installé. |
Gestionnaires d’activités spécifiques à Teams
| Événement | Méthode d’extension | Description |
|---|---|---|
| Chaîne créée | OnChannelCreated(handler) |
Un canal Teams a été créé. |
| Canal supprimé | OnChannelDeleted(handler) |
Un canal Teams a été supprimé. |
| Canal renommé | OnChannelRenamed(handler) |
Un canal Teams a été renommé. |
| Équipe renommée | OnTeamRenamed(handler) |
L’équipe a été renommée. |
| Message modifié | OnMessageUpdate(handler) |
Un message a été modifié. |
| Message supprimé de manière réversible | OnMessageDelete(handler) |
Un message a été supprimé de manière réversible. |
Teams appeler des activités
| Type d’appel | Méthode d’extension | Description |
|---|---|---|
CardAction.Invoke |
OnExecuteAction(handler) |
Une activité d’appel d’action de carte a été reçue. |
task/fetch |
OnTaskFetch(handler) |
Une boîte de dialogue (module de tâche) a été récupérée. |
task/submit |
OnTaskSubmit(handler) |
Une boîte de dialogue (module de tâche) a été soumise. |
fileConsent/invoke |
OnFileConsent(handler) |
Une activité de la carte de consentement de fichier a été reçue. |
signin/verifyState |
Géré automatiquement par le SDK (flux OAuth) | Se connecter pour vérifier l’activité de l’état. |
Maintenant que vous vous êtes familiarisé avec les gestionnaires d’activité d’agent, voyons comment les agents se comportent différemment en fonction de la conversation et des messages qu’ils reçoivent ou envoient.
Recommandations
Un dialogue étendu entre votre agent et l’utilisateur est un moyen lent et complexe d’accomplir une tâche. Un agent qui prend en charge un nombre excessif de commandes, en particulier un large éventail de commandes, n’est pas efficace ou perçu positivement par les utilisateurs.
Éviter les expériences à plusieurs tours dans la conversation Une boîte de dialogue étendue nécessite que le développeur conserve l’état. Pour quitter cet état, un utilisateur doit soit expirer, soit sélectionner Annuler. En outre, le processus est fastidieux. Par exemple, consultez le scénario de conversation suivant :
UTILISATEUR : planifier une réunion avec Megan.
AGENT : J’ai trouvé 200 résultats, dont un prénom et un nom.
UTILISATEUR : Planifiez une réunion avec Megan Bowen.
AGENT : OK, à quelle heure aimeriez-vous rencontrer Megan Bowen ?
UTILISATEUR : 13:00.
AGENT : Quel jour ?
Prend en charge six commandes fréquentes ou moins Comme il n’y a que six commandes visibles dans le menu actuel de l’agent, il est peu probable que quoi que ce soit d’autre soit utilisé fréquemment. Les agents qui vont en profondeur dans un domaine spécifique plutôt que d’essayer d’être un large assistant travaillent et s’en sortent mieux.
Optimiser la taille de la base de connaissances pour une interaction plus rapide L’un des inconvénients des agents est qu’il est difficile de maintenir une grande base de connaissances de récupération avec des réponses non classées. Les agents sont mieux adaptés aux interactions courtes et rapides, et ne pas passer au crible de longues listes à la recherche d’une réponse.
Remarque
La plateforme Teams prend uniquement en charge le protocole TLS (Transport Layer Security) version 1.2. Veillez à configurer votre environnement d’agent en conséquence.
Explorer d’autres fonctionnalités d’agent
En plus des fonctionnalités d’agent conventionnelles, vous pouvez également explorer les fonctionnalités avancées disponibles dans une application d’agent Teams :
- Obtenez le contexte spécifique à Teams pour votre agent.
- Agents d’appels et de réunions en ligne.
- Activez l’authentification unique pour votre application.
Exemple de code
| Exemple de nom | Description | TypeScript | C# | Python |
|---|---|---|---|---|
| Agent de conversation Teams | Cette application illustre les événements de base de l’agent. | View | View | View |