Esempi

Ogni agente deve avere uno o più esempi. Questi esempi sono conversazioni di esempio tra un utente finale e l'app dell'agente, inclusi il dialogo e le azioni eseguite dall'app dell'agente. Si tratta di esempi di prompt few-shot per l'LLM.

La console fornisce un'interfaccia per inserire le azioni.

App agente multilingue

Se vuoi che l'app dell'agente gestisca più lingue, gli esempi devono utilizzare ogni lingua.

Esempi di riepilogo di input e output

Oltre ai parametri di input e output, gli agenti supportano la ricezione di un riepilogo di input e l'emissione di un riepilogo di output per lo scambio di informazioni con altri agenti. I riepiloghi sono utili per passare informazioni contestuali astratte tra gli agenti, mentre i parametri sono più utili per passare campi strutturati e ben definiti tra gli agenti. I parametri sono l'unico modo per scambiare dati tra flussi e agenti.

Aggiungi riepiloghi di input pertinenti agli esempi per condizionare l'agente a regolare le sue azioni in base ai riepiloghi di input in fase di runtime. Aggiungi riepiloghi degli output, inclusi dettagli pertinenti e accurati sulla conversazione di esempio, per mostrare all'agente quali dettagli è importante riassumere.

Stato di esempio

A un certo punto della conversazione, lo stato dell'agente sarà uno dei seguenti:

  • OK: l'agente ha raggiunto il proprio obiettivo e il controllo verrà ora trasferito all'agente principale.
  • CANCELLED: l'utente ha deciso di non procedere con l'obiettivo assegnato all'agente. Ora il controllo verrà trasferito all'agente principale. Se l'agente principale è un flusso CX, l'intento dell'input utente verrà rilevato prima dell'esecuzione del flusso.
  • FAILED: l'agente non può procedere con l'obiettivo a causa di alcuni errori (ad esempio, lo strumento restituisce un errore 500). La sessione terminerà con stato "Non riuscito". Alla risposta verrà aggiunto un messaggio EndInteraction.
  • ESCALATED: l'agente ha deciso di non poter raggiungere l'obiettivo e deve riassegnare la situazione a una persona. La sessione terminerà con stato riassegnato. Alla risposta verrà aggiunto un messaggio EndInteraction.
  • PENDING: la conversazione è ancora in corso all'interno dell'agente.

L'esempio di primo livello e le relative chiamate dell'agente devono essere indicati con uno stato che corrisponde all'agente a cui fanno riferimento.

Strategia di selezione

La strategia di selezione stabilisce se ogni esempio è incluso nel prompt dell'agente.

  • DEFAULT: l'esempio può essere omesso se il prompt si avvicina al limite di token.
  • STATIC: l'esempio è sempre incluso.
  • NEVER: l'esempio non è mai incluso nel prompt. L'esempio non avrà alcun effetto sulle prestazioni dell'agente.

Aggiungi azione

Un esempio fornito all'interno di un agente è costituito da una serie di azioni. Queste azioni possono variare nelle combinazioni, ma mostrano principalmente l'interazione tra l'utente e l'agente, insieme alle azioni intermedie per soddisfare la query o i requisiti dell'utente.

Esistono due modi per aggiungere azioni a un esempio:

  • Per aggiungere un'azione manualmente, fai clic sul pulsante + nella parte inferiore del riquadro a destra o sul pulsante Aggiungi azione quando tieni premuto il puntatore sulle azioni esistenti. Puoi utilizzare queste opzioni quando crei un nuovo esempio facendo clic sull'opzione + Esempio o quando modifichi un esempio esistente.

  • Per generare automaticamente azioni in base alle istruzioni dell'agente esistenti, inserisci un input utente nel campo Inserisci input utente nella parte inferiore del riquadro a destra. Puoi utilizzare questa opzione quando crei o modifichi un esempio. In alternativa, puoi utilizzare questa opzione quando testi l'agente in fase di runtime nel riquadro Agente di anteprima a destra. Per salvare le azioni in un esempio dal riquadro Agente anteprima, fai clic su Salva esempio dopo aver selezionato la chiamata dell'agente dall'elenco a sinistra del riquadro Agente di anteprima.

