Allgemeine Best Practices für das Design von Agents

Dieser Leitfaden enthält allgemeine Best Practices für die Entwicklung aller Arten von Agents.

Weitere Informationen finden Sie auch im Leitfaden zur Entwicklung von Sprach-Agents und in den Best Practices für die Verwendung des Dialogflow-Dienstes.

Vorbereitung

Berücksichtigen Sie die folgenden Informationen, bevor Sie einen Agent erstellen.

Ziel

Definieren Sie das übergeordnete Ziel für Ihren Agent:

  • Was will Ihr Unternehmen erreichen?
  • Was erwarten die Nutzer von Ihrem Agent?
  • Wie oft interagieren die Nutzer mit dem Agent?

Plattform

Überlegen Sie, wie Nutzer auf den Agent zugreifen werden. Machen Sie sich mit den von Dialogflow unterstützten Plattformen vertraut, bevor Sie Inhalte erstellen. Bereiten Sie die Inhalte für die jeweiligen Plattformen vor. Einige Plattformintegrationen von Dialogflow unterstützen Rich Media-Nachrichten, die Elemente wie Bilder, Links und Chips mit Suchvorschlägen enthalten können.

Agents iterativ entwickeln

Wenn der Agent groß oder komplex ist, erstellen Sie zuerst einen Dialog, in dem nur Anfragen der obersten Ebene behandelt werden. Nachdem Sie die Grundstruktur erstellt haben, testen Sie die Dialogpfade, um zu überprüfen, ob sie alle möglichen Routen abdecken, die ein Nutzer durchlaufen kann.

Vordefinierte Agents

Dialogflow bietet vordefinierte Agents, die Ihnen den Einstieg erleichtern. Vordefinierte Agents decken gängige Anwendungsfälle wie Hotelbuchung, Navigation und Online-Shopping ab. Sie enthalten bereits Intents und Entitäten, die häufig gestellte Anfragen abdecken. Fügen Sie für Ihr Unternehmen spezifische Antworten hinzu und Sie haben in kürzester Zeit einen funktionierenden Agent.

Systementitäten

Anfragen von Nutzern enthalten wichtige Informationen, die analysiert werden müssen. In Dialogflow werden diese Informationen Entitäten genannt. Systementitäten sind vordefinierte Entitäten, die von Dialogflow bereitgestellt werden und die gängigsten allgemeinen Konzepte abdecken.

Small Talk

Bei der Entwicklung Ihres Dialogs möchten Sie vielleicht auch Themen einbinden, die vom eigentlichen Thema abweichen. Zu Dialogflow gehört eine optionale Funktion namens Small Talk. Wenn diese Funktion aktiviert ist, reagiert der Agent auf allgemeine Themen, emotionale Antworten und Fragen zum Agent selbst. Alle Antworten von Small Talk können individuell an Ihr Unternehmen angepasst werden – ganz gleich, ob es sich um beiläufige, sachliche oder Antworten irgendwo dazwischen handelt.

Best Practices für das Design von Agents

Dieser Abschnitt enthält eine Liste mit Best Practices, die Sie bei der Erstellung eines robusten, präzisen und leistungsfähigen Agent unterstützen.

Begrüßung und Abschied

Best Practice Details
Begrüßungs-Intents sollten Nutzer über die Fähigkeiten des Agents informieren und das Branding berücksichtigen. Der Begrüßungs-Intent des Agents soll den Nutzer über 2–3 Aufgaben informieren, bei denen der Agent helfen kann, und (falls erforderlich) die Verwendung dieser Funktionen kurz beschreiben.
Nach Abschluss einer erfolgreichen Interaktion sollten Agents eine geeignete Abschiedsnachricht ausgeben. Wenn ein Nutzer eine Aufgabe im Agent erledigt hat, wird die Transaktion/Aufgabe zusammengefasst und ein Abschiedsgruß wie "Bis zum nächsten Mal" wird ausgegeben.

Maschinelles Lernen und Training

