Best practice generali per la progettazione degli agenti

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 degli 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.

Scopo

Considera l'obiettivo generale dell'agente:

  • Qual è l'obiettivo della tua attività?
  • Che cosa si aspettano gli utenti dall'agente?
  • Con quale frequenza gli utenti interagiranno con l'agente?

Piattaforma

Valuta il modo in cui gli utenti accederanno all'agente. Consulta le piattaforme supportate da Dialogflow prima di creare contenuti. Quando scegli le piattaforme da supportare, prepara i tuoi contenuti di conseguenza. Alcune integrazioni della piattaforma di Dialogflow supportano messaggi avanzati che possono includere elementi come immagini, link e chip di suggerimenti.

Creare gli agenti in modo iterativo

Se l'agente è di grandi dimensioni o complesso, crea una finestra di dialogo che risponda solo alle richieste di primo livello. Una volta stabilita la struttura di base, ripeti i percorsi di conversazione per assicurarti di coprire tutti i percorsi possibili che un utente può seguire.

Agenti predefiniti

Dialogflow offre agenti preconfigurati per aiutarti a iniziare. Gli agenti predefiniti si occupano di casi d'uso comuni, come prenotazioni di hotel, navigazione e shopping online. Questi agenti dispongono di intent ed entità per coprire le query più comuni degli utenti. Aggiungi risposte specifiche per la tua attività e creerai rapidamente un agente funzionante.

Entità di sistema

Quando un utente effettua una richiesta, esistono informazioni importanti da analizzare. In Dialogflow, queste sono chiamate entità. In particolare, le entità di sistema sono entità predefinite fornite da Dialogflow che gestiscono i tipi di informazioni più popolari.

Small talk

Durante lo sviluppo della finestra di dialogo, potresti aver preso in considerazione la gestione delle richieste fuori tema. Dialogflow fornisce una funzionalità facoltativa chiamata small talk. Quando questa funzionalità è abilitata, l'agente risponderà a conversazioni generali, risposte emotive e domande sull'agente stesso. Tutte le risposte a brevi discorsi 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 creare un agente solido, preciso, dalle prestazioni elevate e utilizzabile.

Saluti e saluti

Best practice Dettagli
Gli intent di benvenuto devono informare gli utenti delle capacità dell'agente tenendo presente il branding. L'intento di benvenuto dell'agente deve indicare all'utente 2-3 attività per le quali può essere d'aiuto, nonché brevi descrizioni (se necessario) di come utilizzare queste funzionalità.
Gli agenti devono avere un messaggio di uscita adatto al termine di un'interazione riuscita. Quando un utente completa un'attività nell'agente, dovrebbe riepilogare la transazione/attività e l'indicazione "Alla prossima" e così via.

Machine learning e addestramento

