Best practice per la progettazione di agenti generici

Questa guida fornisce best practice generali per la progettazione di tutti i tipi di agenti.

Consulta anche la guida alla progettazione degli agenti vocali specifica per la progettazione di agenti vocali e la guida alle best practice per l'utilizzo del servizio Dialogflow.

Prima di creare un agente

Questa sezione fornisce informazioni da prendere in considerazione prima di iniziare a creare un agente.

Obiettivo

Prendi in considerazione lo scopo generale del tuo agente:

  • Quali obiettivi sta cercando di raggiungere la tua attività?
  • Cosa si aspettano gli utenti dal tuo agente?
  • Con quale frequenza gli utenti interagiranno con il tuo agente?

Piattaforma

Valuta in che modo gli utenti accederanno al tuo agente. Esamina le piattaforme supportate da Dialogflow prima di creare contenuti. Quando scegli le piattaforme da supportare, prepara i tuoi contenuti di conseguenza. Alcune delle integrazioni della piattaforma Dialogflow supportano messaggi avanzati che possono includere elementi come immagini, link e chip di suggerimento.

Creare agenti in modo iterativo

Se l'agente sarà di grandi dimensioni o complesso, inizia creando una finestra di dialogo che risponda solo alle richieste di primo livello. Una volta stabilita la struttura di base, esegui l'iterazione sui percorsi di conversazione per assicurarti di coprire tutti i percorsi possibili che un utente può intraprendere.

Agenti predefiniti

Dialogflow offre agenti precostituiti per aiutarti a iniziare. Gli agenti predefiniti coprono casi d'uso comuni come prenotazioni di hotel, navigazione e acquisti online. Questi agenti sono dotati di intent e entità per coprire le query utente più comuni. Aggiungi risposte specifiche per la tua attività e potrai creare rapidamente un agente funzionante.

Entità di sistema

Quando un utente effettua una richiesta, è necessario analizzare le informazioni importanti da ciò che ha detto. In Dialogflow, sono chiamate entità. In particolare, le entità di sistema sono entità predefinite fornite da Dialogflow che gestiscono i tipi di informazioni più comuni.

Small talk

Durante lo sviluppo della conversazione, potresti aver considerato la possibilità di gestire le richieste fuori tema. Dialogflow fornisce una funzionalità facoltativa chiamata chiacchierata. Con questa funzionalità attivata, il tuo agente risponderà a conversazioni generali, risposte emotive e domande sull'agente stesso. Tutte le risposte per le chiacchiere informali possono essere personalizzate per garantire che l'esperienza, che sia informale, professionale o intermedia, sia rappresentativa del tuo brand.

Best practice per la progettazione degli agenti

Questa sezione fornisce un elenco di best practice per un agente affidabile, accurato, efficace e utilizzabile.

Saluti e arrivederci

Best practice Dettagli
Gli intent di benvenuto devono comunicare agli utenti le funzionalità dell'agente tenendo conto del branding. L'intenzione di benvenuto dell'agente deve informare l'utente di 2-3 attività in cui l'agente può essere di aiuto, nonché fornire brevi descrizioni (se necessario) su come utilizzare queste funzionalità.
Gli agenti devono avere un messaggio di uscita appropriato al termine di un'interazione andata a buon fine. Quando un utente completa un'attività nell'agente, deve riassumere la transazione/l'attività e dire qualcosa come "A presto" e così via.

Machine learning e formazione

