Esempi di playbook

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

La console fornisce un'interfaccia per inserire le azioni.

Agenti multilingue

Se vuoi che l'agente gestisca più lingue, i tuoi esempi devono utilizzare ciascuna delle lingue.

Esempio di riepilogo dell'input e dell'output

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

Aggiungi riepiloghi degli input pertinenti agli esempi per condizionare il playbook in modo che adatti le proprie azioni in base ai riepiloghi degli input in fase di runtime. Aggiungi riepiloghi dell'output che includano dettagli pertinenti e accurati sulla conversazione di esempio per mostrare al playbook quali dettagli sono importanti da riepilogare.

Stato di esempio

In un determinato momento della conversazione, un playbook si troverà in uno dei seguenti stati:

  • OK: il playbook ha raggiunto correttamente il suo obiettivo e ora il controllo verrà trasferito al playbook principale.
  • CANCELLED: l'utente ha deciso di non procedere con l'obiettivo assegnato al playbook. Il controllo verrà ora trasferito al playbook per i genitori. Se il playbook principale è un flusso CX, l'intent dell'input utente verrà rilevato prima dell'esecuzione del flusso.
  • FAILED: Il playbook non può procedere con l'obiettivo a causa di un errore (ad es. lo strumento restituisce l'errore 500). La sessione terminerà con lo stato di errore. Al messaggio di risposta verrà aggiunto un messaggio EndInteraction.
  • ESCALATED: la guida pratica ha stabilito che non è possibile raggiungere l'obiettivo e che è necessario trasferire la situazione a un operatore. La sessione terminerà con lo stato di riassegnazione. Alla risposta verrà aggiunto un messaggio EndInteraction.
  • PENDING: La conversazione continua all'interno del playbook.

L'esempio di primo livello e le relative chiamate del playbook devono essere contrassegnati con uno stato che corrisponde al playbook a cui fanno riferimento.

Strategia di selezione

L'impostazione della strategia di selezione controlla se un esempio è incluso nel prompt del playbook inviato al LLM. Sono disponibili le seguenti opzioni:

  • Selezione dinamica: l'esempio viene incluso in modo condizionale, in base alla sua pertinenza per il contesto della conversazione corrente. L'esempio può essere omesso se il prompt si avvicina al limite di token.

  • Seleziona sempre: l'esempio è sempre incluso, indipendentemente dal contesto della conversazione. L'esempio può essere omesso se il prompt si avvicina al limite di token.

  • Non selezionare mai: l'esempio non viene mai incluso nel prompt. L'esempio non avrà alcun effetto sul rendimento del playbook. Questa impostazione è utile per escludere temporaneamente un esempio per i test.

Aggiungi azione

Un esempio fornito in un playbook è costituito da una serie di azioni. Queste azioni possono variare nelle loro combinazioni, ma descrivono principalmente l'interazione tra l'utente e il playbook, insieme alle azioni intraprese nel frattempo 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 di destra o sul pulsante Aggiungi azione quando tieni il puntatore sopra le 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 le azioni in base alle istruzioni del playbook esistente, 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 il playbook in fase di runtime nel riquadro Anteprima playbook a destra. Per salvare le azioni in un esempio dal riquadro Anteprima playbook, fai clic su Salva esempio dopo aver selezionato la chiamata del playbook dall'elenco delle chiamate a sinistra del riquadro Anteprima playbook.

Assicurati di controllare la correttezza delle azioni generate automaticamente e modificale se necessario. Ciò è particolarmente importante per i playbook con pochi o nessun esempio.

Il playbook supporta i seguenti tipi di azioni:

Risposta del playbook

La risposta del playbook alla query dell'utente.

Input utente

La query utente.

Utilizzo degli strumenti

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

  • Strumento: nome dello strumento da richiamare.

  • Azione: nome dell'operazione per lo strumento OpenAPI che deve essere richiamato. Per gli strumenti di archiviazione dei dati e lo strumento funzione, il nome dell'azione è uguale al nome dello strumento.

  • Input dello strumento: input da includere nella chiamata dello strumento. Questi vengono solitamente derivati dai turni di conversazione precedenti con l'utente.

    Per Open API tools, requestBody JSON è obbligatorio per i tipi di metodo POST, PUT e PATCH.

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

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

    Per lo strumento datastore, l'esempio requestBody in cui la query è obbligatoria e gli altri campi sono facoltativi.

    {
      "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."
    }
    
  • Output dello strumento: la risposta dell'invocazione dello strumento. Si tratta di una risposta JSON valida dello strumento all'input fornito. Per Open API tools, può anche essere una stringa di errore (ad esempio, "404 Not found").

    Output di esempio dello strumento API aperto per l'azione listPets:

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

    Esempio di output dello strumento Data Store:

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

Per garantire che il playbook sia a prova di errore, includi anche esempi di come deve rispondere quando la chiamata dello strumento non va a buon fine. L'errore di chiamata dello strumento API può essere rappresentato come una stringa di errore ("404 not found") nell'output dello strumento. Per gli strumenti datastore, l'input fallback può essere utilizzato per specificare come rispondere se non è presente una risposta riassuntiva.

Se vuoi che lo strumento datastore includa l'URI nella risposta del playbook, aggiungi esempi che contengano l'URI con cui vuoi che il playbook risponda. Se questo URI proviene dallo strumento di archiviazione dei dati, l'output dello strumento di archiviazione dei dati deve contenere un URI che corrisponde all'URI nella risposta del playbook. La nota fallback non può essere utilizzata in questo scenario perché disattiverà la funzionalità del playbook LLM di riformulare la risposta dello strumento di archiviazione dei dati per includere gli URI nella risposta del playbook.

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

Chiamata del playbook

Questa azione viene utilizzata quando il playbook deve richiamare un altro playbook di attività per soddisfare la query dell'utente. Questa azione deve specificare i seguenti dettagli:

  • Playbook: nome del playbook da richiamare.
  • Riepilogo input di chiamata del playbook: Un riepilogo delle parti pertinenti della conversazione precedente utile per il playbook che viene chiamato.
  • Parametri di input: Parametri di input da passare al playbook.
  • Riepilogo dell'output di invocazione del playbook: Un riepilogo di ciò che il playbook deve generare al completamento del suo obiettivo.
  • Parametri di output: Parametri di output generati dal playbook al completamento dell'obiettivo.

Transizione del playbook

Un'azione di transizione del playbook è un'azione terminale (non deve essere seguita da altre azioni) che indica che il playbook di routine ha deciso di uscire e passare a un playbook di routine di destinazione. Tieni presente che, poiché questa azione indica che il playbook viene chiuso, aggiungi i parametri di output del playbook all'output del playbook dell'esempio.

Chiamata del flusso

Questa azione viene utilizzata quando il playbook delle attività deve richiamare un flusso. Questa azione deve specificare i seguenti dettagli:

  • Flusso: il nome del flusso da richiamare.
  • Parametri di input del flusso: Parametri di input da passare al flusso.
  • Parametri restituiti dal flusso: Parametri di output restituiti dal flusso.

Transizione del flusso

Un'azione di transizione del flusso è un'azione terminale (non deve essere seguita da altre azioni) che indica che il playbook di routine ha deciso di uscire e passare a un flusso di destinazione. Tieni presente che, poiché questa azione indica che il playbook viene chiuso, aggiungi i parametri di output del playbook all'output del playbook dell'esempio.