Chaque agent doit comporter un ou plusieurs exemples. Ces exemples sont des exemples de conversations entre un utilisateur final et l'application agent, y compris le dialogue et les actions effectuées par l'application de l'agent. Il s'agit en fait exemples de requêtes few-shot pour le LLM.
La console fournit une interface pour que vous puissiez saisir des actions.
Applis d'agents multilingues
Si vous souhaitez que votre application agent gère plusieurs langues, vos exemples doivent utiliser chacun des langages.
Exemple de résumé des entrées et de la sortie
En plus des paramètres d'entrée et de sortie, les agents acceptent la réception résumé des entrées et émettre un récapitulatif des résultats pour échanger des informations avec d'autres agents. Les résumés sont utiles pour transmettre des informations contextuelles abstraites des informations entre les agents, tandis que les paramètres sont plus utiles pour transmettre des champs structurés et bien définis entre les agents. Les paramètres sont les seuls moyen d'échanger des données entre les flux et les agents.
Ajoutez des résumés d'entrée pertinents aux exemples pour conditionner l'agent afin d'ajuster sa en fonction des résumés des entrées lors de l'exécution. Ajouter des résumés des résultats, y compris des détails pertinents et précis sur l'exemple conversation pour montrer à l'agent les détails qu'il est important de résumer.
Exemple d'état
À un moment donné de la conversation, l'un des états d'agent est le suivant:
OK
: l'agent a atteint son objectif, et le contrôle va maintenant être transféré à l'agent parent.CANCELLED
: l'utilisateur a décidé de ne pas poursuivre l'objectif attribué à l'agent. Le contrôle sera désormais transféré à l'agent parent. Si l'agent parent est un flux CX, l'intent de l'entrée utilisateur sera détecté avant l'exécution du flux.FAILED
: l'agent ne peut pas poursuivre l'objectif en raison d'une erreur (par exemple, un outil renvoie une erreur 500). La session se terminera avec l'état "fail" (échec). Une EndInteraction est ajouté à la réponse.ESCALATED
: l'agent a décidé qu'il ne peut pas atteindre l'objectif et doit faire remonter la situation à un humain. La session prendra fin avec l'état escaladé. Une EndInteraction est ajouté à la réponse.PENDING
: la conversation se poursuit au sein de l'agent.
L'exemple de premier niveau et ses appels d'agent doivent être indiqués par un état correspondant à l'agent auquel ils font référence.
Stratégie de sélection
La stratégie de sélection détermine si chaque exemple est inclus dans l'invite de l'agent.
DEFAULT
: l'exemple peut être omis si l'invite s'approche de la limite de jetons.STATIC
: l'exemple est toujours inclus.NEVER
: l'exemple n'est jamais inclus dans l'invite. L'exemple comporte sans aucune incidence sur les performances de l'agent.
Ajouter une action
Un exemple fourni dans un agent consiste en une série d'actions. Ces actions peuvent varier dans leurs combinaisons, mais elles représentent principalement l'interaction entre l'utilisateur et l'agent, 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 en maintenant le pointeur de la souris 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 existantes de l'agent, saisissez une entrée utilisateur dans le champ Enter user input (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 l'agent au moment de l'exécution dans le volet Preview agent (Agent de prévisualisation) à droite. Pour enregistrer des actions dans un exemple du volet Agent de prévisualisation, cliquez sur Enregistrer l'exemple après avoir sélectionné l'appel d'agent dans la liste d'appels à gauche du volet Agent de prévisualisation.
Vérifiez que les actions générées automatiquement sont correctes et modifiez-les si nécessaire. C'est particulièrement important pour les agents qui disposent de peu ou pas d'exemples.
L'agent accepte les types d'actions suivants:
Réponse de l'agent
Réponse de l'agent à la requête de l'utilisateur.
Entrée utilisateur
Requête utilisateur.
Utilisation de l'outil
Il s'agit d'un appel d'outil permettant d'obtenir les informations supplémentaires nécessaires pour traiter la requête de l'utilisateur. Cette action doit spécifier les informations suivantes:
- Tool: nom de l'outil à appeler.
- Action: nom de l'opération pour l'outil OpenAPI qui doit être appelé. Pour les outils de data store et l'outil de fonction, le nom de l'action est identique au nom de l'outil.
Tool input (Entrée de l'outil) : entrées à inclure dans l'appel de l'outil. Ceux-ci proviennent généralement des tours de conversation précédents avec l'utilisateur.
Pour les outils OpenAPI, le format JSON
requestBody
est requis pour les types de méthodesPOST
,PUT
etPATCH
.Exemple d'entrée
requestBody
d'un outil OpenAPI pour l'action createPet:{ "id": 1, "name": "Luna" }
Pour l'outil de data store, l'exemple
requestBody
où la requête est requise et les autres champs sont facultatifs.{ "query": "Where is my nearest store?", "filter": "country: ANY(\"United States\")", "userMetadata": { "userCity": "San Fransisco", }, "fallback": "We don't have any stores in your area." }
Résultat 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 Page introuvable").
Exemple de résultat d'un outil OpenAPI pour l'action listPets:
{ "pets": [ { "id": 1, "name": "Luna" }, { "id": 2, "name": "Charlie" }] }
Exemple de sortie de l'outil de data store:
{ "answer": "Here's the address to your nearest store ...", "snippets": [ { "title": "San Fransisco Downtown", "uri": "https://www.example.com/San_Fransisco_Downtown", "text": "Address for San Fransisco Downtown .." } ] }
Pour vous assurer que l'agent est sécurisé, incluez également des exemples de réponse lorsque l'appel de l'outil échoue. L'échec d'un appel de l'outil OpenAPI peut être représenté par une chaîne d'erreur ("404 introuvable") dans le résultat de l'outil. Pour les outils de data store, l'entrée fallback
peut être utilisée pour spécifier comment répondre en l'absence de réponse résumée.
Si vous souhaitez que votre outil de datastore inclue l'URI dans la réponse de l'agent, ajoutez des exemples contenant l'URI avec lequel vous souhaitez que l'agent réponde. Si cet URI provient de l'outil de magasin de données, la sortie de cet outil doit contenir un URI qui correspond à l'URI dans la réponse de l'agent. Notez que fallback
ne peut pas être utilisé dans ce scénario, car il empêchera l'agent LLM de reformuler la réponse de l'outil de magasin de données pour inclure les URI dans la réponse de l'agent.
Les exemples contenant des actions d'utilisation d'outil peuvent devenir très détaillés et contribuer à une consommation accrue de la limite de jetons d'entrée. Pour utiliser efficacement les jetons, assurez-vous que les sorties de l'outil sont concises et contiennent des informations pertinentes pour les objectifs de l'agent. Pour les outils de data store, envisagez de supprimer les extraits des exemples, car ils peuvent contribuer à une consommation élevée de jetons d'entrée.
Appel de l'agent
Cette action est utilisée lorsque l'agent doit appeler un autre agent pour traiter la requête de l'utilisateur. Cette action doit spécifier les informations suivantes:
- Agent: nom de l'agent à appeler.
- Agent invocation input summary (Résumé des entrées d'appel de l'agent) : résumé des parties pertinentes de la conversation précédente utiles pour l'agent appelé.
- Input parameters (Paramètres d'entrée) : paramètres d'entrée à transmettre à l'agent
- Agent invocation output summary (Résumé du résultat de l'appel de l'agent) : résumé de ce que l'agent doit générer une fois son objectif atteint.
- Paramètres de sortie: paramètres de sortie générés par l'agent une fois son objectif atteint.