Assicurati di verificare la correttezza delle azioni generate automaticamente e di modificarle, se necessario. Questo è particolarmente importante per gli agenti che hanno pochi esempi o nessun esempio.

L'agente supporta i seguenti tipi di azioni:

Risposta dell'agente

La risposta dell'agente alla query dell'utente.

Input utente

La query dell'utente.

Utilizzo degli strumenti

Si tratta di una chiamata a uno strumento per ottenere le informazioni aggiuntive necessarie per soddisfare la query dell'utente. Questa azione deve specificare i seguenti dettagli:

  • Tool (Strumento): nome dello strumento da richiamare.
  • Azione: nome dell'operazione per lo strumento OpenAPI che deve essere richiamata. Per gli strumenti per datastore e lo strumento funzione, il nome dell'azione corrisponde al nome dello strumento.
  • Input dello strumento: input da includere nella chiamata dello strumento. In genere derivano dalle conversazioni precedenti con l'utente.

    Per gli strumenti Open API, è richiesto requestBody JSON per i tipi di metodo POST, PUT e PATCH.

    Esempio di input requestBody dello strumento Open API per l'azione createPet:

    {
      "id": 1,
      "name": "Luna"
    }
    

    Per lo strumento di datastore, il valore requestBody di esempio in cui la query è obbligatoria, mentre gli altri campi sono facoltativi.

    {
      "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."
    }
    
  • Output dello strumento: la risposta alla chiamata dello strumento. Si tratta di una risposta JSON valida dallo strumento all'input specificato. Per la sezione Open API Tools (Strumenti API aperti), può anche essere un errore di stringa (ad esempio, "404 Not found").

    Esempio di output dello strumento Open API per l'azione listPets:

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

    Esempio di output dello strumento Datastore:

    {
      "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 .."
        }
      ]
    }
    

Per garantire la sicurezza dell'agente, includi anche esempi di come l'agente dovrebbe rispondere quando la chiamata dello strumento non va a buon fine. L'errore di chiamata dello strumento aperto API può essere rappresentato come una stringa di errore ("404 non trovato") nell'output dello strumento. Per gli strumenti per datastore, è possibile utilizzare l'input fallback per specificare come rispondere se non è presente un riassunto di una risposta.

Se vuoi che lo strumento di archiviazione dati includa l'URI nella risposta dell'agente, aggiungi esempi che contengano l'URI con cui vuoi che l'agente risponda. Se questo URI proviene dallo strumento di archiviazione dati, l'output dello strumento di archiviazione dati dovrebbe contenere un URI che corrisponda all'URI nella risposta dell'agente. Nota: fallback non può essere utilizzato in questo scenario perché disattiverà la capacità dell'agente LLM di riformulare la risposta dello strumento datastore per includere gli URI nella risposta dell'agente.

Gli esempi che contengono azioni di utilizzo degli strumenti possono diventare piuttosto dettagliati e contribuire a un aumento del consumo del limite di token di input. Per garantire un uso efficiente dei token, assicurati che gli output degli strumenti siano concisi e contengano informazioni pertinenti agli obiettivi degli agenti. Per gli strumenti per l'archiviazione dei dati, valuta la possibilità di rimuovere gli snippet dagli esempi, in quanto possono contribuire a un consumo elevato dei token di input.

Chiamata all'agente

Questa azione viene utilizzata quando l'agente deve richiamare un altro agente per soddisfare la query dell'utente. Questa azione deve specificare i seguenti dettagli:

  • Agente: nome dell'agente da richiamare.
  • Riepilogo input chiamata agente: un riepilogo delle parti pertinenti della conversazione precedente utile per l'agente richiamato.
  • Parametri di input: parametri di input da trasmettere all'agente.
  • Riepilogo output di chiamata agente: un riepilogo di ciò che l'agente dovrebbe generare al completamento dell'obiettivo.
  • Parametri di output: parametri di output generati dall'agente al completamento dell'obiettivo.