Sie können mehrere Dialogflow-Agents, die als Sub-Agents bezeichnet werden, zu einem einzigen Agent, dem sogenannten Mega-Agent, kombinieren. Wenn Sie eine Anfrage zur Intent-Erkennung für einen Mega-Agent durchführen, werden alle Sub-Agents berücksichtigt und die beste Antwort der Sub-Agents zurückgegeben.
Es gibt eine Vielzahl von Gründen, Mega-Agents zu verwenden:
- Bessere Governance: Wenn mehrere Teams einen Agent erstellen, kann jedes Team für einen Sub-Agent verantwortlich sein, was den Umgang mit Änderungskonflikten in den Teams vereinfacht.
- Mehr Intents: Wenn Sie Agents mit einer großen Anzahl von Intents haben, können Sie das Limit für die Anzahl von Intents erreichen. In diesem Fall könnten Sie mehrere Sub-Agents und einen Mega-Agent erstellen.
Einschränkungen
Für Mega-Agents gelten folgenden Einschränkungen:
- Ein Mega-Agent und seine Sub-Agents müssen in derselben Region erstellt werden.
- Innerhalb einer Region sind ein Mega-Agent und seine Sub-Agents verschiedenen Google Cloud-Projekten zugeordnet.
- Ein Mega-Agent kann maximal zehn Sub-Agents haben.
- Small Talk funktioniert nicht für Mega-Agents.
- Die Intent-Priorität von Sub-Agents wirkt sich nicht auf die Intent-Zuordnung aus, wenn Anfragen an einen Mega-Agent gesendet werden.
- Die Google Assistant-Integration kann nicht mit einem Mega-Agent verwendet werden.
- Von Partnern integrierte Telefonieintegrationen (AudioCodes, Avaya SignalWire, Voximplant) werden nicht unterstützt.
- Der Mega-Agent unterstützt Fallback-Intents verwendet als Follow-up-Intents.
Sub-Agents erstellen
Sub-Agents werden wie jeder andere Agent erstellt. Fügen Sie nach Bedarf Intents, Kontexte, Entitäten usw. hinzu, um Ihre Agents zu erstellen.
Mega-Agent erstellen oder aktualisieren
Sie können die Dialogflow-Konsole verwenden, um einen Mega-Agent zu erstellen und mit Sub-Agents zu verknüpfen.
Dialogflow berücksichtigt die meisten Agent-Einstellungen des Mega-Agents und erfasst Daten im Mega-Agent. Beispiel:
- Dialogflow übernimmt die agentenübergreifende Protokollierung sowie Einstellungen für die Sentimentanalyse, Spracherkennung und die Sprachausgabe vom Mega-Agent.
- Dialogflow speichert Analysen, Unterhaltungsverlauf und Daten für das Trainingstool im Mega-Agent.
Web-UI
1. Mega-Agent erstellen
- Rufen Sie die Dialogflow ES-Konsole auf.
- Klicken Sie im linken Seitenleistenmenü auf Create Agent (Agent erstellen). (Wenn Sie bereits andere Agents haben, klicken Sie auf den Agent-Namen, scrollen Sie nach unten und klicken Sie dann auf Create new agent.)
- Geben Sie den Namen des Agents, die Standardsprache, die Standardzeitzone und Google Cloud-Projekt
- Legen Sie für Agent Type die Option Mega Agent fest.
- Klicken Sie auf Create.
2. Sub-Agents hinzufügen und verwalten
- Klicken Sie im linken Seitenleistenmenü auf Sub Agents.
- Wählen Sie einen Sub-Agent aus, den Sie dem Mega-Agent hinzufügen möchten.
- Die Standardeinstellung für Environment für den Sub-Agent ist Draft. Sie können dies jedoch nach Bedarf aktualisieren.
- Wenn Sie die mit dem Sub-Agent verknüpfte Wissensdatenbank (Knowledge Base) verwenden möchten, ändern Sie das Feld von Excluded in Included.
- Klicken Sie auf Speichern.
Rollen einrichten
Je nachdem, wie Sie Ihren Mega-Agent verwenden möchten, müssen Sie bestimmteRollen in Ihren Sub-Agent-Projekten haben, sodass der Mega-Agent die Berechtigung hat, Aufrufe an die Sub-Agents auszuführen. So richten Sie diese Rollen ein:
- Erstellen Sie wie gewohnt die Google Cloud-Projekte für den Mega-Agent und die Sub-Agents und stellen Sie sicher, dass Sie die Dialogflow API für jedes Projekt aktiviert haben.
- Wenn Sie für die Interaktion mit Ihrem Mega-Agent die API verwenden möchten, müssen Sie dem Dienstkonto, das Sie für Mega-Agent-API-Aufrufe verwenden, eine Rolle für jedes Ihrer Sub-Agent-Projekte zuweisen und die Rolle sollte die Berechtigung haben, Intent-Aufrufe zu erkennen.
Die folgenden Rollen gewähren diesen Zugriff: "Projektinhaber", "Projektbearbeiter", "Dialogflow API-Administrator" und "Dialogflow API-Client".
So rufen Sie die E-Mail-Adresse dieses Dienstkontos ab:
- Rufen Sie die IAM-Seite Dienstkonten auf.
- Wählen Sie das Projekt für Ihren Mega-Agent aus.
- Wählen Sie ein Dienstkonto aus, das Sie bereits für API-Aufrufe erstellt haben, oder fügen Sie ein neues Dienstkonto mit der gewünschten Rolle hinzu. Folgen Sie der Einrichtungsanleitung, um ein neues Dienstkonto zu erstellen und einen privaten Schlüssel herunterzuladen.
- Notieren Sie sich die E-Mail-Adresse des ausgewählten Dienstkontos. Diese benötigen Sie unten.
Wenn Sie für den Mega-Agent Integrationen verwenden möchten, muss das automatisch erstellte Dienstkonto „service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com“ für das Projekt des Mega-Agents eine Rolle für dieses Projekt haben, die die Berechtigung zum Erkennen von Intent-Aufrufen enthält. Die folgenden Rollen gewähren diesen Zugriff: "Projektinhaber", "Projektbearbeiter", "Dialogflow API-Administrator" und "Dialogflow API-Client". So rufen Sie die E-Mail-Adresse dieses Dienstkontos ab:
- Rufen Sie die IAM-Hauptseite auf.
- Wählen Sie das Projekt für Ihren Mega-Agent aus.
- Aktivieren Sie rechts die Option Einschließen von Google-Rollenzuweisungen.
- Suchen Sie das Dienstkonto, das dem Muster entspricht:
service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com. - Notieren Sie sich die E-Mail-Adresse des ausgewählten Dienstkontos. Diese benötigen Sie unten.
Weisen Sie jedem Mega-Agent-Projekt den oben abgerufenen Mega-Agent-Dienstkonten Rollen zu:
- Rufen Sie die IAM-Hauptseite auf.
- Wählen Sie das Projekt für Ihren Sub-Agent aus.
- Weisen Sie den Dienstkonto-E-Mail-Adressen des Mega-Agents im Projekt die gewünschten Rollen zu.
Intent erkennen
Rufen Sie zur Intent-Erkennung die Anfrage wie jede andere Anfrage zur Intent-Erkennung auf und verwenden Sie die Projekt-ID des Mega-Agents. Dialogflow berücksichtigt alle Sub-Agents und die beste Antwort von den Sub-Agents wird zurückgegeben.
Betrachten Sie beispielsweise die folgenden Sub-Agents:
Sub-Agent | Intent | Trainingsformulierungen |
---|---|---|
Bestellungen | Bücher | "Ich möchte ein Buch kaufen" "Buch in den Einkaufswagen legen" |
Hüte | "Ich möchte einen Hut kaufen" "Ich möchte einen Hut haben" |
|
Konto | Kontostand | "Wie hoch ist mein Guthaben?" "Wie viel ist noch auf meinem Konto?" |
Adresse | "Ich möchte meine Adresse ändern" "Ich habe eine neue Adresse" |
Wenn ein Endnutzer sagt: "Ich möchte einen Hut kaufen", führt eine an den Mega-Agent gesendete Anfrage zur Intent-Erkennung zu einer Übereinstimmung mit dem Intent Hats
im Agent Orders
.
Wenn Sie einen oder mehrere Sub-Agents für eine Anfrage zur Intent-Erkennung angeben möchten, legen Sie das Feld subAgents
auf QueryParameters
fest.
Der REST-JSON-Code für diese Anfrage würde beispielsweise so aussehen:
{ "queryInput": { "text": { "text": "reserve a meeting room for six people", "languageCode": "en-US" } }, "queryParams": { "subAgents": [ {"project": "projects/sub-agent-1-project-id"}, {"project": "projects/sub-agent-2-project-id"} ] } }
Ereignisse aufrufen
Um ein Ereignis von einem Webhook-Dienst aus aufzurufen, können Sie den Sub-Agent für den Intent angeben, den Sie auslösen möchten. Verwenden Sie dazu das folgende Format für Ereignisnamen:
sub-agent-project-id.event-name
Wenn die Projekt-ID des Sub-Agents beispielsweise 123
lautet und der Ereignisname für den gewünschten Intent alarm
lautet, verwenden Sie 123.alarm
für den Ereignisnamen.
Wenn Sie keinen Sub-Agent für das Ereignis angeben, wird das Ereignis an den Sub-Agent zurückgesendet, der den zuvor übereinstimmenden Intent enthält.
Ausgabekontext festlegen
Um Ausgabekontexte aus einem Webhook-Dienst festzulegen, können Sie den Sub-Agent angeben, zu dem der Kontext gehört. Verwenden Sie das folgende Format:
projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_agent_project_id.context_name
Wenn die Sitzung beispielsweise projects/mega_agent_project_id/agent/sessions/session_id
ist und Sie einen Kontext namens music_context
für einen Sub-Agent mit der Projekt-ID sub_project_1
festlegen möchten, können Sie den Ausgabekontext mit folgendem Namen festlegen:
projects/mega_agent_project_id/agent/sessions/session_id/contexts/sub_project_1.music_context
Wenn Sie kein Sub-Agent-Präfix für den Kontextnamen angeben, wird es vom System als Kontext des Mega-Agents betrachtet.
Kontextlebensdauer
Wenn ein Kontext aktiv wird, wird normalerweise anhand der Kontextlebensdauer festgelegt, wie viele Unterhaltungsrunden stattfinden, bevor der Kontext inaktiv wird. Die Laufzeitlebensdauer eines aktiven Kontexts wird für jede Unterhaltungsrunde verringert, nachdem sie aktiv wird.
Bei Mega-Kundenservicemitarbeitern kann dieses Verhalten abweichen. Während einer Unterhaltung können für jede Unterhaltungsrunde Intents von verschiedenen Sub-Agents abgeglichen werden. Wenn ein Intent aus einem untergeordneten Agenten zugeordnet wird und der Intent einen Ausgabekontext hat, wird die Lebensdauer dieses Kontexts nur bei weiteren Übereinstimmungen von Intents im selben untergeordneten Agenten verringert.
Beispiel: Intent-Übereinstimmung in Sub-Agent A erfolgt. und der Intent hat einen Ausgabekontext, der einen Kontext aktiviert. Beliebige Übereinstimmungen von Intents in Sub-Agent B Laufzeitlebensdauer nicht verringern für den aktiven Kontext, der von Sub-Agent A stammt.
Versionen und Umgebungen
Mit Versionen und Umgebungen auf der Mega-Agent-Ebene können Sie verschiedene Snapshots des Fallback-Intents des Mega-Agents erstellen und verschiedene Webhooks und Text-to-Speech-Einstellungen für verschiedene Mega-Agent-Umgebungen festlegen.
Die Einstellungen auf der Seite Sub-Agents des Mega-Agents sind nicht in den Versionen und Umgebungen des Mega-Agents enthalten. Bei Mega-Agent-Anfragen werden die Umgebungen der Sub-Agents immer auf dieser Seite angegeben.