- Démarrer
- Construire
- Ajouter un agent d'IA à un workflow
- Appeler une API externe
- Traiter les e-mails entrants
- Créer un workflow de notification Slack
- Ajouter une approbation humaine à un workflow
- Créer un workflow d’agent de chat
- Gérer les erreurs
- Principes de base du débogage
- L'humain dans la boucle: escalade ou étape humaine
- Évaluation de vos workflows
- Déployer et exécuter
- Exemples
- Référence (Reference)
Agent vocal
Configure a Voice agent: its model and prompts, output variables, tools, handoffs between agents, and the call transcript, with fixes for common issues.
Ce qu’il fait
Associe un agent à un appel téléphonique en direct et échange avec l'appelant. L'audio est transmis directement à un modèle de reconnaissance vocale en temps réel, ce qui permet à l'appelant d'interrompre l'agent à mi-parcours. Configurez le modèle, le personnage, la requête, les outils et les index d’ancrage dans le contexte directement sur le nœud.
Les deux directions d'appel utilisent la même forme en trois étapes:
| Direction | Séquence de nœuds |
|---|---|
| Entrant | Appel entrant → Agent vocal → Terminer l'appel |
| Sortant | Créer un appel sortant → Agent vocale → Terminer l'appel |
Le nœud est libellé Agent vocale dans la catégorie Agent du panneau Ajouter un nœud .
Référence de la configuration
| Champ | Description |
|---|---|
| Modèle | Le modèle de reconnaissance vocale en temps réel. La valeur par défaut est gpt-realtime-2.1. |
| Utilisateur | La voix du modèle sélectionné. La valeur par défaut est Marin. |
| Requête système | Le rôle de l’agent, ses instructions permanentes et la façon dont il doit fermer la conversation. |
| Température | Créativité de la réponse de 0 à 1. |
| Nombre maximum de jetons | Jeton maximum pour une conversation. |
| Contexte d’appel | Dans la section Paramètres d'appel . L'appel auquel cet agent s'attache. Liez-le à un callContext en amont, par exemple $vars.createOutgoingCall1.output.callContext. |
Variables de sortie
Vous pouvez éventuellement configurer des variables de sortie structurées dans la section Sorties du panneau Propriétés. Ils sont utiles pour définir des variables de routage ou axées sur les objectifs à utiliser dans les nœuds en aval du workflow.
Chaque variable de sortie que vous déclarez devient un champ sur l’objet de sortie de l’agent, référencé sous la forme $vars.<agentName>.output.<name>. Donnez à chacun un nom et un type, puis indiquez à l’agent dans le champ de description de la variable comment le remplir. La génération de sortie est pilotée par une combinaison de l'invite système de l'agent et des descriptions de variables de sortie.
L'agent les remplit lorsqu'il termine sa session vocale.
Les deux utilisations les plus courantes sont les résumés d’appels et les transferts. Pour obtenir un résumé, déclarez une sortie telle que call_summary et utilisez sa description pour demander à l'agent de résumer l'appel. L'agent l'écrit lorsqu'il termine sa session, et les nœuds en aval le lisent comme $vars.voiceAgent1.output.call_summary.
Outils
Connectez des outils au gestionnaire Outils pour donner à l'agent des capacités qu'il peut appeler tout en raisonnant. L'agent décide pendant sa boucle si et quand appeler chaque outil connecté. Chaque outil porte une description qui indique à l'agent à quoi sert l'outil, écrivez donc des descriptions claires lorsqu'un outil en expose une.
Lors de la conception d’outils pour les agents vocaux:
- L'appelant attend chaque appel d'outil, afin de garder la tâche de chaque outil petite et rapide.
- Les outils que les appels de l'agent dans le même cycle renvoient ensemble, le plus lent définit la durée pendant laquelle l'appelant reçoit l'appel.
- Après un certain délai d'expiration, l'agent peut signaler un échec et réessayer, ce qui rend les outils idempotents. Un appel d'outil qui n'a pas été renvoyé dans les 180 secondes expirera.
Disponibilité des outils
| Catégorie d'outil | Disponibilité |
|---|---|
| Processus RPA | Disponible |
| Workflows d’API | Disponible |
| Activités | Disponible |
| Autres workflows (Maestro) | Disponible |
| Process orchestration | Disponible |
| Fonctions codées | Disponible |
| Agent (appeler un agent autonome déployé) | Disponible |
| Connecteurs | Disponible |
| Index d'ancrage dans le contexte | Disponible |
| Outils intégrés (Analyser les fichiers, RAG profonde, transformation par lots) | Non disponible |
| Escalades | Non disponible |
| Outils de protocole MCP | Non disponible |
| A2A (Agent à agent) | Non disponible |
| Extraction et traitement intelligents (IXP) (extraction et traitement intelligents) | Non disponible |
Outils vocaux intégrés
Chaque agent vocal a accès à deux outils intégrés. Ceux-ci sont inclus, mais non affichés dans la zone de dessin:
- Outil multi-fréquences à double ton: utilisé pour appuyer sur des chiffres sur le clavier du téléphone, qui peut être utilisé pour parcourir les arborescences de numéros de téléphone externes
- Terminer la session: utilisé pour quitter la conversation sans mettre fin à l'appel. Utile pour les transferts d'agents vocaux.
Garde-fous d’outils
Des garde-fous au niveau des outils sont disponibles sur les outils connectés au nœud de l'agent vocal. Vous pouvez filtrer ou bloquer les paramètres d'entrée d'un outil. Configurez le garde-fou sur l'outil attaché au handle d'outils de l'agent vocal. garde-fous d'outils a plus de détails.
Transfert
La fin d’une session vocale n’est pas la même que la fin de l’appel. Lorsqu’un agent termine sa session, il quitte l’appel, mais laisse la ligne ouverte: l’agent renseigne ses variables de sortie et le workflow se déplace vers le nœud suivant. Seuls le nœud d'appel Fin d'appel et l'appelant peuvent révoquer l'appel.
C'est ce qui rend les transferts possibles. Chaînez les nœuds de l'agent de reconnaissance vocale et liez-les tous au même contexte d'appel. Chaque agent met fin à sa propre session lorsqu'il est terminé, et seul le dernier chemin atteint Fin de l'appel, de sorte que l'appelant reste sur la ligne tout au long.
Un transfert comporte deux parties:
- Routez vers le bon agent. Donnez au premier agent une variable de sortie, par exemple
handoff, et utilisez sa description pour indiquer à l'agent quelle valeur définir. Branchez cette valeur avec un nœud Basculer afin que chaque cas mène à l'agent qui le gère. - Reportez le contexte. Un agent de réception ne sait rien de ce qui a déjà été dit. Référencez une sortie de résumé d'appel du premier agent dans son invite système (
$vars.voiceAgent1.output.call_summary), ou ajoutez un nœud Obtenir le contexte de conversation sur la branche et référencez la transcription à la place. La section Transcription de l'appel contient des détails.
La transmission d'un appel à un humain n'est pas prise en charge. Il n'y a aucun transfert d'appel en direct.
L'agent Voix n'a pas de connexion d'escalades , car un appel ne peut pas attendre qu'une personne termine une tâche. Pour demander à une personne d'agir sur le résultat d'un appel, ajoutez un nœud de la catégorie Human (humain) , tel que Formulaire rapide, après l'agent appelant.
Transcription de l'appel
Pour lire une transcription après un appel, ouvrez la trace d'exécution d'une exécution de test ou la trace d'une exécution déployée, comme décrit dans Monitor runtimes . L’observabilité a plus de détails.
Pour utiliser la transcription à l'intérieur du workflow:
- Ajoutez un nœud Obtenir le contexte de la conversation .
- Transmettez
$vars.<incomingOrOutgoingCallNodeId>.output.callContext.conversationId. Par exemple,<incomingOrOutgoingCallNodeId>peut êtrecreateOutgoingCall1. - Référencez la transcription en tant que
$vars.<getConversationContextNodeId>.output.conversationContext.messages. Par exemple,getConversationContextNodeIdpeut êtregetConversationContext1.
Par exemple, vous pouvez transmettre la transcription à un agent autonome pour le traitement:
Problèmes couramment rencontrés
L'agent communique normalement, mais n'exécute jamais un outil. Aucun robot Unattended ou par défaut avec une machine sans serveur n’est affecté à l’endroit où le workflow s’exécute, de sorte que chaque appel d’outil revient comme une erreur et l’agent reste conversationnel. Demandez à votre administrateur d’affecter un robot, puis appelez à nouveau. Les exigences de dossier sont plus détaillées.
L'appel se termine avant la fin de la conversation, mais il n'y a pas d'erreur. L'agent a mis fin à sa propre session à mi-conversation et le workflow est passé à Terminer l'appel. Il s'agit probablement d'un problème d'invite où l'agent appelant a commencé à aider l'appelant et a décidé de mettre fin à la session.
L’agent s’arrête ou produit des chaînes de chiffres en lecture statique. Avec Gemini en direct à la température 0, les longues chaînes de chiffres peuvent s'arrêter ou donner un son déformé. Augmentez légèrement la température . Si le problème persiste, essayez l'autre modèle.
L’agent ne parvient pas à se connecter avec une erreur de schéma d’outil. Le modèle Gemini accepte un sous-ensemble de schémas étroits. Aplatissez le schéma d’entrée de l’outil ou encapsulez l’outil dans un workflow d’API avec un schéma d’entrée plate et utilisez plutôt le workflow comme outil.
L'appel se connecte, personne ne prend la conversation et s'interrompt après environ 25 secondes. Un appel qui ne attache jamais d'agent se termine après environ 25 secondes d'absence. Liez le contexte de l'appel au callContext du déclencheur d'appel entrant ou du nœud Créer un appel sortant .
Prochaines étapes
- Appel entrant: démarre un workflow d'appel entrant.
- Créer un appel sortant: lance un appel sortant.
- Fin de l'appel: met fin à l'appel.
- Déploiement: connecter un numéro et le lier à un workflow.
- Community (Communauté): posez des questions et partagez des workflows avec d'autres développeurs sur le forum UiPath.