
KUBI – der sprechende Roboter-Barista
KUBI ist ein sprechender Barista, der mit der Konversations-KI von ElevenLabs arbeitet. So funktioniert es.
KUBI ist ein sprechender Roboter-Barista und Empfangsroboter bei Second Space, einem modernen 24/7 Co-Working-Space in Kaohsiung, Taiwan. Da der Betrieb vollständig automatisiert ist, ist es besonders wichtig, dass KUBI als erste Kontaktstelle für Mitglieder eine persönliche Note einbringt. Deshalb setzt Second Space auf die Konversations-KI von ElevenLabs, um unterhaltsame und einprägsame Interaktionen zu ermöglichen. Sehen wir uns KUBI in Aktion an.
So funktioniert KUBI
KUBI nutzt eine ausgefeilte multisensorische Architektur, um menschliche Interaktion zu simulieren. Das System basiert auf einer Microservices-Architektur, in der spezialisierte Dienste parallel laufen und über einen Echtzeit-Event-Stream kommunizieren. Diese Dienste übernehmen Aufgaben wie Gesichts- und Objekterkennung per Echtzeit-KI, Tassen- und Fremdkörpererkennung per Kamera, Belegdruck, sichere Gesichtserkennung für Zugangskontrolle sowie die präzise Steuerung von Milch- und Bohnenausgabe.
Diese Dienste laufen parallel:
- Umgebung Kamera-Service: Nutzt Echtzeit-KI (PyTorch in Python) zur Erkennung von Gesichtern und Objekten.
- Tablet Kamera-Service: Ähnlich, erkennt aber Tassen auf dem Tisch, Fremdkörper und prüft, ob der KUBI-Roboter tatsächlich eine Tasse hält.
- Belegdruck-Service: Einfach und zuverlässig mit Node + Typescript. Kommuniziert mit einem RS232-Thermodrucker.
- Zahlungsdienst: Entwickelt mit Kotlin JVM für hohe Parallelität und Typsicherheit. Übernimmt die Meldung von Belegen an Behörden und die Kommunikation mit Kreditkartenterminal, Krypto-Zahlungsgateway oder Online-Zahlungsanbietern.
- Milch- & Bohnenausgabe: Separate Präzisionsdienste — Arduino. Zeitkritisch, geringe Latenz.
- Gesichtserkennung: Sicherer und strikt typisierter Kotlin-Service für Zugangskontrolle.
- Wasserstrahl-Service: Reinigt Milchkännchen automatisch nach Gebrauch — Arduino.
- Und weitere Dienste, z. B. für Mobile-App-API, Menüanzeige usw.
Warum so viele Microservices? Ganz einfach: Wir verwalten sie unabhängig, skalieren flexibel und nutzen für jede Aufgabe das beste Tool.
Ein zentrales, ereignisgesteuertes System als Bindeglied
Die Koordination aller Microservices übernimmt ein zentraler Dienst, scherzhaft "BigBoy" genannt. Im Kern ist es ein großer, nicht-blockierender Event-Prozessor:
So arbeitet BigBoy:
- Empfängt eingehende Events aller Dienste.
- Prüft Szenarien auf passende Auslöser.
- Wählt das beste Szenario aus.
- Plant Aktionen zur Ausführung ein.
| 1 | |
| 2 | internal object WeatherIdleScenario: SingleTaskScenario(scenario){ |
| 3 | |
| 4 | importance = Importance.Medium |
| 5 | compilationTimeout = Time.ThreeSeconds |
| 6 | interruptable = false |
| 7 | exeutionExpiration = = Time.TenSeconds |
| 8 | |
| 9 | override fun isEligible(event: Event, environment: Environment): Maybe<Boolean> = withEnvironment(environment) { |
| 10 | just { |
| 11 | (event is IdleEvent |
| 12 | && !triggeredInLast(40.minutes) |
| 13 | && (personPresent() || hasActiveSessions) |
| 14 | && environment.weatherService.lastReportWithin(10.minutes)) |
| 15 | } |
| 16 | } |
| 17 | } |
| 18 | |
| 19 | private val scenario = ScenarioRecipe { event, env, session -> |
| 20 | |
| 21 | |
| 22 | invokeOneOf( |
| 23 | |
| 24 | phrase { |
| 25 | sayWith { |
| 26 | "Rainy day today, isn't it? That's why I have my little umbrella! Look!".asEnglish |
| 27 | }.withAutoGift().withAutoMotion() |
| 28 | }.given { Weather.isRaining() }, |
| 29 | |
| 30 | phrase { |
| 31 | sayWith { |
| 32 | "Friend, it's so cold outside! So sad for you... because you're a human. I don't really mind!".asEnglish |
| 33 | }.withAutoMotion() |
| 34 | |
| 35 | sayWith { |
| 36 | "Wait, that soudned a bit rude.".asEnglish |
| 37 | }.withAutoMotion() |
| 38 | |
| 39 | }.given { Weather.isCold() }, |
| 40 | |
| 41 | ) |
| 42 | |
| 43 | |
| 44 | } |
| 45 | |
| 46 |
Was sind Szenarien?
Szenarien sind wie nicht-blockierende Compiler für Roboter-Aktions-Events. Ein Aktions-Event ist meist das letzte Glied in einer Kette und führt zu einer physischen Aktion, etwa Bewegung oder Sprache. Ein Begrüßungsszenario könnte zum Beispiel Folgendes auslösen:
MotionEvent(HelloMotion)
Event-Generierung mit LLM: Manche Aktions-Events werden automatisch von einem LLM erzeugt, zum Beispiel mit AutoMotion wählt anhand des Kontexts die passende Bewegung aus einer vordefinierten Liste. Während mit AutoGif ein LLM nutzt, um das passende Tag für eine Phrase zu generieren. Das Tag wird verwendet, um ein GIF bei Giphy abzurufen, das dann zusammen mit der Phrase auf KUBIs Gesicht angezeigt wird.
Synchronisierung von Aktions-Events: Diese Events laufen durch einen Scheduler, der sicherstellt, dass Sprache, Mimik und Bewegungen synchron bleiben. So passt KUBIs Sprache immer zu seinen Gesten.
Flexibel und erweiterbar
Das Besondere: Szenarien können auch auf Aktions-Events reagieren und neue Aktions-Events dynamisch auslösen. Zum Beispiel:
- Wenn BigBoy SayEvent("Frohe Weihnachten") erkennt, kann automatisch festliche Beleuchtung und Spezialeffekte im Raum aktiviert werden.
- Ein weiteres Beispiel: Wenn ein Nutzer über die Mobile App bestellt, werden alle Interaktionen (Produkt anklicken, bezahlen usw.) in Events umgewandelt und BigBoy kann in Echtzeit reagieren. Scrollt der Nutzer z. B. an „Hafermilch-Latte“ vorbei, könnte KUBI sagen: „Sind Sie sicher, dass Sie keinen Hafermilch-Latte möchten? Der ist wirklich gut.“
BigBoy hat den kompletten Überblick über alles, was passiert.
DevOps und Überwachung
Die meisten Dienste laufen lokal in Docker-Containern. Innerhalb des Containers steuert Supervisor den Lebenszyklus. Fehlerprotokolle werden in Sentry gesammelt und in eine eigene Admin-App eingespeist, um Ausnahmen, Echtzeitstatus der Dienste und Sensoren sowie Latenzberichte zu überwachen. Interessant: Die Flutter-App wurde zu 90 % von KI generiert.
Mit ElevenLabs für einprägsame Interaktionen
Second Space hatte eine klare Persönlichkeit für KUBI im Kopf – eine Mischung aus Deadpool, Wheatley (Portal) und etwas Pathfinder (Apex Legends). Sie haben es geschafft, die Stimme zu gestalten – in nur 15 Minuten, inklusive Emotionen und Pausen, die die Stimme noch menschlicher machen.
ElevenLabs liefert KUBIs Sprachfähigkeiten über zwei zentrale APIs:
Text zu Sprache (TTS)
- Übernimmt ca. 90 % der Interaktionen.
- Verwendet vordefinierte Szenarien für die passende Stimmung.
- Von LLMs generierte Nachrichten können personalisiert werden, mit hochwertigem Audio und bester Aussprache, nicht zeitkritisch.
- Bietet natürlich klingende, mehrsprachige Sprache in Englisch, Chinesisch, Spanisch, Japanisch und sogar Lettisch.
Konversationsmodus (Echtzeit)
Wird aktiviert, wenn ein Kunde sagt: "Hey KUBI!". Die Konversations-KI von ElevenLabs antwortet in 200 ms, wodurch die Interaktion sehr natürlich wirkt.
- Priorität: Geringe Latenz.
- Etwas geringere Audioqualität zugunsten der Reaktionsgeschwindigkeit.
- Nutzt das neue Echtzeit-Spracherkennung-Tool von ElevenLabs und erkennt verschiedene Sprachen sofort.
- Die Konversations-KI-Session startet auf Abruf, wenn ein Mitglied die Einrichtung betritt oder „Hey, KUBI!“ sagt.
Eigene Konversations-Tools
Über die WebSocket-Verbindung zur Konversations-KI von ElevenLabs kann KUBI Funktionen aufrufen, zum Beispiel:
- Bestellung aufgeben: Erkennt Bestellungen und sendet Events direkt an BigBoy.
- Bezahlung durchführen: Informiert sofort den PaymentService, um das Kreditkartenterminal zu aktivieren.
Das einfache Umschalten zwischen verschiedenen LLM-Modellen im ElevenLabs-Admin-Panel hilft Second Space, Verständnis und Genauigkeit zu optimieren, da verschiedene Modelle die Tool-Intents unterschiedlich gut erkennen. Aktuell nutzen sie Gemini 2.0 Flash als Kernmodell für Konversations-KI und ChatGPT 4o für statische Sprachgenerierung.
KUBI für weitere Märkte
Die ersten GitHub-Commits von Second Space zu ElevenLabs stammen aus Januar 2023 – noch vor Veröffentlichung des mehrsprachigen Modells. Schon früh erkannten sie den Qualitätsanspruch von ElevenLabs und bauten eine Architektur, die zukünftige Mehrsprachigkeit berücksichtigt. Jetzt ist der Markteintritt in Länder wie Japan oder Südkorea nur noch eine Sache des Umschaltens – ohne zusätzlichen Entwicklungsaufwand.
Fazit
Microservices, Echtzeit-Events und die leistungsstarke Sprachtechnologie von ElevenLabs machen KUBI lebendig – bereit, die Welt mit Kaffee und cleveren Interaktionen zu begeistern.
Entdecken Sie Artikel des ElevenLabs-Teams


Introducing Experiments in ElevenAgents
The most data-driven way to improve real-world agent performance.

