Erst gemeinsam sind sie stark Wie Chatbots im Team kooperieren

Ein Gastbeitrag von Kristian Kolthoff & Harald Huber * Lesedauer: 9 min |

Anbieter zum Thema

Meist beschränken sich die Fähigkeiten von Chatbots auf einfache Dialoge. Gesucht sind Chatbots, die auch komplexe Aufgabenstellungen effizient bewältigen können. Ein vom Bundesministerium für Bildung und Forschung gefördertes Projekt hat die Technik dazu entwickelt.

Dank der offenen Protokolle lassen sich eigene Expert-Bots ins Bot Universe integrieren.
Dank der offenen Protokolle lassen sich eigene Expert-Bots ins Bot Universe integrieren.
(Bild: USU Solutions)

Im September 2018 startete das Verbundprojekt „Arbay“. Arbay steht als Akronym für „Augmented-Reality basierte Beratungs- und Verkaufsplattform für hochvariante und individualisierbare Güter“. Teilnehmende waren verschiedene Universitäten, IT-Unternehmen und potenzielle Anwender.

Das Projekt sollte die Beratung für komplexe Produkte am Beispiel von individuell konfigurierbaren Möbeln per Augmented Reality und der Beratung durch einen virtuellen Berater (Chatbot) in die Wohnzimmer bringen. Ein Anwendungsbeispiel: ein möchte Kunde eine neue Couch kaufen, hat aber noch keine klare Vorstellung, wie sie aussehen und welche Eigenschaften sie haben soll.

Der Kunde formuliert nun eine Anfrage an den virtuellen Berater, die auch umgangssprachlich formuliert sein kann, beispielsweise: „Ich suche einen modernen, etwas peppigen Dreisitzer.“ Diesen Input soll nun ein Chatbot aufnehmen und den Anwender durch einen Beratungsdialog führen

Der Bot soll also z. B. passende Produktvarianten aufzeigen, aber auch Rückfragen zur Preisspanne, zum Bezugsstoff und weiteren Eigenschaften wie „Schlafsofa“ oder ähnliches stellen. Auf diesem Weg entsteht allmählich ein Produkt, das die Erwartungen des Kunden erfüllt. Dazu benötigt der Chatbot Zugriff auf externe Daten wie Konfigurationsmöglichkeiten und Produktangebote.

Zieht der Kunde ein Produkt (oder mehrere) in die engere Wahl, kann er es sich mit Hilfe einer AR-Brille direkt in seinem Wohnzimmer zeigen lassen. Ein Raum-Scan, der ebenfalls Teil des Projekts war, hat zu diesem Zweck das Wohnzimmer vorher vermessen. An dieser Stelle des Auswahlprozesses hat der Chatbot die Aufgabe, den Kunden bei der Positionierung des Sofas zu beraten und gegebenenfalls auf Probleme aufmerksam zu machen, zum Beispiel auf einen mangelnden Freiraum im Fußbereich. Dazu nutzt der Chatbot die Messdaten des Raumscans.

Komplexe Situationen bringen Chatbots an ihr Limit

Das Projekt ist in allen Teilen außerordentlich herausfordernd. Das betrifft sowohl die Raumvermessung und die AR-Darstellung als auch die Realisierung der Beratungssituation. Dennoch ließ sich die grundsätzliche Machbarkeit zeigen.

Gleichzeitig wurde jedoch deutlich, dass die Anforderungen an einen virtuellen Assistenten in einer derartigen Gesprächssituation sehr hoch sind. Die große Themenbreite und damit die potenzielle Varianz der zu führenden Dialoge machen sowohl die Pflege der möglichen Chatbot-Dialoge als auch die Erkennung des Ziels des Nutzers („Intent Recognition“) zu einer aufwändigen und komplexen Aufgabe.

Für den Einsatz in der Praxis müssten die Chatbots darüber hinaus über Beratungsfähigkeiten für zusätzliche Möbelstücke (einen Dreisitzer und einen passenden Zweisitzer) bzw. Accessoires (wie Kissen oder Decken) verfügen. Die Fähigkeiten aktueller Chatbot-Technologien reichen dafür jedoch bei Weitem nicht aus.

