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. Si tratta in pratica di 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, gli esempi devono utilizzare ciascuna delle lingue.

Esempio di riepilogo input e riepilogo 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 trasmettere informazioni contestuali astratti tra i playbook, mentre i parametri sono più utili per trasmettere campi strutturati e ben definiti tra i playbook. I parametri sono l'unico modo per scambiare dati tra flussi e playbook.

Aggiungi riepiloghi di input pertinenti agli esempi per condizionare il playbook ad adeguare le sue azioni in base ai riepiloghi di input in fase di esecuzione. Aggiungi riepiloghi dell'output che includono 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 sarà in uno dei seguenti stati:

  • OK: il playbook ha raggiunto 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'intenzione dell'input utente verrà rilevata 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. Alla risposta verrà aggiunto un messaggio EndInteraction.
  • ESCALATED: il playbook ha stabilito che non può raggiungere l'obiettivo e deve riassegnarla a un addetto. La sessione terminerà con lo stato riassegnato. Alla risposta verrà aggiunto un messaggio EndInteraction.
  • PENDING: la conversazione continua all'interno del playbook.

L'esempio di primo livello e le relative invocazioni del playbook devono essere indicati con uno stato che corrisponda 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 all'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 la richiesta sta per raggiungere il limite di token. Se vuoi, puoi fornire corrispondenze di parole.
  • Seleziona sempre: l'esempio è sempre incluso, indipendentemente dal contesto della conversazione. L'esempio può essere omesso se la richiesta 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.

Corrispondenze di parole

Se vuoi, puoi fornire corrispondenze di parole per gli esempi con una strategia di selezione dinamica. In questo modo puoi avere un maggiore controllo sull'inclusione o meno dell'esempio nel prompt. Questa opzione è consigliata per i playbook con più di 100 esempi.

Puoi fornire più espressioni di corrispondenza come semplici parole da associare o espressioni regolari e ogni espressione di corrispondenza può essere di uno dei seguenti tipi:

  • user: le corrispondenze vengono verificate in base ai messaggi degli utenti finali.
  • agent: le corrispondenze vengono controllate in base ai messaggi dell'agente.
  • any: le corrispondenze vengono controllate in base ai messaggi dell'utente finale e dell'agente, nonché alle azioni.

Durante la ricerca di una corrispondenza, le espressioni vengono associate al massimo agli ultimi 5 turni di conversazione e al primo messaggio dell'utente finale.

Se viene trovata una corrispondenza per l'esempio, questo viene dato la priorità rispetto ad altri esempi selezionati dinamicamente senza corrispondenze di parole.

Il formato delle corrispondenze di parole è un elenco separato da virgole, dove ogni espressione inizia con il tipo di espressione e due punti. Ad esempio:

user:red,agent:blue,any:placeOrder

Queste corrispondenze si verificano se una delle seguenti condizioni è vera:

  • Un messaggio dell'utente finale contiene red.
  • Un messaggio dell'agente contiene blue.
  • Qualsiasi messaggio contiene o l'azione corrisponde a placeOrder.

Aggiungi azione

Un esempio fornito all'interno di 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 intermedie intraprese 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 il cursore si trova 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 esecuzione 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 l'invocazione del playbook dall'elenco di invocazioni a sinistra del riquadro Anteprima playbook.

Assicurati di verificare la correttezza delle azioni generate automaticamente e di modificarle, se necessario. Questo è particolarmente importante per le 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 dello strumento

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

  • Strumento: il nome dello strumento da richiamare.
  • Azione: il nome dell'operazione per lo strumento OpenAPI da richiamare. Per gli strumenti di archiviazione dei dati e gli strumenti di funzione, il nome dell'azione corrisponde al nome dello strumento.
  • Input dello strumento: gli input da includere nella chiamata dello strumento. In genere, si tratta di informazioni ricavate dai turni di conversazione precedenti con l'utente.

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

    Input requestBody di strumento Open API di esempio per l'azione createPet:

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

    Per lo strumento di datastore, il sample 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 Fransisco",
      },
      "fallback": "We don't have any stores in your area."
    }
    
  • Output dello strumento: la risposta all'invocazione dello strumento. Questa è una risposta JSON valida dello strumento all'input specificato. Per gli strumenti Open API, può anche essere un errore di stringa (ad esempio "404 Non trovato").

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

Per assicurarti che il playbook sia fail-safe, includi anche esempi di come deve rispondere quando l'invocazione dello strumento non va a buon fine. L'errore di chiamata dello strumento Open API può essere rappresentato come una stringa di errore ("404 not found") nell'output dello strumento. Per gli strumenti di archiviazione dei dati, l'input fallback può essere utilizzato per specificare come rispondere se non è presente una risposta riassunta.

Se vuoi che lo strumento di gestione del data store includa l'URI nella risposta del playbook, aggiungi esempi contenenti 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 corrisponda a quello nella risposta del playbook. La nota fallback non può essere utilizzata in questo scenario perché disattiva la capacità del playbook LLM di riformulare la risposta dello strumento di archiviazione dei dati in modo da includere gli URI nella risposta del playbook.

Gli esempi contenenti azioni di utilizzo dello strumento possono essere piuttosto descrittivi e contribuire ad aumentare il 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 data store, valuta la possibilità di rimuovere gli snippet dagli esempi, in quanto possono contribuire a un elevato consumo di token di input.

Richiamo del playbook

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

  • Playbook: il nome del playbook da richiamare.
  • Riepilogo dell'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 dell'invocazione del playbook: un riepilogo di ciò che il playbook deve generare al termine del suo obiettivo.
  • Parametri di output: parametri di output generati dal playbook al completamento del suo obiettivo.