Best practice Dettagli
Gli intent dovrebbero includere almeno 10-20 frasi di addestramento (a seconda della complessità dell'intento). La complessità dell'agente determinerà il numero effettivo di frasi di addestramento che ogni intent dovrebbe avere, ma 10-20 (a seconda della complessità dell'intent) sono un buon numero minimo. Più parametri hai nei tuoi intent, più frasi dovresti fornire per addestrare il modello di machine learning.
Le frasi di addestramento devono essere diverse. Includi varianti di domande, comandi, verbi e sinonimi di sostantivi comuni per assicurarti che le tue frasi coprano un ampio spettro di possibili richieste.
Le annotazioni devono essere coerenti.
  • Controlla le frasi di addestramento e assicurati che le annotazioni evidenziate rimandino alle entità corrette.
  • Nelle frasi di addestramento non dovresti includere testo con annotazioni in alcuni casi, ma non in altri.
  • L'intervallo di testo selezionato per un'annotazione deve includere tutto il testo necessario per la corrispondenza con un'entità, ma non oltre.
  • Assicurati che il testo annotato in più frasi di addestramento contenga parti simili della frase di addestramento. Ad esempio, supponiamo che tu abbia una frase di addestramento "Imposta sveglia alle 6:00", dove "6:00" è annotata come @sys.date. Se hai un'altra frase di addestramento "svegliami alle 7:00", annota "7:00", ma non annotare "alzato alle 7:00".
Utilizza annotazioni semanticamente significative per le entità di sistema. Il significato semantico di una parte di una frase di addestramento selezionata per un'annotazione può essere influenzato dal resto del testo in una 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 di tempo)
I modelli di machine learning di Dialogflow tengono conto del significato semantico quando corrispondono alle 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 durata di tempo semplice. Utilizza invece 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 occupa delle forme grammaticali, ma devi includere tutti gli elementi possibili. Controlla anche l'opzione definisci i sinonimi e includi alcune varianti.
Disabilita il machine learning per il minor numero di intent possibile. Le frasi di addestramento per gli intent con ML disattivato non vengono utilizzate durante l'addestramento dell'agente. Una query dell'utente molto simile a una frase di addestramento in un intent con ML disattivato potrebbe essere abbinata all'intent sbagliato se altri intent con ML abilitato hanno una leggera somiglianza con la query dell'utente. Se riscontri problemi con i falsi positivi, aumenta la soglia di classificazione ML anziché disabilitare il machine learning.
Non impostare una soglia di classificazione ML elevata per un agente con solo pochi dati di addestramento. Se la soglia è alta e non sono disponibili molti dati di addestramento, solo le query degli utenti che hanno corrispondenze quasi esatte alle frasi di addestramento produrranno la corrispondenza dell'intenzione. Se vuoi una soglia elevata, devi fornire molti dati di addestramento.
Gli agenti devono avere un intento di riserva. Senza intent di riserva, le query degli utenti senza corrispondenza genereranno risposte vuote.
Gli agenti devono fornire esempi negativi. Gli esempi negativi impediscono di eseguire query degli utenti leggermente simili alle frasi di addestramento dovute alla corrispondenza involontariamente con gli intent.
Non definire entità che corrispondono praticamente a qualsiasi cosa. Questo riduce le prestazioni e la qualità del machine learning. Quasi tutto in ogni frase di addestramento verrà valutato come possibile corrispondenza. Valuta la possibilità di usare @sys.any. Analogamente, le entità composite non devono contenere un singolo @sys.any come sinonimo.
Non definire entità composte da intercalari o testo privo di significato. Esempi di intercalari e testo privo di significato sono: "hmmm", "vediamo", "per favore", "per favore". Se stai tentando di utilizzare entità come questa per introdurre la varietà, stai solo riducendo le prestazioni del machine learning. Dialogflow aumenta già i dati per gestire diverse opzioni come questa. Dovresti aggiungere frasi come questa alle frasi di addestramento, non alle entità.
Le entità devono avere un ambito limitato che acquisisce valori distinti di un tipo di informazioni. Mantieni le entità mirate, brevi e semplici. Se i valori dell'entità sono complicati, è possibile che le frasi di addestramento dell'intenzione siano più adatte alla tua situazione. Ad esempio, puoi prendere in considerazione espressioni dell'utente finale come "Come si effettua una chiamata internazionale con il Piano A?" e "Utilizzo del roaming dei dati internazionale con il Piano B". Non creare entità per le azioni ("Come faccio a effettuare una chiamata internazionale" e "Utilizzo del roaming dei dati internazionale") e per i piani ("Piano A", "Piano B"). Dovresti invece utilizzare frasi di addestramento e corrispondenza di intent per acquisire le azioni e le entità al fine di acquisire i piani.
Il testo annotato nelle frasi di addestramento deve essere diverso. Ad esempio, se fornisci valori temporali che devono essere analizzati come entità di sistema @sys.time nelle frasi di addestramento, non fornire lo stesso tempo in tutte le frasi di addestramento. Le tue frasi di addestramento dovrebbero prevedere diversi esempi di orari, ad esempio "7:00", "20:00", "9 in punto".
Gli intent con molti parametri dovrebbero avere anche molte frasi di addestramento. Come regola generale, cerca di ottenere almeno il triplo delle frasi di addestramento rispetto ai parametri e almeno 10-20 (a seconda della complessità dell'intento).
Ogni parametro deve essere utilizzato in molte frasi di addestramento. Come regola generale, 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 entità @sys.any consecutive o un totale di tre entità @sys.any. Dialogflow potrebbe non essere in grado di distinguerli.
Non utilizzare frasi di addestramento simili in intenti diversi. intent diversi non devono contenere frasi di addestramento simili, perché questo impedirà a Dialogflow di imparare a riconoscere queste frasi.
Attiva la correzione automatica dell'ortografia. Se usi l'inserimento di testo, dovresti attivare la correzione ortografica automatica.
Non nidificare entità composite Non utilizzare più di un livello di nidificazione in entità composite. Ogni livello di nidificazione riduce la qualità in modo significativo.
Evita caratteri speciali nelle frasi di addestramento. I caratteri speciali nelle frasi di addestramento, come {, _, # e [, verranno ignorati. Le emoji rappresentano un'eccezione: funzionano come previsto.

Denominazione intent

Se l'agente ha molti intent, dovresti considerare uno schema di denominazione che ti aiuti a organizzarli. È pratica comune segmentare i nomi di intent con la punteggiatura, dove la specificità aumenta da sinistra a destra. Inoltre, il nome dell'intent dovrebbe riflettere l'intenzione dell'utente finale di passare alla conversazione.

Esistono molti schemi di denominazione validi, 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 gli intent

Best practice Dettagli
Gli agenti dovrebbero supportare le richieste contestuali. Ad esempio, se l'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 follow-up per sì, no, annullare, avanti, indietro ecc. Gli intent di follow-up vengono utilizzati per rispondere a risposte comuni. Per aggiungere un intent di follow-up, passa il mouse sopra un intent e fai clic su Aggiungi follow-up.
Gli intent devono avere almeno una risposta di testo. La sezione della risposta si trova nella parte inferiore della pagina dell'intent. Se aggiungi le varianti, la risposta scelta verrà ordinata casualmente, rendendo meno ripetitiva l'esperienza.
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 inviare richieste all'utente finché non riceverà le informazioni di cui ha bisogno. Questo processo è chiamato riempimento delle aree annuncio.
Le risposte dovrebbero ripetere le informazioni in base alle esigenze, ad esempio la conferma di un ordine. Quando un utente effettua una richiesta, ad esempio effettua un ordine o modifica informazioni, l'agente deve ripetere ciò che sta accadendo ai fini della conferma. Quando crei queste risposte di conferma, assicurati di includere tutte le possibili combinazioni di entità e parametri ripetuti.

Riparazione della conversazione

Best practice Dettagli
Gli agenti devono fornire utili prompt di recupero per ogni passaggio della finestra di dialogo. Ad esempio, se il prompt iniziale è "Che colore vuoi?" e l'utente risponde con "pappagallo della giungla", un intento di riserva/follow-up dovrebbe riformulare la domanda, ad esempio "Non ho capito, di che colore era?".
Gli agenti devono avere risposte personalizzate e specifiche per il brand nell'intent di riserva predefinito. Quando un utente dice qualcosa che non corrisponde a un intent, viene abbinato l'intent di riserva predefinito. Questi dati devono essere personalizzati in modo da riflettere il tuo brand, nonché fornire informazioni per guidare l'utente a effettuare una richiesta valida.
Per il fulfillment personalizzato, gli agenti devono avere un intent che consenta agli utenti di ripetere le informazioni. Un intent può gestire richieste come "ripetilo", "ripeti", "riproducilo" e così via. Può trattarsi di un intento di follow-up.
Aiuta gli utenti ad avere successo, chiedi loro esattamente cosa vorresti che loro rispondessero Ad esempio, se fornisci delle opzioni, non chiedere "Ti piacerebbe A o B?". - perché in tal caso un utente potrebbe rispondere "sì" Chiedere invece: "Ho A e ho B. Quale preferisci?

Utente tipo

Best practice Dettagli
Le risposte degli agenti devono avere uno stile e un tono adeguati al tuo brand e coerenti in tutto l'agente. Quando gli utenti conversano con l'agente, dovrebbe avere l'impressione che stiano parlando con un solo tipo. Assicurati che le qualità e la personalità che hai scelto siano rappresentate in tutte le tue risposte.
Gli agenti devono essere sensibili in merito a culture, generi, credenze religiose, abilità ed età. Gli stereotipi possono offendere gli utenti, anche nelle battute, ed è possibile che non tornino al tuo agente.

Progettazione della voce

Best practice Dettagli
Evita contenuti che richiedono la visualizzazione o l'interazione tramite tastiera e mouse. Non utilizzare hyperLink, 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 silenziosità imbarazzante. Termina sempre con una domanda. Indirizzare la conversazione e portare avanti le interazioni.
Scrivi dialoghi compatti e facili da comprendere. Su uno schermo il testo può essere lungo e contenere più paragrafi. Puoi saltare le parti che non ti interessano. Tuttavia, sentire un agente virtuale parlare troppo a lungo 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 il logging delle interazioni in Dialogflow. Se disattivi questa funzionalità, in Dialogflow non verranno archiviati dati PII. Ciò significa anche che alcune funzionalità, come Analytics, non saranno disponibili.
Archivia i dati delle conversazioni chat in BigQuery per avere il controllo sull'archiviazione regionale. Tramite Cloud Logging o utilizzando l'API Dialogflow, puoi inviare gli enunciati della chat in arrivo a BigQuery. In questo modo, avrai il controllo della regione in cui archiviare i dati. Inoltre, puoi utilizzare l'API Data Loss Prevention per mascherare le informazioni sensibili. Consulta il progetto per la creazione di un'assistenza clienti basata 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 gli elementi article con la notazione schema.org come schema.org/Question e schema.org/Answer.
Assicurati che il tuo sito web con domande frequenti sia indicizzato da Google Robots Il sito web dovrà consentire l'utilizzo di Google Robots e deve essere aggiunto al motore di ricerca di Google tramite lo strumento per i webmaster di Google. I siti come pages.github non funzionano perché non sono facili da usare.
Utilizza 1-200 domande frequenti È necessaria più di una coppia di domande e risposte e non più di 200 per knowledge base. Se necessario, puoi caricare più knowledge base.

Implementazione delle API Dialogflow

Best practice Dettagli
Non esporre la chiave privata dell'account di servizio nei codebase client per applicazioni web o mobile. Questa operazione non è considerata sicura. Chiunque abbia accesso agli strumenti per sviluppatori di Chrome potrebbe rubare la tua chiave ed effettuare chiamate API (a pagamento) tramite il tuo account. È un approccio migliore per consentire sempre a un server proxy API di gestire l'autenticazione di Google Cloud. In questo modo l'account di servizio non sarà esposto al pubblico e le chiavi potranno essere archiviate in 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 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 in modo approfondito con persone che non sono state coinvolte nel suo sviluppo. Se qualcuno che non conosce l'agente utilizza l'app, otterrai un'idea della naturalezza della conversazione. Fai attenzione all'accuratezza, alle lunghe pause, ai percorsi di conversazione mancanti, al ritmo, a transizioni imbarazzanti e così via.
Testa la tua app su tutte le piattaforme che intendi 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

Guide aggiuntive alla progettazione delle conversazioni