Hinzu kommt, dass für spezielle Anforderungen – wie die Klassifikation der eher umgangssprachlichen Beschreibung des Produktes – eher leistungsfähige ML-basierte Algorithmen geeignet sind. In anderen Fällen (z. B. beim Aufstellen des Möbelstücks) stellt regelbasiertes Pattern-Matching aufgrund der redaktionellen Bearbeitung die beste technische Wahl dar.

Das Chatbot-Eco-System als Open-Source-Projekt

Um diesen Herausforderungen zu begegnen, ist die Idee eines „Bot Universe“ entstanden. Die Grundidee dieses Entwicklungsvorhabens besteht darin, umfangreiche und leistungsfähige Chatbot-Implementierungen durch das Zusammenspiel vieler Chatbots zu ermöglichen. Dieses Ziel legt es nahe, die Technologie im Rahmen eines Open-Source-Projekts und damit einem möglichst breiten Entwickler- und Anwenderkreis zur Verfügung zu stellen.

Im Mittelpunkt des Projekts steht das Protokoll des Bot Universe, dessen Quellcode die Community pflegen und weiterentwickeln soll. Die Entwicklung weiterer quelloffener Bot-Konnektoren ist ebenfalls möglich und willkommen. Anders als bei klassischen Open-Source-Projekten geht es beim Bot Universe weniger um die Implementierung von Artefakten als um die Definition eines Austauschformats und eines Kommunikationsablaufs zwischen (Chat-)Bots unterschiedlicher Hersteller.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Diskussionen und Entscheidungsfindungen sind dabei ebenso offen zugänglich wie die eigentlichen Spezifikationen bzw. Implementierungen des Protokolls. Das Projekt selbst steht unter einer anwenderfreundlichen Lizenz, die es allen Interessenten erlaubt, die Spezifikationen und Implementierungen zu nutzen und für ihre Zwecke anzupassen.

Die Grundidee des Protokolls

Ziel des Protokolls ist es, beliebig viele Bots in einem Netzwerk (Bot Universe) zusammenzuschalten und diese sowohl mit dem Anwender als auch untereinander intelligent interagieren zu lassen. Die Grundidee entspringt der des „Single Point of Truth“. Ein Anwender soll immer nur mit einem Ansprechpartner/Bot kommunizieren. Die eigentlichen Anfragen werden dann im „Hintergrund“ von spezialisierten Bots beantwortet.

Das Protokoll definiert hierfür folgende Arten von Bots:

  • Lead-Bot: Der Einstiegsbot, mit dem ein Anwender kommuniziert.
  • Expert-Bot: Ein Bot, der im Universe registriert ist und zu einem oder mehreren Themen Auskunft geben kann.
  • Smalltalk-Bot: Ein optionaler „Expert“-Bot, der „Smalltalk“ verarbeitet.

Daher besteht ein Bot Universe immer aus einem Lead-Bot und einer beliebigen Anzahl Expert-Bots, von denen es jedoch mindestens einen geben muss. Die Entwickler registrieren die Expert-Bots in einer Bot-Registry, die sich direkt in einem Lead-Bot befindet oder als eigener Service existiert.

Die Kommunikation im Bot-Netzwerk

Die Interaktion zwischen Lead-Bot und Expert-Bots findet im klassischen Request/Response-Pattern auf http(s)-Basis statt. Zwischen Lead-Bot und Expert-Bots besteht somit keine permanente physische Verbindung. Für die Kommunikation kommt ein im Protokoll spezifiziertes, auf JSON basierendes Format zum Einsatz. Des Weiteren sorgt ein Key Value Store (KVS) für den Austausch weiterer Daten zwischen den Bots in einem Bot Universe.

Wie läuft nun eine Kommunikation im Bot Universe ab? Der Anwender beginnt mit einer Anfrage beim Lead-Bot und eröffnet damit eine Bot- oder Protokoll-Session. Diese deckt die komplette Unterhaltung zwischen dem Anwender und dem Lead-Bot ab. Jede einzelne Anfrage des Anwenders initiiert außerdem eine Question-Session, die bis zur Beantwortung einer speziellen Frage oder bis zum Abbruch der Anfrage besteht.

Während einer Bot-Session laufen also mehrere Question-Sessions ab. Typischerweise findet innerhalb einer Question-Session die Kommunikation mit einem Expert-Bot statt. Nachdem der Anwender eine neue Bot-Session am Lead-Bot eröffnet hat, nimmt dieser die Anfrage des Anwenders entgegen.

