Exemples

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 agent. Il s'agit en fait de quelques exemples de requêtes pour le LLM.

La console fournit une interface vous permettant de saisir des actions.

Applis d'agents multilingues

Si vous souhaitez que votre application agent gère plusieurs langues, vos exemples doivent utiliser chacune d'elles.

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 d'un résumé des entrées et l'émission d'un résumé des sorties pour échanger des informations avec d'autres agents. Les résumés sont utiles pour transmettre des informations contextuelles abstraites 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 le seul 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 ses actions en fonction des résumés d'entrée au moment de l'exécution. Ajoutez des résumés de sortie, y compris des détails pertinents et précis sur l'exemple de conversation, pour indiquer à 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, l'outil renvoie une erreur 500). La session se terminera avec l'état "fail" (échec). Un message 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é. Un message 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 ou non 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 n'aura aucun effet 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 des informations supplémentaires nécessaires pour traiter la requête de l'utilisateur. Cette action doit spécifier les détails suivants:

  • 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éthodes POST, PUT et PATCH.

    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 de 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 Introuvable").

    Exemple de résultat d'un outil OpenAPI pour l'action listPets:

    {
      "pets": [
        {
          "id": 1,
          "name": "Luna"
        },
        {
          "id": 2,
          "name": "Charlie"
        }]
    }
    

    Exemple de résultat 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 des outils sont concises et contiennent des informations pertinentes par rapport aux objectifs de l'agent. Pour les outils de data store, pensez à 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 détails suivants:

  • 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.