Best practice Dettagli
Gli intent devono avere almeno 10-20 (a seconda della complessità dell'intent) frasi di addestramento. La complessità dell'agente determinerà il numero effettivo di frasi di addestramento che ogni intent deve avere, ma 10-20 (a seconda della complessità dell'intent) è un buon numero minimo. Più parametri hai nelle tue intenzioni, più frasi devi fornire per addestrare il modello di machine learning.
Le frasi di addestramento devono essere varie. Includi varianti di domande, comandi, verbi e sinonimi per i nomi comuni per assicurarti che le frasi coprano un ampio spettro di possibili richieste.
Le annotazioni devono essere coerenti.
  • Rivedi le frasi di addestramento e assicurati che le annotazioni evidenziate rimandino alle entità corrette.
  • Il testo nelle frasi di addestramento non deve essere annotato in alcuni casi, ma non in altri.
  • L'intervallo di testo selezionato per un'annotazione deve includere tutto il testo necessario per abbinare un'entità e non più di quello.
  • Assicurati che il testo annotato in più frasi di addestramento contenga parti simili della frase di addestramento. Ad esempio, considera la frase di addestramento "Imposta sveglia alle 6:00", dove "6:00" è annotato come @sys.date. Se hai un'altra frase di addestramento "svegliami alle 7:00", annota "7:00", ma non "alle 7:00".
Utilizza annotazioni semanticamente significative per le entità di sistema. Il significato semantico di una parte della frase di addestramento selezionata per un'annotazione può essere influenzato dal resto del testo della frase di addestramento. Ad esempio:
  • Ho 7 anni (il significato semantico del testo annotato è l'età di una persona)
  • Il contratto è valido per 7 anni (il significato semantico del testo annotato è una durata temporale)
I modelli di machine learning di Dialogflow prendono in considerazione il significato semantico quando abbinano le entità di sistema. Il significato semantico della parte della frase di addestramento deve corrispondere al significato semantico previsto dell'entità di sistema.

Ad esempio, non utilizzare l'entità di sistema @sys.duration per l'annotazione del primo esempio "7 anni" riportato sopra. Il significato semantico di "7 anni" non corrisponde a una semplice durata temporale. Dovresti utilizzare l'entità di sistema @sys.age.
Le entità personalizzate devono coprire una vasta gamma di esempi. Le entità sono elenchi di elementi. Il machine learning si occuperà delle forme grammaticali, ma devi includere tutti gli elementi possibili. Inoltre, seleziona l'opzione Definisci sinonimi e includi alcune varianti.
Disattiva l'ML per il minor numero possibile di intent. Le frasi di addestramento per gli intent con il ML disattivato non vengono utilizzate durante l'addestramento dell'agente. Una query utente molto simile a una frase di addestramento in un'intenzione con l'apprendimento automatico disattivato potrebbe essere associata all'intenzione sbagliata se altri intent con l'apprendimento automatico abilitato presentano una leggera somiglianza con la query utente. Se hai problemi con i falsi positivi, aumenta la soglia di classificazione ML anziché disattivare l'ML.
Non impostare una soglia di classificazione ML elevata per un agente con pochi dati di addestramento. Se la soglia è elevata e non sono disponibili molti dati di addestramento, solo le query degli utenti che hanno corrispondenze quasi esatte alle frasi di addestramento daranno luogo a una corrispondenza dell'intento. Se vuoi una soglia elevata, devi fornire molti dati di addestramento.
Gli agenti devono avere un'intenzione di riserva. Senza intent di riserva, le query degli utenti non corrispondenti produrranno risposte vuote.
Gli agenti devono fornire esempi negativi. Gli esempi negativi impediscono che le query degli utenti leggermente simili alle frasi di addestramento corrispondano involontariamente alle intenzioni.
Non definire entità che corrispondono a qualsiasi cosa. Ciò peggiora le prestazioni e la qualità dell'IA. Quasi tutto in ogni frase di addestramento verrà valutato come una possibile corrispondenza. Valuta la possibilità di utilizzare @sys.any. Analogamente, le entità composite non devono contenere un singolo @sys.any come sinonimo.
Non definire entità composte da parole di riempimento o testo senza significato. Esempi di parole di riempimento e testo senza significato sono: "hmmm", "vediamo", "per favore", "ti prego". Se stai tentando di utilizzare entità come questa per introdurre varietà, stai solo peggiorando il rendimento dell'AI. Dialogflow già aumenta i dati per gestire una varietà come questa. Dovresti aggiungere frasi come questa alle frasi di addestramento, non alle entità.
Le entità devono avere un ambito limitato che acquisisca valori distinti di un tipo di informazioni. Mantieni le entità concise, brevi e semplici. Se i valori delle entità sono complicati, è possibile che le frasi di addestramento dell'intenzione siano più adatte alla tua situazione. Ad esempio, prendi in considerazione espressioni per gli utenti finali come "Come faccio a effettuare una chiamata internazionale con il piano A?" e "Utilizzo del roaming di dati internazionale con il piano B". Non creare entità sia per le azioni ("Come faccio a effettuare una chiamata internazionale" e "Utilizzo del roaming dati internazionale") sia per i piani ("Piano A", "Piano B"). Devi invece utilizzare frasi di addestramento e corrispondenza dell'intenzione per acquisire le azioni e le entità per acquisire i piani.
Il testo annotato nelle frasi di addestramento deve essere vario. Ad esempio, se fornisci valori di tempo che devono essere analizzati come entità di sistema @sys.time nelle frasi di addestramento, non fornire la stessa ora in tutte le frasi di addestramento. Le frasi di addestramento devono contenere una serie di esempi di orari, ad esempio "7:00", "20:00", "Le 9".
Gli intent con molti parametri devono avere anche molte frasi di addestramento. Come regola generale, cerca di avere almeno tre volte il numero di frasi di addestramento rispetto ai parametri e almeno 10-20 (a seconda della complessità dell'intenzione) frasi di addestramento.
Ogni parametro deve essere utilizzato in molte frasi di addestramento. Di norma, ogni parametro deve essere utilizzato in almeno cinque frasi di addestramento.
Evita di utilizzare più entità @sys.any in una frase di addestramento. Una frase di addestramento non deve contenere due @sys.any consecutivi o un totale di tre entità @sys.any. Dialogflow potrebbe non essere in grado di distinguerli.
Non utilizzare frasi di addestramento simili in intent diversi. Intent diversi non devono contenere frasi di addestramento simili, perché ciò impedirà a Dialogflow di imparare a riconoscerle.
Attiva la correzione ortografica automatica. Se utilizzi l'input di testo, devi attivare la correzione automatica dell'ortografia.
Non nidificare le entità composite Non utilizzare più di un livello di nidificazione nelle entità composite. Ogni livello di nidificazione degrada notevolmente la qualità.
Evita i caratteri speciali nelle frasi di addestramento. I caratteri speciali nelle frasi di addestramento, come {, _, # e [, verranno ignorati. Le emoji sono un'eccezione: funzionano come previsto.

Denominazione degli intent

Se il tuo agente ha molti intent, ti consigliamo di adottare uno schema di denominazione che ti aiuti a organizzarli. È comune segmentare i nomi delle intenzioni con la punteggiatura, in cui la specificità aumenta da sinistra a destra. Inoltre, il nome di un intent deve riflettere l'intenzione dell'utente finale per un turno di conversazione.

Esistono molti schemi di denominazione efficaci, ma ecco un esempio:

  • phone-service.order.cancel
  • phone-service.order.create
  • phone-service.order.change
  • tv-service.order.cancel
  • tv-service.order.create
  • tv-service.order.change
  • account.balance.get
  • account.balance.pay
  • account.address.get
  • account.address.update

Funzionalità utili per l'intenzione

Best practice Dettagli
Gli agenti devono supportare le richieste contestuali. Ad esempio, se il tuo agente gestisce le richieste relative al meteo e un utente chiede "Meteo a San Francisco", assicurati di aggiungere contesti per supportare ulteriori richieste come "E domani?"
Gli agenti devono avere opzioni di follow-up per sì, no, annulla, avanti, indietro e così via. Le intenzioni di follow-up vengono utilizzate per rispondere a risposte comuni. Per aggiungere un'intenzione di follow-up, passa il mouse sopra un'intenzione e fai clic su Aggiungi follow-up.
Gli intent devono avere almeno una risposta di testo. La sezione di risposta si trova nella parte inferiore della pagina dell'intent. L'aggiunta di varianti mescola la risposta scelta, rendendo l'esperienza meno ripetitiva.
Gli agenti devono raccogliere tutte le informazioni necessarie per soddisfare la richiesta di un utente. Valuta la possibilità di rendere obbligatori i parametri necessari. L'agente continuerà a chiedere all'utente le informazioni di cui ha bisogno. Questo sistema è chiamato riempimento degli slot.
Le risposte devono ripetere le informazioni, ad esempio la conferma di un ordine, in base alle necessità. Quando un utente effettua una richiesta, ad esempio effettua un ordine o modifica delle informazioni, l'agente deve ripetere cosa sta succedendo a scopo di conferma. Quando crei queste risposte di conferma, assicurati di includere tutte le possibili combinazioni di entità e parametri ripetuti.

Riparazione conversazione

Best practice Dettagli
Gli agenti devono avere prompt di recupero utili per ogni passaggio della conversazione. Ad esempio, se il prompt iniziale è "Quale colore vuoi?" e l'utente risponde con "pappagallo verde", un'intenzione di riserva/follow-up dovrebbe riformulare la domanda, ad esempio "Scusa, di che colore era?"
Gli agenti devono avere risposte personalizzate e specifiche del brand nell'intent di riserva predefinito. Quando un utente dice qualcosa che non corrisponde a un'intenzione, viene associato l'intenzione di riserva predefinita. Deve essere personalizzato in base al tuo brand e fornire informazioni per guidare l'utente a effettuare una richiesta valida.
Per l'evasione personalizzata, gli agenti devono avere un'intenzione che consenta agli utenti di ripetere le informazioni. Un'intenzione può gestire richieste come "ripetilo", "ripeti", "fai di nuovo partire" e così via. Può essere un'intenzione di follow-up.
Aiuta gli utenti ad avere successo, invitali a dirti esattamente cosa vorresti sentire come risposta Ad esempio, se offri opzioni, non chiedere "Vuoi A o B?". - perché un utente potrebbe rispondere "sì". Chiedi invece: "Ho A e ho B. Quale preferisci?

Utente tipo

Best practice Dettagli
Le risposte dell'agente devono avere uno stile e un tono adatti al tuo brand e devono essere coerenti tra un agente e l'altro. Quando gli utenti conversano con l'agente, devono avere la sensazione di parlare con una sola persona. Assicurati che le qualità e la personalità che hai scelto siano rappresentate in tutte le tue risposte.
Gli agenti devono essere sensibili a culture, generi, credo religiosi, abilità ed età. Gli stereotipi possono offendere gli utenti, anche se sono solo battute, e potrebbero non tornare dal tuo agente.

Progettare per la voce

Best practice Dettagli
Evita contenuti che richiedono la visualizzazione o l'interazione con tastiera e mouse. Non utilizzare link ipertestuali, tabelle, immagini, abbreviazioni. Puoi fare riferimento a un sito web per nome. Quando presenti un elenco di opzioni, restituisci la corrispondenza migliore e chiedi all'utente se vuole ascoltare opzioni alternative.
Non creare silenzi imbarazzanti. Termina sempre con una domanda. Gestire la conversazione e avviare le interazioni.
Scrivi dialoghi compatti e facilmente comprensibili. Su una schermata, il testo può essere lungo e contenere più paragrafi. Puoi saltare le parti che non ti interessano. Tuttavia, sentire un agente virtuale parlare per troppo tempo non farà felici i tuoi utenti.
Utilizza SSML Utilizza SSML per strutturare e modificare l'intonazione delle frasi, in modo che le voci risultino più naturali.

Per ulteriori informazioni sulla progettazione per la voce, consulta Progettazione di agenti vocali.

Protezione della privacy dei consumatori

Best practice Dettagli
Disattiva il logging dei dati nelle impostazioni dell'agente per la conformità al GDPR. Nelle impostazioni dell'agente, puoi disattivare la registrazione delle interazioni in Dialogflow. Se disattivi questa funzionalità, in Dialogflow non verranno archiviati dati PII. Ciò significa anche che alcune funzionalità, come gli analytics, non saranno disponibili.
Archivia i dati delle conversazioni di chat in BigQuery per avere il controllo sullo spazio di archiviazione regionale. Tramite Cloud Logging o utilizzando l'API Dialogflow, puoi inviare le frasi della chat in arrivo a BigQuery. Adottando questo approccio, avrai il controllo sulla regione in cui vuoi archiviare i dati. Inoltre, puoi utilizzare l'API Data Loss Prevention per mascherare le informazioni sensibili. Consulta il blueprint per la creazione di un servizio clienti basato sull'AI su Google Cloud.

Utilizzo del connettore della knowledge base

Best practice Dettagli
Quando importi le domande frequenti pubbliche, utilizza un markup HTML5 valido. Ad esempio, utilizza elementi dell'articolo con notazione schema.org come schema.org/Question e schema.org/Answer.
Assicurati che il sito web delle domande frequenti sia indicizzato dai robot di Google Il sito web dovrà consentire i robot di Google e deve essere aggiunto al motore di ricerca di Google tramite lo strumento per i webmaster di Google. Siti come pages.github non funzioneranno perché non sono accessibili tramite crawler.
Utilizza 1-200 domande frequenti Devi avere più di una coppia di domande e risposte e non più di 200 per knowledge base. Se hai bisogno di più knowledge base, puoi caricarne più di una.

Implementazione delle API Dialogflow

Best practice Dettagli
Non esporre la chiave privata dell'account di servizio nelle basi di codice client per applicazioni web o mobile. Questa operazione non è considerata sicura. Chiunque abbia dimestichezza con gli strumenti per sviluppatori di Chrome potrebbe rubare la tua chiave ed effettuare chiamate API (a pagamento) tramite il tuo account. È preferibile lasciare sempre che un server proxy API gestisca l'autenticazione di Google Cloud. In questo modo, l'account di servizio non sarà visibile al pubblico e le chiavi potranno essere archiviate in tutta sicurezza.}

Progettare per voce e testo in un unico agente

Best practice Dettagli
Non utilizzare SSML nelle risposte predefinite della piattaforma. Quando l'agente può rispondere sia con la voce che con il testo, una risposta di testo includerà il codice SSML non elaborato. Utilizza il testo normale nella risposta predefinita della piattaforma e SSML nelle risposte specifiche della piattaforma. In alternativa, puoi utilizzare un webhook per generare SSML solo quando è necessaria una risposta vocale.

Test

Best practice Dettagli
Testa l'app con attenzione con una persona che non è stata coinvolta nello sviluppo. Chiedere a una persona che non conosce l'agente di utilizzare l'app ti consentirà di capire quanto sia naturale il flusso della conversazione. Chiedi loro di prestare attenzione all'accuratezza, alle pause lunghe, ai percorsi di conversazione mancanti, al ritmo, alle transizioni imbarazzanti e così via.
Testa l'app su tutte le piattaforme che prevedi di supportare. Se il tuo agente sarà disponibile su una o più piattaforme, assicurati che i messaggi avanzati e le risposte vengano visualizzati come previsto su tutte le piattaforme.

Best practice aziendali

Altre guide alla progettazione delle conversazioni