Der Lead-Bot sendet die Anfrage des Anwenders im zweiten Schritt an jeden im Bot-Universe registrierten Expert-Bot. Jeder Expert-Bot ermittelt daraufhin, ob er mit der Anfrage etwas anfangen kann. Wie dies geschieht, obliegt jedem Expert-Bot selbst, der dafür in der Regel Algorithmen zur Klassifikation bzw. Intent-Erkennung heranzieht.

Kommt ein befragter Expert-Bot zu dem Schluss, die Anfrage des Anwenders bearbeiten zu können, meldet er dies entsprechend zurück.

Anhand der Rückmeldungen entscheidet der Lead-Bot das weitere Vorgehen:

  • Wenn sich lediglich ein Expert-Bot verantwortlich fühlt, wird die Kommunikation an diesen Expert-Bot übergeben.
  • Wenn mehrere Bots Interesse zeigen, fragt der Lead-Bot den Anwender, für welches Thema er sich genau interessiert. Der Anwender wählt dann entsprechend aus und der Lead-Bot baut die Verbindung zum spezifischen Expert-Bot auf.
  • Wenn kein Bot zuständig ist, bittet der Lead-Bot den Anwender um eine Spezifizierung seiner Anfrage.

Hat der Lead-Bot eine Verbindung zu einem Expert-Bot aufgebaut, kommuniziert der Anwender nun direkt mit diesem Expert-Bot. Hierbei dient der Lead-Bot als Proxy, der die Anfragen des Anwenders (wie im vorangestellten Bild zu sehen) an den Expert-Bot direkt weiterleitet und vice versa. Wenn das Thema aus Sicht des Expert-Bots abgearbeitet ist, beendet er die InterBot-Kommunikations-Session und übergibt die Gesprächsführung wieder an den Lead-Bot (analog zum ersten Bild).

Das Protokoll an sich ist Bot-neutral gehalten, d. h. es lassen sich Bots von beliebigen Herstellern in das Bot Universe integrieren. Diese müssen dazu lediglich einen entsprechenden Bot-Adapter entwickeln, der das Universe-Protokoll in das Bot-spezifische Format übersetzt und umgekehrt.

Dispatching im Dynamic Bot Universe

Die Entscheidung, welcher Expert-Bot sich meldet, hängt auch von der Situation ab, nicht nur von der Anwenderanfrage. Wird beispielsweise nur ein Dreisitzer als Couch angefragt, sind die Informationen des „Zweisitzer-Experten-Bots“ gar nicht nötig.

Zu diesem Zweck gilt im Bot Universe die Regel, dass sich Expert-Bots an- und abschalten können – abhängig von Wertezuständen im Key Value Store. Auf diese Weise bleibt das Black-Box-Prinzip erhalten (nur der Expert-Bot weiß, ob er gerade aktiv ist oder nicht) und das Bot Universe kann dennoch äußerst flexibel auch in sehr weitgespannten und komplexen Umgebungen arbeiten.

Beispiel Bot Universe mit Rasa-Bot und USU-Bot

Das Arbay-Projekt nutzte einen ML-basierten Chatbot auf Rasa-Basis (populäres Open-Source-Chatbot-Framework für Python) und einen regelbasierten Chatbot der Firma USU gemeinsam in einem Bot Universe. Der RASA-Chatbot unterstützt den Anwender mit Hilfe trainierter Dialoge bei der Konfiguration seines Wunschsofas und ist in der Lage, die umgangssprachlichen Anfragen der Anwender im Rahmen gängiger Sprachgepflogenheiten zu interpretieren.

Diese Fähigkeit ist das Ergebnis eines umfassenden Trainings mit einer sehr hohen Anzahl an Anfragen, die der RASA-Chatbot interpretieren musste. Der USU-Chatbot erkennt mit seinem Pattern-Matching und anhand der Daten aus den Raumscans entsprechende Platzierungssituationen und kann bei der Aufstellung des Sofas helfen.

Der Rasa-Bot besteht aus mehreren Komponenten:

  • Dem Topic-Scanner zur ML-basierten Erkennung von relevanten Themen auf Basis der Rasa-NLU (Natural Language Understanding), …
  • … dem Bot selbst für den Konfigurationsdialog bestehend aus einer weiteren Rasa-NLU zur Erkennung von Intents und Extraktion von Slots durch den Rasa Action Server, um verschiedene Aktionen durchzuführen (z. B. die Abfrage von Konfigurationsdaten oder das Speichern einer Konfiguration) …
  • … und einem Duckling-Server zur Erkennung spezieller Slots (z. B. ein Datum mit Zeit).

