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.
Copilot Studio fournit un ensemble de nœuds que vous pouvez utiliser pour les activités qui ne sont pas des messages : le nœud d’activité d’événement , le nœud d’activité Invoke et d’autres nœuds liés à l’activité pris en charge par le protocole d’activité .
Qu’est-ce que le protocole d’activité ?
Le protocole d’activité est un concept de transport de base dans Copilot Studio. Le protocole d’activité permet une communication transparente entre les utilisateurs et les agents. Il définit une structure standardisée pour toutes les interactions, en les catégorisant en différents types d’activités.
Les activités d’événement et les activités de message sont deux types distincts dans le protocole d’activité, chacun servant des objectifs uniques dans les flux de travail de communication.
Les activités de message représentent les unités de communication fondamentales entre les utilisateurs et les agents, transportant principalement du contenu textuel, des médias ou des cartes adaptatives. Ils sont conçus pour les interactions directes, où un utilisateur effectue une requête ou une instruction, et l’agent répond en conséquence.
Les activités d’événement, d’autre part, sont généralement utilisées pour signer des actions nonverbales ou des mises à jour générées par le système. Il permet une communication asynchrone, déclenchant des fonctionnalités ou des flux de travail spécifiques sans nécessiter d’interaction directe de l’utilisateur. Par exemple, une activité d’événement peut informer un assistant qu’un utilisateur rejoint une conversation ou change de contexte environnant.
Envoyer des événements
Le nœud d’activité événementielle est conçu pour l’envoi d’activités événementielles. Les activités d’événements sont envoyées depuis l’agent et peuvent être interceptées et utilisées par le canal, qui décide si et comment utiliser les activités. Lorsque vous envoyez un événement, vous lui donnez un nom, puis vous pouvez définir une valeur pour l’événement. Cette valeur peut être dans n’importe quel format :
- Une valeur littérale primitive
- Une référence de variable
- Une formule Power Fx.
La valeur est sérialisée comme un littéral JSON et ajoutée à l'activité sortante.
Les utilisations de ce nœud incluent :
- Configurez un contrôle Web Chat personnalisé pour gérer les événements envoyés à partir de l’agent. Par exemple, vous pouvez rechercher un événement renvoyé par l’agent et effectuer une action sur la page. L’exemple
04.api/c.incoming-activity-eventdans le référentiel des exemples Chat web Microsoft Bot Framework sur GitHub montre comment la gestion des événements pourrait fonctionner. - Utilisez des activités d’événement pour contrôler les services d’enregistrement AudioCodes, par exemple pour démarrer ou arrêter l’enregistrement des appels. Pour plus d’informations, voir Enregistrement d’appels.
Utilisation des outils clients
Pendant l’orchestration, nous fournissons le modèle de langage avec un ensemble d’outils. La plupart des gens considèrent les outils comme un moyen d'effectuer des appels vers des systèmes externes.
Toutefois, nous pouvons également utiliser des activités d’événement pour exécuter des outils à partir du client.
Lorsque l’orchestrateur décide d’exécuter un outil client, l’agent envoie une activité d’événement au client, y compris les entrées définies dans l’outil.
L’assistant envoie l’activité, puis attend que le client exécute l’action et renvoie un résultat. Lorsque le client a terminé, il envoie un événement contenant la réponse à l'agent. L'assistant prend cette réponse comme réponse de l'outil et continue à orchestrer.
Exemples de charges utiles pour les outils clients
Supposons que nous disposions d’un outil client qui récupère le texte d’une diapositive PowerPoint.
Les entrées sont le numéro de page et la sortie est le texte de la diapositive.
L’assistant peut envoyer une charge utile comme :
{
"type": "event",
"timestamp": 1738709828,
"from": {
"id": "d9c0dcf9-4045-8062-535b-73fb4dfee954",
"role": 0
},
"name": "getSlideContent",
"replyToId": "f617c120-7b36-496a-a096-ac692efdad04",
"value": {
"page": 5
}
}
Une fois l’opération terminée, le client envoie à l’assistant une charge utile semblable à :
{
"type": "event",
"timestamp": 1738709828,
"name": "getSlideContent",
"replyToId": "f617c120-7b36-496a-a096-ac692efdad04",
"value": {
"content": "QA slide. Next steps"
}
}
Configuration des outils clients
Il existe deux façons d’inscrire des outils clients.
Dans le cadre du contenu de la rubrique de votre assistant, vous pouvez enregistrer une action de tâche client dédiée sur votre assistant, à l’aide de l’éditeur de code.
Par exemple:
description: this tool retrieves the content of a powerpoint slide
schemaName: GetSlideContent
dialog:
kind: TaskDialog
action:
kind: InvokeClientTaskAction
clientActionInputSchema:
kind: Record
properties:
page:
displayName: Page Number
description: The number of the slide
isRequired: true
type: Number
clientActionResponseSchema:
kind: Record
properties:
content:
displayName: Slide Content
description: The content of the slide
type: String
Parfois, les outils disponibles sont dynamiques, en fonction du contexte du client d’hébergement. Pour plus de flexibilité, les créateurs peuvent définir une variable système pour définir de manière dynamique d’autres outils clients pouvant être utilisés pour cette session.
- kind: SetVariable
id: setVariable_76NZWK
variable: System.ClientPluginActions
value: |-
=[
{
Description: "this tool retrieves the content of a powerpoint slide",
Identifier: "GetSlideContent",
Name: "GetSlideContent",
Response: {mode: "Generated"},
Inputs: [
{
Description: "The name of the menu for the form to launch",
IsAutomatic: true,
IsRequired: true,
Name: "Page Number",
PropertyName: "page",
Type: {
'$kind': "Number"
}
}
],
Outputs: [
{
Description: "The content of the slide",
Name: "Slide Content",
PropertyName: "content",
Type: {
'$kind': "String"
}
}
]
}
]
Envoi d’autres types d’activité
En plus des activités d’événement, vous pouvez envoyer des activités d’autres types à l’aide du nœud Appeler une activité. Les types d’activités que vous pouvez envoyer sont un sous-ensemble de ceux proposés dans le Schéma du Bot Framework - Classe ActivityTypes. Lorsque vous utilisez ce nœud, vous choisissez le type d’activité, puis définissez éventuellement un nom ou une valeur.
Les types courants sont :
- Saisie : envoie une activité de saisie, que le canal peut choisir de sélectionner pour afficher un indicateur de saisie sur le client.
- L’appel et la réponse Invoke sont utilisés pour Microsoft Teams. Vous créez une rubrique avec un déclencheur d’appel pour intercepter un appel entrant de Teams et utilisez un nœud Appeler une activité de réponse pour renvoyer une réponse appropriée à Teams.
- Transfert envoie une activité de transfert avec un contrôle explicite sur la valeur. Un relais est utilisé pour les canaux externes, tels que AudioCodes.