Best Practice Details
Intents sollten mindestens 10 bis 20 Trainingsformulierungen enthalten (je nach Komplexität des Intents). Die Komplexität des Agents bestimmt die Anzahl der Trainingsformulierungen, die jeder Intent haben sollte. 10 bis 20 sollten es mindestens sein (je nach Komplexität des Intents). Je mehr Parameter die Intents enthalten, desto mehr Formulierungen sollten Sie angeben, um das ML-Modell zu trainieren.
Trainingsformulierungen sollten in Variationen vorliegen. Fügen Sie Variationen von Fragen, Befehlen und Verben sowie Synonyme für häufig verwendete Substantive hinzu, damit Ihre Formulierungen ein breites Spektrum möglicher Anfragen abdecken.
Anmerkungen sollten konsistent sein.
  • Überprüfen Sie Ihre Trainingsformulierungen und achten Sie darauf, dass die markierten Wörter auf die richtigen Entitäten verweisen.
  • Sie sollten in Trainingsformulierungen keinen Text haben, der in einigen Fällen mit Anmerkungen versehen ist, in anderen jedoch nicht.
  • Der für eine Anmerkung ausgewählte Textbereich sollte genau den Text enthalten, der zur Übereinstimmung mit einer Entität erforderlich ist, also weder mehr noch weniger Wörter.
  • Der mit Anmerkungen versehene Text sollte für mehrere Trainingsformulierungen ähnliche Textteile enthalten. Beispiel: Sie haben die Trainingsformulierung "Wecker auf 6 Uhr stellen", wobei "6 Uhr" als @sys.date annotiert ist. Wenn Sie eine weitere Trainingsformulierung "Wecke mich um 7 Uhr" haben, sollten Sie "7 Uhr" annotieren, jedoch nicht "um 7 Uhr".
Verwenden Sie semantisch aussagekräftige Annotationen für Systementitäten. Die semantische Bedeutung einer für eine Annotation ausgewählten Trainingsformulierung kann durch den Rest des Textes in einer Trainingsformulierung beeinflusst werden. Beispiel:
  • Ich bin 7 Jahre alt (semantische Bedeutung von mit Anmerkungen versehenem Text ist das Alter einer Person)
  • Der Vertrag ist für 7 Jahre gültig (semantische Bedeutung von mit Anmerkungen versehenem Text ist die Dauer).
Die ML-Modelle von Dialogflow berücksichtigen beim Abgleichen von Systementitäten semantische Bedeutung. Die semantische Bedeutung der Trainingsformulierung muss der beabsichtigten semantischen Bedeutung der Systementität entsprechen.