Diese Komponenten werden über Docker Compose verbunden.

Integration in das Bot Universe

Die einzelnen RASA-basierten Expert-Bots arbeiten von der Warte des Bot Universe aus betrachtet genauso wie alle anderen Chatbots darin. Die Anbindung des Rasa-Bots an das Bot Universe erfolgt über dessen REST-basiertes Standardprotokoll.

Die Entwickler implementieren die dafür erforderlichen REST-Schnittstellen mithilfe von Flask und stellen sie damit auch bereit. Das Bot Universe nutzt diese Schnittstellen, um Anfragen an die zuständigen Komponenten (Topic-Scanner oder Rasa-Bot) weiterzuleiten.

Um den Konfigurationsdialog auszuführen, ruft das Universe die bereitgestellten Raumdaten (z. B. den verfügbaren Platz) aus dem KVS ab, um die passende Größe des Sofas automatisch einstellen zu können. Gleichzeitig stellt es die im Gespräch ermittelten Konfigurationsdaten im Diomex-Format (spezielles Format zur Darstellung von Möbelkonfigurationen) über den KVS zur Darstellung in der AR-Umgebung bereit.

Nächste Entwicklungsschritte

Neben dem Arbay-Projekt nutzen mittlerweile eine Reihe weiterer Projekte das Bot Universe und erzielen damit gute Erfolge. Die Architektur hat gezeigt, dass sie grundsätzlich in der Lage ist, mit überschaubarem Wartungsaufwand sehr komplexe Chatbot-Implementierungen zu betreiben. Auch die bundesweit einheitliche Behördennummer 115 wird die zukünftige Chatbot-Infrastruktur des Projekts auf Basis der Bot-Universe-Technologie aufbauen.

Das Potenzial der Technologie ist erwiesenermaßen groß. Entsprechend ambitioniert sind die geplanten Weiterentwicklungen. So sollen sich ganze Gesprächsabschnitte definieren lassen. Dahinter steckt die Idee, Rahmendaten, die im weiteren Verlauf eines Gesprächs wichtig werden, schon in einer frühen Phase des Dialogs zu erfassen.

Zu diesen Rahmendaten zählt zum Beispiel die Frage, ob es sich bei dem Interessenten um einen Neu- oder Bestandskunden handelt. Diese Information lässt sich mit einer Anfrage an ein CRM-System oder an den Kunden selbst ermitteln. Der Vorgang gleicht der Anamnese und Diagnose beim Arzt – erst erfolgt eine Informationsaufnahme, dann eine Informationsverwendung.

Sofern eine Gesprächsstruktur notwendig ist und sich nicht zu jedem Zeitpunkt alle Dialoge gleichzeitig führen lassen, sorgt eine Erweiterung des Lead-Bots dafür, einen Dialog in entsprechende Gesprächsabschnitte zu gliedern. Wie bisher weiß der Lead Bot jedoch nicht, welche Expert-Bots sich für einen Gesprächsabschnitt eignen. Dies wissen weiterhin nur die Expert-Bots selbst, die sich im jeweiligen Gesprächsabschnitt ein- oder ausschalten.

Die zweite geplante Erweiterung ist die Hierarchisierung des Bot Universe. Dadurch wird es möglich, dass ein Bot Universe weitere Bot-Netzwerke, also weitere Bot-Universen, beinhaltet. Dabei sieht aus Sicht des übergeordneten Bot Universe das darin enthaltene Bot Universe wie ein Expert-Bot aus – es ist aus Sicht des Bot Universes nicht davon zu unterscheiden. Diese Hierarchisierung ermöglicht eine weitere Leistungssteigerung.

Die Weiterentwicklungen dienen ein und demselben Zweck: mit Hilfe des Bot Universe ein im Prinzip unbegrenztes Leistungsvermögen von Chatbots zu erreichen. Basis dafür ist die Erweiterbarkeit des Bot Universe nach dem Lego-Prinzip, ohne dass dem Hinzufügen weiterer Bausteine Grenzen gesetzt sind.

* Kristian Kolthoff ist Forscher am Institute for Enterprise Systems (InES) an der Universität Mannheim. Harald Huber ist Managing Director bei USU Solutions.

(ID:49263516)