Esempi di playbook

Ogni playbook deve avere uno o più esempi. Questi esempi sono conversazioni di esempio 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 l'inserimento delle azioni.

Agenti multilingue

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

Esempio di riepilogo di input e di output

Oltre ai parametri di input e output, i playbook supportano la ricezione di un riepilogo di input e l'emissione di un riepilogo di output per lo scambio di informazioni con altri playbook. I riepiloghi sono utili per passare informazioni contestuali astratte tra i playbook, mentre i parametri sono più utili per passare 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 sue 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 riassumere.

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 il controllo verrà ora 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 principale. 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 un errore 500). La sessione terminerà con lo stato di errore. Un messaggio EndInteraction verrà aggiunto alla risposta.
  • ESCALATED: il playbook ha deciso che non può raggiungere l'obiettivo e deve assegnare la situazione a un essere umano. 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 corrispondente al playbook a cui fanno riferimento.

Strategia di selezione

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

  • Seleziona dinamicamente: 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 sta per raggiungere il limite di token.

  • Seleziona sempre: l'esempio viene sempre incluso, indipendentemente dal contesto della conversazione. L'esempio può essere omesso se il prompt sta per raggiungere il 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 all'interno di un playbook è costituito da una serie di azioni. Queste azioni possono variare nelle loro combinazioni, ma rappresentano principalmente l'interazione tra l'utente e il playbook, insieme alle azioni intraprese nel mezzo 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 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 azioni in base alle istruzioni del playbook 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 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 verificare la correttezza delle azioni generate automaticamente e, se necessario, modificale. Questo è 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 dell'utente.

Utilizzo degli strumenti

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

  • Tool: il nome dello strumento da richiamare.

  • Azione: nome dell'operazione per lo strumento OpenAPI che deve essere richiamato. Per gli strumenti datastore e lo strumento funzione, il nome dell'azione è lo stesso del nome dello strumento.

  • Input dello strumento: input da includere nella chiamata allo strumento. In genere, queste informazioni vengono ricavate dai turni di conversazione precedenti con l'utente.

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

    Esempio di input dello strumento OpenAPI requestBody 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 della chiamata allo strumento. Questa è una risposta JSON valida dello strumento all'input fornito. Per gli strumenti Open API, può anche essere un errore di stringa (ad esempio "404 - Non trovato").

    Output di esempio dello strumento OpenAPI 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 Francisco Downtown",
          "uri": "https://www.example.com/San_Francisco_Downtown",
          "text": "Address for San Francisco Downtown .."
        }
      ]
    }
    

Per garantire che il playbook sia sicuro, includi anche esempi di come dovrebbe rispondere quando la chiamata dello strumento non va a buon fine. L'errore di chiamata dello strumento Open API può essere rappresentato come una stringa di errore ("404 - Non trovato") nell'output dello strumento. Per gli strumenti del datastore, l'input fallback può essere utilizzato per specificare come rispondere se non esiste una risposta riassuntiva.

Se vuoi che lo strumento datastore includa l'URI nella risposta del playbook, aggiungi esempi che contengono l'URI con cui vuoi che il playbook risponda. Se questo URI proviene dallo strumento datastore, l'output dello strumento datastore deve contenere un URI che corrisponda all'URI nella risposta del playbook. Tieni presente che fallback non può essere utilizzato in questo scenario perché disabiliterà la capacità del playbook LLM di riformulare la risposta dello strumento datastore per includere gli URI nella risposta del playbook.

Gli esempi contenenti azioni di utilizzo degli strumenti possono essere piuttosto dettagliati e contribuire a un maggiore consumo del limite di token di input. Per garantire un utilizzo efficiente dei token, assicurati che gli output degli strumenti siano concisi e contengano informazioni pertinenti agli obiettivi del playbook. Per gli strumenti del datastore, 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: il nome del playbook da richiamare.
  • Riepilogo degli input di chiamata del playbook: un riepilogo delle parti pertinenti della conversazione precedente utili per il playbook richiamato.
  • Parametri di input: parametri di input da passare al playbook.
  • Riepilogo dell'output della chiamata 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 del suo 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 della routine ha deciso di uscire ed eseguire la transizione a un playbook della routine di destinazione. Tieni presente che, poiché questa azione indica che il playbook viene chiuso, devi aggiungere 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: nome del flusso da richiamare.
  • Parametri di input del flusso: parametri di input da passare al flusso.
  • Parametri di ritorno del 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 della routine ha deciso di uscire ed eseguire la transizione a un flusso di destinazione. Tieni presente che, poiché questa azione indica che il playbook viene chiuso, devi aggiungere i parametri di output del playbook all'output del playbook dell'esempio.