Mega-Agents

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 GCP-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 Telefonieeinbettungen (AudioCodes, Avaya, Genesys, SignalWire, Voximplant) werden nicht unterstützt.
  • Der Mega-Agent unterstützt keine Fallback-Intents, die als Follow-up-Intents verwendet werden.

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 protokolliert Daten im Mega-Agent. Beispiel:

Web-UI

1. Mega-Agent erstellen

  1. Rufen Sie die Dialogflow ES-Konsole auf.
  2. 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.
  3. Geben Sie den Namen des Agents, die Standardsprache, die Standardzeitzone und das GCP-Projekt ein.
  4. Legen Sie für Agent Type die Option Mega Agent fest.
  5. Klicken Sie auf Create.

2. Sub-Agents hinzufügen und verwalten

  1. Klicken Sie im linken Seitenleistenmenü auf Sub Agents.
  2. Wählen Sie einen Sub-Agent aus, den Sie dem Mega-Agent hinzufügen möchten.
  3. Die Standardeinstellung für Environment für den Sub-Agent ist Draft. Sie können dies jedoch nach Bedarf aktualisieren.
  4. Wenn Sie die mit dem Sub-Agent verknüpfte Wissensdatenbank (Knowledge Base) verwenden möchten, ändern Sie das Feld von Excluded in Included.
  5. 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:

  1. Erstellen Sie wie gewohnt die GCP-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.
  2. 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:
    1. Rufen Sie die IAM-Seite Dienstkonten auf.
    2. Wählen Sie das Projekt für Ihren Mega-Agent aus.
    3. 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.
    4. Notieren Sie sich die E-Mail-Adresse des ausgewählten Dienstkontos. Diese benötigen Sie unten.
  3. Wenn Sie für den Mega-Agent Integrationen verwenden möchten, muss die automatisch erstellte 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:

    1. Rufen Sie die IAM-Hauptseite auf.
    2. Wählen Sie das Projekt für Ihren Mega-Agent aus.
    3. Aktivieren Sie rechts die Option Einschließen von Google-Rollenzuweisungen.
    4. Suchen Sie das Dienstkonto, das dem Muster entspricht:
      service-project-number@gcp-sa-dialogflow.iam.gserviceaccount.com
    5. Notieren Sie sich die E-Mail-Adresse des ausgewählten Dienstkontos. Diese benötigen Sie unten.
  4. Weisen Sie jedem Mega-Agent-Projekt den oben abgerufenen Mega-Agent-Dienstkonten Rollen zu:

    1. Rufen Sie die IAM-Hauptseite auf.
    2. Wählen Sie das Projekt für Ihren Sub-Agent aus.
    3. 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, bestimmt die Kontextlebensdauer normalerweise, wie viele Unterhaltungsrunden stattfinden, bevor der Kontext inaktiv wird. Im Wesentlichen wird die Laufzeit eines aktiven Kontexts für jede Unterhaltungsrunde verringert, nachdem er aktiviert wurde.

Dieses Verhalten kann bei Mega-Agents anders sein. Während einer Unterhaltung können Intents von verschiedenen Sub-Agents für jede Unterhaltungsrunde abgeglichen werden. Wenn ein Intent von einem Sub-Agent zugeordnet wird und der Intent einen Ausgabekontext hat, wird die Lebensdauer dieses Kontextes nur für weitere Übereinstimmungen von Intents im selben Sub-Agent verringert.

Eine Intent-Zuordnung findet beispielsweise im Sub-Agent A statt und der Intent hat einen Ausgabekontext, der einen Kontext aktiviert. Durch Zuordnungen von Intents im Sub-Agent B wird die Laufzeitlebensdauer für den aktiven Kontext, der vom Sub-Agent A stammt, nicht verringert.

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.