Verwenden Sie beispielsweise nicht die Systementität @sys.duration für die Annotation zum ersten „7 Jahre“-Beispiel oben. Die semantische Bedeutung von „7 Jahre“ passt nicht zu einer einfachen Zeitdauer. Stattdessen sollten Sie die Systementität @sys.age verwenden.
Benutzerdefinierte Entitäten sollten eine Vielzahl von Beispielen abdecken. Entitäten sind Listen von Elementen. Maschinelles Lernen kümmert sich um grammatische Formen, aber Sie müssen alle möglichen Elemente einschließen. Nutzen Sie auch die Option zum Definieren von Synonymen und fügen Sie einige Variationen hinzu.
Deaktivieren Sie das maschinelle Lernen (ML) für so wenig Intents wie möglich. Trainingsformulierungen für Intents mit deaktiviertem ML werden beim Training Ihres Agents nicht verwendet. Eine Nutzeranfrage, die einer Trainingsformulierung in einem Intent mit deaktiviertem ML sehr ähnlich ist, kann dem falschen Intent zugeordnet werden, wenn andere Intents mit aktiviertem ML der Nutzeranfrage leicht ähneln. Wenn Sie Probleme mit falsch positiven Ergebnissen haben, erhöhen Sie den ML-Klassifizierungsschwellenwert, statt ML zu deaktivieren.
Legen Sie für einen Agent mit wenig Trainingsdaten keinen hohen ML-Klassifizierungsschwellenwert fest. Wenn der Schwellenwert hoch ist und nicht viele Trainingsdaten vorhanden sind, führen nur Nutzeranfragen, die nahezu exakt mit Trainingsformulierungen übereinstimmen, zu einer Intent-Zuordnung. Für einen hohen Schwellenwert müssen Sie viele Trainingsdaten bereitstellen.
Agents sollten einen Fallback-Intent haben. Ohne Fallback-Intents liefern nicht zugeordnete Nutzerabfragen leere Antworten.
Agents sollten negative Beispiele liefern. Negative Beispiele verhindern, dass Nutzeranfragen, die Trainingsformulierungen leicht ähneln, ungewollt Intents zugeordnet werden.
Definieren Sie keine Entitäten, die praktisch allgemeingültig sind. Das beeinträchtigt die Leistung und Qualität von ML. Fast alles in jeder Trainingsformulierung wird sonst als mögliche Übereinstimmung gewertet. Verwenden Sie stattdessen am besten @sys.any. Ebenso sollten zusammengesetzte Entitäten kein einziges @sys.any als Synonym enthalten.
Definieren Sie keine Entitäten, die aus Füllwörtern oder bedeutungslosem Text bestehen. Beispiele für Füllwörter und bedeutungslosen Text sind: "hmmm", "mal sehen", "bitte", "könnten Sie bitte". Wenn Sie diese und ähnliche Entitäten verwenden, um etwas Vielfalt zu erhalten, verschlechtern Sie nur die ML-Leistung. Dialogflow ergänzt bereits Daten, um Variationen wie diese zu verarbeiten. Fügen Sie solche Phrasen Ihren Trainingsformulierungen hinzu, nicht Ihren Entitäten.
Entitäten sollten einen begrenzten Umfang haben, der unterschiedliche Werte eines Informationstyps erfasst. Halten Sie Ihre Entitäten prägnant, kurz und einfach. Wenn Ihre Entitätswerte kompliziert sind, kann es daran liegen, dass Trainingsformulierungen für Intents besser auf Ihre Situation zugeschnitten sind. Betrachten Sie beispielsweise Nutzerformulierungen wie "Wie kann ich ein Auslandsgespräch zu Tarif A führen?" und "Daten-Roaming im Ausland zu Tarif B verwenden". Erstellen Sie nicht Entitäten sowohl für die Aktionen ("Wie kann ich ein Auslandsgespräch führen" und "Daten-Roaming im Ausland verwenden") als auch für die Tarife ("Tarif A", "Tarif B"). Verwenden Sie stattdessen Trainingsformulierungen und Intent-Zuordnung, um die Aktionen zu erfassen, und Entitäten, um die Tarife zu erfassen.
Annotierter Text in Trainingsformulierungen sollte Variationen enthalten. Wenn Sie beispielsweise Zeitwerte angeben, die in Trainingsformulierungen als @sys.time-Systementitäten geparst werden sollen, geben Sie nicht in allen Trainingsformulierungen dieselbe Zeit an. Die Trainingsformulierungen sollten verschiedene Zeitbeispiele enthalten, z. B. "7 Uhr morgens", "8 Uhr abends", "21 Uhr".
Intents mit vielen Parametern sollten auch viele Trainingsformulierungen enthalten. Als Faustregel sollten Sie mindestens dreimal so viele Trainingsformulierungen wie Parameter haben. In jedem Fall sollten es aber mindestens 10 bis 20 Trainingsformulierungen sein (je nach Komplexität des Intents).
Verwenden Sie jeden Parameter in möglichst vielen Trainingsformulierungen. In der Regel sollte jeder Parameter in mindestens 5 Trainingsformulierungen vorkommen.
Vermeiden Sie die Verwendung mehrerer @sys.any-Entitäten in einer Trainingsformulierung. Eine Trainingsformulierung sollte nicht mehr als zwei @sys.any-Entitäten enthalten und diese sollten nicht aufeinander folgen. Dialogflow könnte sonst Schwierigkeiten haben, sie zu unterscheiden.
Verwenden Sie keine ähnlichen Trainingsformulierungen in unterschiedlichen Intents. Unterschiedliche Intents sollten keine ähnlichen Trainingsformulierungen enthalten, da Dialogflow sonst nicht lernen kann, diese Formulierungen zu erkennen.
Aktivieren Sie die automatische Rechtschreibkorrektur. Wenn Sie die Texteingabe verwenden, sollten Sie die automatische Rechtschreibkorrektur aktivieren.
Verschachteln Sie zusammengesetzte Entitäten nicht. Verwenden Sie in zusammengesetzten Entitäten nicht mehr als eine Verschachtelungsebene. Jede Verschachtelungsebene beeinträchtigt die Qualität erheblich.
Vermeiden Sie Sonderzeichen in Trainingsformulierungen. Sonderzeichen wie {, _, # und [ werden in Trainingsformulierungen ignoriert. Emojis sind eine Ausnahme. Sie funktionieren wie erwartet.

Intent-Benennung

Wenn Ihr Agent viele Intents hat, sollten Sie ein Benennungsschema in Betracht ziehen, mit dem Sie diese besser organisieren können. Es ist üblich, Intent-Namen mit Satzzeichen zu segmentieren, wobei die Genauigkeit von links nach rechts zunimmt. Darüber hinaus sollte ein Intent-Name die Absicht des Endnutzers für eine Unterhaltungsrunde widerspiegeln.

Es gibt viele gute Namensschemas, beispielsweise:

  • 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

Nützliche Intent-Features

Best Practice Details
Agents sollten kontextbezogene Anfragen unterstützen. Wenn der Agent beispielsweise Anfragen zur Wettervorhersage bearbeitet und ein Nutzer nach "Wetter in San Francisco" fragt, fügen Sie Kontexte hinzu, um weitere Anfragen wie "Zum Beispiel morgen?" zu unterstützen.
Agents sollten Follow-ups für "Ja", "Nein", "Abbrechen", "Weiter", "Zurück" usw. haben. Follow-up-Intents werden verwendet, um auf allgemeine Antworten zu antworten. Bewegen Sie den Mauszeiger auf einen Intent und klicken Sie auf Add follow-up, um einen Follow-up-Intent hinzuzufügen.
Intents sollten mindestens eine Textantwort haben. Der Antwortabschnitt befindet sich unten auf der Seite des Intents. Durch das Hinzufügen von Variationen wird jedes Mal eine unterschiedliche Antwort ausgewählt, um die Interaktion abwechslungsreich zu gestalten.
Agents sollten alle erforderlichen Informationen erfassen, um die Anfrage eines Nutzers zu beantworten. Definieren Sie die erforderlichen Parameter. Der Nutzer erhält solange Eingabeaufforderungen, bis der Agent alle erforderlichen Informationen erhalten hat. Dieser Vorgang wird als Slot-Füllung bezeichnet.
Antworten sollten ggf. Informationen wiederholen, z. B. die Bestätigung einer Bestellung. Wenn ein Nutzer eine Anfrage stellt, z. B. zum Aufgeben einer Bestellung oder zum Ändern von Informationen, sollte Ihr Agent zur Bestätigung die Vorgänge wiederholen. Achten Sie beim Erstellen dieser Bestätigungsantworten darauf, alle möglichen Kombinationen aus wiederholten Entitäten und Parametern zu berücksichtigen.

Dialogkorrektur

Best Practice Details
Agents sollten hilfreiche Aufforderungen zur Wiederherstellung für jeden Schritt des Dialogs haben. Wenn die erste gezielte Frage beispielsweise "Welche Farbe wünschen Sie?" lautet und der Nutzer mit "Dschungelpapagei" antwortet, sollte mit einem Fallback-/Follow-up-Intent die Frage umformuliert werden, etwa in "Entschuldigung, welche Farbe war das?".
Agents sollten im Standard-Fallback-Intent angepasste, markenspezifische Antworten haben. Wenn ein Nutzer etwas sagt, das nicht mit dem Intent übereinstimmt, wird der Standard-Fallback-Intent zugeordnet. Dieser sollte an Ihre Marke angepasst sein und Informationen enthalten, die den Nutzer dazu bewegen, eine gültige Anfrage zu stellen.
Zur angepassten Auftragsausführung sollten Agents einen Intent haben, der Nutzern die Wiederholung von Informationen ermöglicht. Ein Intent kann Anfragen wie "Sagen Sie das nochmal", "Wiederholen", "Noch einmal abspielen" usw. verarbeiten. Hierbei kann es sich um ein Follow-up-Intent handeln.
Helfen Sie Nutzern, erfolgreich zu sein, und steuern Sie sie so, dass sie genau das sagen, was Sie als Antwort hören möchten Wenn Sie beispielsweise Optionen angeben, fragen Sie nicht "Möchten Sie A oder B?". – weil der Nutzer dann mit "Ja" antworten kann: Fragen Sie: "Ich habe A und ich habe B. Welche Option möchten Sie?

Identität

Best Practice Details
Die Antworten eines Agents sollten einen Stil und einen Ton haben, die auf Ihre Marke zugeschnitten und im gesamten Agent konsistent sind. Wenn sich Nutzer mit Ihrem Agent unterhalten, sollten sie den Eindruck haben, mit einer Person zu sprechen. Achten Sie auf eine einheitliche Umsetzung der von Ihnen gewählten Merkmale und Identität.
Agents sollten berücksichtigen, dass es Nutzer mit verschiedenen Kulturen, Geschlechtern, Religionen, Kompetenzen und Altersstufen gibt. Manche Nutzer könnten sich durch eine Stereotypisierung angegriffen fühlen, selbst wenn diese scherzweise erfolgt, und kommen dann möglicherweise nicht mehr zu Ihrem Agent zurück.

Für Voice entwickeln

Best Practice Details
Vermeiden Sie Inhalte, die eine Visualisierung oder Tastatur- und Mausinteraktion erfordern. Verwenden Sie keine Hyperlinks, Tabellen, Bilder oder Abkürzungen. Sie können den Namen der Website als Referenz angeben. Gibt das passendste Ergebnis für die Optionen aus und fragt den Nutzer, ob er alternative Optionen benötigt.
Bauen Sie keine unangenehmen Pausen ein. Stellen Sie am Ende immer eine Frage. Starten Sie die Unterhaltung und sprechen Sie die Teilnehmer an.
Schreiben Sie kompakte Dialoge, die leicht zu verstehen sind. Auf einem Bildschirm kann der Text lang sein und mehrere Absätze umfassen. Sie können die Bereiche überspringen, die für Sie nicht interessant sind. Wenn ein virtueller Agent zu lange spricht, sind die Nutzer nicht zufrieden.
SSML verwenden Verwenden Sie SSML, um die Intonation Ihrer Sätze zu strukturieren und zu ändern, damit Ihre Stimmen natürlicher klingen.

Weitere Informationen zur Entwicklung für Voice finden Sie unter Voice-Agent-Design.

Datenschutz für Nutzer

Best Practice Details
Deaktivieren Sie das Daten-Logging in den Agent-Einstellungen für DSGVO-Compliance. In den Agent-Einstellungen können Sie das Logging von Interaktionen in Dialogflow deaktivieren. Wenn Sie diese Funktion deaktivieren, werden keine personenidentifizierbaren Informationen in Dialogflow gespeichert. Das bedeutet auch, dass bestimmte Funktionen wie die Analyse nicht mehr verfügbar sind.
Sie können Daten zu Chatunterhaltungen in BigQuery speichern und so den Regional Storage steuern. Über Cloud Logging oder die Dialogflow API können Sie eingehende Chatäußerungen an BigQuery senden. So behalten Sie die Kontrolle über die Region, in der Sie die Daten speichern möchten. Außerdem können Sie die Data Loss Prevention API verwenden, um vertrauliche Informationen zu maskieren. Blueprint zum Erstellen eines KI-gestützten Kundenservices auf der GCP

Wissensdatenbank-Connector verwenden

Best Practice Details
Verwenden Sie beim Importieren öffentlicher FAQ ein gültiges HTML5-Markup. Verwenden Sie zum Beispiel Artikelelemente mit einer schema.org-Notation wie schema.org/Question und schema.org/Answer.
Die FAQ-Website muss von Google Robots indexiert sein. Die Website muss Google Robots zulassen und über das Google Webmaster-Tool zur Google Suche hinzugefügt werden. Websites wie "pages.github" funktionieren nicht, da sie nicht für Crawler zugänglich sind.
Verwenden Sie 1 bis und 200 FAQ Sie benötigen mehr als 1 Frage und Antwort und dürfen nicht mehr als 200 Fragen und Antworten pro Wissensdatenbank verwenden. Sie können bei Bedarf mehrere Wissensdatenbanken laden.

Dialogflow APIs implementieren

Best Practice Details
Geben Sie den privaten Schlüssel Ihres Dienstkontos nicht in Client-Codebasen für mobile Apps oder Webanwendungen frei. Das gilt nicht als sicher. Jeder, der mit den Chrome Dev-Tools vertraut ist, könnte den Schlüssel stehlen und kostenpflichtige API-Aufrufe über Ihr Konto tätigen. Die Google Cloud-Authentifizierung sollte daher immer über einen API-Proxyserver erfolgen. So ist das Dienstkonto nicht für die Öffentlichkeit zugänglich und die Schlüssel können sicher gespeichert werden.

Für Voice und Text in einem Agent entwickeln

Best Practice Details
Verwenden Sie SSML nicht in Standardplattformantworten. Wenn der Agent sowohl mit Sprache als auch mit Text antworten kann, enthält eine Textantwort den SSML-Rohcode. Verwenden Sie nur Text in der Standardantwort der Plattform und SSML in plattformspezifischen Antworten. Alternativ können Sie einen Webhook verwenden, um SSML nur dann zu generieren, wenn eine Sprachantwort erforderlich ist.

Testen

Best Practice Details
Sie sollten Ihre App gründlich mit einer Person testen, die nicht an der Entwicklung beteiligt war. Testen Sie die Anwendung mit einer Person, die nicht mit dem Agent vertraut ist. Sie erhalten dann wertvolle Einblicke darüber, wie natürlich die Unterhaltung verläuft. Dabei sollte die Person auf Genauigkeit, lange Pausen, fehlende Dialogpfade, Tempo, umständliche Übergänge usw. achten.
Sie sollten Ihre App auf allen Plattformen testen, auf denen sie verfügbar sein soll. Wenn der Agent auf einer oder mehreren Plattformen verfügbar ist, dann sorgen Sie dafür, dass Rich Media-Nachrichten und Antworten auf allen Plattformen wie erwartet angezeigt werden.

Best Practices für Unternehmen

Zusätzliche Tipps zur Dialoggestaltung