Chaque playbook doit contenir un ou plusieurs exemples. Ces exemples sont des conversations entre un utilisateur final et le playbook, y compris le dialogue et les actions effectuées par l'agent. Il s'agit en fait d'exemples de prompts few-shot pour le LLM.
La console fournit une interface qui vous permet de saisir des actions.
Agents multilingues
Si vous souhaitez que votre agent gère plusieurs langues, vos exemples doivent utiliser chacune d'elles.
Exemple de résumé d'entrée et de résumé de sortie
En plus des paramètres d'entrée et de sortie, les playbooks peuvent recevoir un résumé d'entrée et émettre un résumé de sortie pour échanger des informations avec d'autres playbooks. Les résumés sont utiles pour transmettre des informations contextuelles abstraites entre les playbooks, tandis que les paramètres sont plus utiles pour transmettre des champs structurés et bien définis entre les playbooks. Les paramètres sont le seul moyen d'échanger des données entre les flux et les playbooks.
Ajoutez des résumés d'entrée pertinents aux exemples pour conditionner le playbook afin qu'il ajuste ses actions en fonction des résumés d'entrée au moment de l'exécution. Ajoutez des résumés de sortie incluant des détails pertinents et précis sur l'exemple de conversation pour montrer au playbook quels détails sont importants à résumer.
Exemple d'état
À un moment donné de la conversation, un playbook se trouve dans l'un des états suivants :
OK: le playbook a atteint son objectif et le contrôle va maintenant être transféré au playbook parent.CANCELLED: l'utilisateur a décidé de ne pas poursuivre l'objectif attribué au playbook. Le contrôle sera désormais transféré au playbook parent. Si le playbook parent est un flux CX, l'intention de l'entrée utilisateur sera détectée avant l'exécution du flux.FAILED: le playbook ne peut pas atteindre l'objectif en raison d'une erreur (par exemple, l'outil renvoie une erreur 500). La session se terminera avec l'état "Échec". Un message EndInteraction sera ajouté à la réponse.ESCALATED: le playbook a déterminé qu'il ne pouvait pas atteindre l'objectif et qu'il devait faire remonter la situation à un humain. La session se terminera avec l'état "escalated". Un message EndInteraction sera ajouté à la réponse.PENDING: la conversation se poursuit dans le playbook.
L'exemple de premier niveau et ses appels de playbook doivent être indiqués avec un état correspondant au playbook auquel ils font référence.
Stratégie de sélection
Le paramètre de stratégie de sélection détermine si un exemple est inclus dans le prompt du playbook envoyé au LLM. Les options suivantes sont disponibles :
Sélection dynamique : l'exemple est inclus de manière conditionnelle, en fonction de sa pertinence pour le contexte de la conversation en cours. L'exemple peut être omis si la requête approche de la limite de jetons.
Toujours sélectionner : l'exemple est toujours inclus, quel que soit le contexte de la conversation. L'exemple peut être omis si la requête approche de la limite de jetons.
Ne jamais sélectionner : l'exemple n'est jamais inclus dans la requête. L'exemple n'aura aucune incidence sur les performances du playbook. Ce paramètre est utile pour exclure temporairement un exemple à des fins de test.
Ajouter une action
Un exemple fourni dans un playbook se compose d'une série d'actions. Ces actions peuvent varier dans leurs combinaisons, mais elles décrivent principalement l'interaction entre l'utilisateur et le playbook, ainsi que les actions effectuées entre-temps pour répondre à la requête ou aux exigences de l'utilisateur.
Il existe deux façons d'ajouter des actions à un exemple :
- Pour ajouter une action manuellement, cliquez sur le bouton + en bas du volet de droite ou sur le bouton Ajouter une action lorsque vous pointez sur des actions existantes. Vous pouvez utiliser ces options lorsque vous créez un exemple en cliquant sur l'option + Exemple ou lorsque vous modifiez un exemple existant.
- Pour générer automatiquement des actions en fonction des instructions du playbook existant, saisissez une entrée utilisateur dans le champ Saisir une entrée utilisateur en bas du volet de droite. Vous pouvez utiliser cette option lorsque vous créez ou modifiez un exemple. Vous pouvez également utiliser cette option lorsque vous testez votre playbook au moment de l'exécution dans le volet Prévisualiser le playbook à droite. Pour enregistrer des actions dans un exemple à partir du volet Prévisualiser le playbook, cliquez sur Enregistrer l'exemple après avoir sélectionné l'appel du playbook dans la liste des appels à gauche du volet Prévisualiser le playbook.
Assurez-vous de vérifier l'exactitude des actions générées automatiquement et de les modifier si nécessaire. C'est particulièrement important pour les playbooks qui comportent peu ou pas d'exemples.
Les types d'actions suivants sont acceptés par le playbook :
Réponse du playbook
Réponse du playbook à la requête de l'utilisateur.
Entrée utilisateur
La requête utilisateur.
Utilisation d'outils
Il s'agit d'un appel d'outil pour obtenir des informations supplémentaires nécessaires pour répondre à la requête de l'utilisateur. Cette action doit spécifier les détails suivants :
Outil : nom de l'outil à appeler.
Action : nom de l'opération de l'outil OpenAPI à appeler. Pour les outils de datastore et l'outil de fonction, le nom de l'action est identique à celui de l'outil.
Entrée de l'outil : entrées à inclure dans l'appel de l'outil. Ils sont généralement dérivés des tours de conversation précédents avec l'utilisateur.
Pour les outils OpenAPI, le format JSON
requestBodyest requis pour les types de méthodesPOST,PUTetPATCH.Exemple d'entrée
requestBodyde l'outil OpenAPI pour l'action createPet :{ "id": 1, "name": "Luna" }Pour l'outil de data store, l'exemple
requestBodyoù la requête est obligatoire et les autres champs sont facultatifs.{ "query": "Where is my nearest store?", "filter": "country: ANY(\"United States\")", "userMetadata": { "userCity": "San Francisco", }, "fallback": "We don't have any stores in your area." }Sortie de l'outil : réponse de l'appel de l'outil. Il s'agit d'une réponse JSON valide de l'outil à l'entrée donnée. Pour les outils OpenAPI, il peut également s'agir d'une erreur de chaîne (par exemple, "404 Not found").
Exemple de résultat de l'outil OpenAPI pour l'action listPets :
{ "pets": [ { "id": 1, "name": "Luna" }, { "id": 2, "name": "Charlie" }] }Exemple de résultat de l'outil de datastore :
{ "answer": "Here's the address to your nearest store ...", "snippets": [ { "title": "San Francisco Downtown", "uri": "https://www.example.com/San_Francisco_Downtown", "text": "Address for San Francisco Downtown .." } ] }
Pour vous assurer que le playbook est infaillible, incluez également des exemples de la façon dont il doit répondre en cas d'échec de l'appel d'un outil.
L'échec de l'appel de l'outil OpenAPI peut être représenté par une chaîne d'erreur ("404 not found") dans la sortie de l'outil.
Pour les outils de datastore, l'entrée fallback peut être utilisée pour spécifier comment répondre s'il n'y a pas de réponse résumée.
Si vous souhaitez que votre outil de datastore inclue l'URI dans la réponse du playbook, ajoutez des exemples contenant l'URI que vous souhaitez que le playbook renvoie.
Si cet URI provient de l'outil de datastore, la sortie de l'outil de datastore doit contenir un URI correspondant à l'URI de la réponse du playbook.
Notez que fallback ne peut pas être utilisé dans ce scénario, car il désactiverait la capacité du playbook LLM à reformuler la réponse de l'outil de datastore pour inclure des URI dans la réponse du playbook.
Les exemples contenant des actions d'utilisation d'outils peuvent être assez longs et contribuer à augmenter la consommation de la limite de jetons d'entrée. Pour garantir une utilisation efficace des jetons, assurez-vous que les résultats des outils sont concis et contiennent des informations pertinentes par rapport aux objectifs du playbook. Pour les outils de datastore, envisagez de supprimer les extraits des exemples, car ils peuvent contribuer à une consommation élevée de jetons d'entrée.
Appeler un playbook
Cette action est utilisée lorsque le playbook doit appeler un autre playbook de tâche pour répondre à la requête de l'utilisateur. Cette action doit spécifier les détails suivants :
- Playbook : nom du playbook à appeler.
- Résumé de l'entrée d'appel du playbook : résumé des parties pertinentes de la conversation précédente utiles au playbook appelé.
- Paramètres d'entrée : paramètres d'entrée à transmettre au playbook.
- Résumé de la sortie de l'appel du playbook : résumé de ce que le playbook doit générer une fois son objectif atteint.
- Paramètres de sortie : paramètres de sortie générés par le playbook une fois son objectif atteint.
Transition du playbook
Une action de transition de playbook est une action finale (qui ne doit pas être suivie d'autres actions) qui indique que le playbook de routine a décidé de quitter et de passer à un playbook de routine cible. Notez que, comme cette action indique que le playbook se termine, vous devez ajouter les paramètres de sortie du playbook à la sortie du playbook de l'exemple.
Appel de flux
Cette action est utilisée lorsque le playbook de la tâche doit appeler un flux. Cette action doit spécifier les détails suivants :
- Flux : nom du flux à appeler.
- Paramètres d'entrée du flux : paramètres d'entrée à transmettre au flux.
- Paramètres de retour du flux : paramètres de sortie renvoyés par le flux.
Transition de flux
Une action de transition de flux est une action terminale (qui ne doit pas être suivie d'autres actions) qui indique que le playbook de routine a décidé de quitter et de passer à un flux cible. Notez que, comme cette action indique que le playbook se ferme, vous devez ajouter les paramètres de sortie du playbook à la sortie du playbook de l'exemple.