Zum Inhalt springen
megapromotingLassen Sie uns sprechen
Produkte Kallina

KI-Sprachagenten Plattform

Ein gutes Gespräch endet mit einer Aktion.

Wir bauen Agenten, die Anrufe annehmen und initiieren, die Informationen des Unternehmens nutzen und mit Ihren Systemen arbeiten. Von der ersten Frage bis zu einer vollständigen Anfrage, einer Bestätigung oder der Weiterleitung an einen Kollegen.

Hören Sie zuPrüfenHandeltSPRACHE + KONEXT + AKTION
Wie Kallina funktioniert

Kallina

Von der Information zur erledigten Arbeit.

01

Hören Sie zu

Versteht die Anfrage im Kontext des Gesprächs und der Geschäftsregeln.

02

Prüfen

Konsultiert die Wissensdatenbank und die autorisierten Integrationen, bevor geantwortet wird.

03

Handelt

Füllt die Daten aus, führt die erlaubte Aktion aus oder übergibt das Gespräch an einen Menschen.

Wo es nützlich wird.

Empfang und Support

Häufig gestellte Fragen, Entgegennahme von Anfragen und Rückmeldung an Personen, die darum gebeten haben, kontaktiert zu werden.

Bestellungen und Lieferungen

Bestätigungen und Koordination mit den Informationen aus dem verbundenen Bestellsystem.

Qualifizierung und Terminvereinbarungen

Sammeln Sie die erforderlichen Details. Der Zugriff auf den Kalender und die Buchung werden für jede Integration festgelegt.

Die Szenarien, die Telefonnummern, die Sprachen und die Aktionen werden für jede Implementierung konfiguriert. Das Team behält die Möglichkeit, das Gespräch zu übernehmen.

Kallina im Detail

Was Sie mit diesem Projekt tun können.

Kallina ist die Plattform, auf der wir Agenten entwickeln, die am Telefon und auf der Webseite sprechen. Ein Agent hat eine schriftlich festgelegte Rolle, eine genehmigte Wissensbasis, einen Satz an Werkzeugen, die er aufrufen kann, und eine Grenze, über die hinaus er das Gespräch an einen Menschen übergibt. Die Konversation endet nicht im Transkript: Der Anruf hat Dauer, Kosten pro Anbieter, Aufzeichnung und Analyse, alles mit dem Geschäftskonto verknüpft.

Die Sprach-Engine ist nicht nur eine einzige. In der Konfiguration des Agenten wählen Sie zwischen ElevenLabs Conversational AI, OpenAI Realtime, Gemini Live oder „auto“, wobei Kallina den Anbieter je nach Sprache, Auslastung und Verfügbarkeit auswählt. Darüber hinaus wählen Sie separat das textuelle Gehirn — der Katalog im Code enthält 78 Einträge von OpenAI, Google, Anthropic, xAI und ElevenLabs, jeweils mit der in der Oberfläche angezeigten Latenz und den Kosten pro Minute, damit die Wahl eine informierte ist und nicht eine vom Hörensagen.

Die Telefonie ist unsere eigene, nicht vom Sprachanbieter gemietet. Die Anrufe laufen über eine eigene Asterisk-Instanz, mit Weiterleitung nach Geschäftszeiten und Zeitzone, Nachtbetrieb (zum Beispiel 22:00 → 06:00) und Prioritätsabgleich: SIP-Diversion-Header, dann Kallina-Nummer, dann die Fallback-Regel. Für OpenAI Realtime gibt es eine AudioSocket-Brücke, die den Codec in beide Richtungen konvertiert, g711_ulaw ↔ PCM16.

01

Drei Sprachanbieter plus eine Position „auto“

In `AGENT_PROVIDERS` gibt es vier Optionen: `elevenlabs` (ConvAI), `openai-realtime`, `gemini-live` und `auto`. Für Text-to-Speech in anderen Sprachen als Englisch ist standardmäßig `eleven_flash_v2_5` eingestellt — 32 Sprachen, etwa 75 ms Latenz; die qualitativ bessere Alternative, `eleven_turbo_v2_5`, kostet etwa 250 ms. Die Auswahl ist nicht im Code versteckt, sondern ein Feld in der Agentenkonfiguration.

02

Modellkatalog mit angezeigter Latenz und Kosten

78 Modelle in `LLM_MODELS`, in der Oberfläche nach Anbieter gruppiert, zusammen mit der gemessenen Latenz und den Kosten pro Minute — von `gpt-5-nano` mit etwa 806 ms und rund 0,0004 $/min bis zu `claude-sonnet-4-6` mit etwa 1,55 s und rund 0,0225 $/min. Ein Kunde, der fragt „warum antwortet er langsam“, bekommt eine Antwort mit Zahlen, nicht eine Meinung.

03

Eigene Telefonie auf Asterisk

Die Anrufweiterleitung wird nach Arbeitszeiten und Zeitzone konfiguriert, mit Unterstützung für Nachtbetrieb und Prioritätsabgleich (SIP-Diversion-Header → Kallina-Nummer → Fallback-Regel). Die `openai-realtime-bridge`-Brücke konvertiert AudioSocket zwischen g711_ulaw und PCM16 für den bidirektionalen Audiostream.

04

Sprach-Embed in einer einzigen Zeile, ohne Agenten-ID auf der Seite

`<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`. Die Seite erfährt nie, welcher Agent antwortet, und speichert keinen einzigen Anbieterschlüssel: Sie fordert bei Kallina eine Sitzung an, und Kallina gibt eine kurzzeitig signierte URL zurück. Es gibt auch den Modus `data-mode="inline"`, in dem das Embed absolut nichts zeichnet und die Seite ihre eigene Oberfläche über die API `start()` / `stop()` / `toggle()` / `on(event, fn)` erstellt.

05

Outbound-Anrufkampagnen

Batch-Anrufe mit 1–10 gleichzeitigen Anrufen, Import von Kontakten aus CSV, Retry-Logik, Echtzeit-Tracking mit Pause, Fortsetzen und Stopp sowie Follow-up per SMS.

06

Sprachen

Die Agentenkonfiguration unterstützt 32 Sprachen (`LANGUAGES`), die vollständige Sprachkarte der Plattform umfasst 41 Einträge, und das Administrationspanel ist in 20 Sprachen übersetzt (`src/i18n/locales`). Rumänisch ist die Standardsprache in `DEFAULT_VALUES`.

Daten und Funktionsweise

Was in das System eingeht. Was geprüft werden muss.

Wo die Daten liegen
PostgreSQL über Supabase, mit Row Level Security und pg_cron; 559 versionierte Migrationen. Die Serverlogik sind Deno-Edge-Funktionen — 472 im Repo zum Zeitpunkt der Prüfung.
Was niemals im Client erscheint
Der Schlüssel des Sprachanbieters und die Agentenkennung. Das Embed verlangt `POST /functions/v1/widget-voice-session` mit `widget_id` — dem öffentlichen Schlüssel aus `chat_widget_configs.widget_id`, nicht der internen Zeilen-ID — und der Server fordert selbst bei ElevenLabs eine signierte URL über `convai/conversation/get_signed_url` an und gibt sie zurück. Die alte Variante, die `agentId` direkt in HTML setzte, umging Kallina vollständig.
Wissensdatenbank
In die Plattform hochgeladene Dokumente, mit dem ElevenLabs-RAG synchronisiert. Darüber werden Gesprächsleitplanken, Schemata zur Datenerfassung und Kriterien zur Bewertung des Anruferfolgs gelegt, pro Agent definiert.
Verbrauch vorab gemessen, nicht danach
Die Tabelle `usage_events` hält den Verbrauch nach Anbieter und Agent aufgeschlüsselt fest. Vor jeder kostenpflichtigen Aktion prüft die Funktion `check-can-use` das Guthaben — das Gate liegt vor dem Anruf, nicht auf der Rechnung am Monatsende.

Von der Erkundung zur Implementierung

Wie wir ein Projekt mit Kallina vorbereiten.

01

Wir wählen einen einzigen Ablauf und schreiben seine Grenzen fest

Ein Szenario mit klarem Eingang und klarem Ausgang — Anruf an der Rezeption, Auftragsbestätigung, Anrufkampagne. Wir schreiben ausdrücklich, was der Agent nicht tun darf und auf welchem Weg er das Gespräch an einen Menschen übergibt.

02

Wir verbinden die Nummer und prüfen in beide Richtungen

Die Nummer wird auf den SIP-Trunk unserer Asterisk geschaltet. Eingehende und ausgehende Anrufe werden getrennt getestet, weil sie getrennt ausfallen können: Eine Einschränkung des Anbieters bei ausgehenden Anrufen lässt die eingehenden einwandfrei funktionieren.

03

Wir prüfen den Ablauf, ohne Minuten zu verbrauchen

`scripts/verify-voice-path.mjs` geht genau den Weg eines Browsers ab — die Zeile aus der Konfiguration, `get-widget-config`, dann `widget-voice-session` — und stoppt bei der signierten URL, ohne das Websocket zu öffnen. Es läuft für ein einzelnes Widget oder für alle mit aktivierter Stimme, mit 1–3 parallel, und gibt einen Exit-Code zurück, sodass es direkt in einen Cron eingebunden werden kann.

Fragen, die sich lohnen, geklärt zu werden.

Welche Sprach-Engine nutzt es konkret?

Sie wählen zwischen ElevenLabs Conversational AI, OpenAI Realtime und Gemini Live, oder lassen „auto“ und Kallina entscheidet nach Sprache und Verfügbarkeit. Für die Sprachsynthese in anderen Sprachen als Englisch ist standardmäßig das Modell `eleven_flash_v2_5` aktiv — 32 Sprachen, rund 75 ms; wenn Sie höhere Qualität wollen und mehr Verzögerung akzeptieren, liegt `eleven_turbo_v2_5` bei rund 250 ms. Die OpenAI Realtime-Stimmen sind zehn, und ihre Engine geht bis `gpt-realtime-2.1`.

Wie wird es auf einer Website eingebunden?

Eine Zeile: `<script src="https://app.kallina.info/embed.js" data-widget="WIDGET_ID"></script>`, als normales Script geladen, nicht als Modul. Die Datei wird heute ausgeliefert und hat 13.762 Bytes. Wenn Sie Ihre eigene Oberfläche wollen, zeichnet `data-mode="inline"` nichts und lässt Ihnen `start()`, `stop()`, `toggle()` sowie die Ereignisse `state`, `message`, `error`. Achtung beim Host: Die Datei liegt auf `app.kallina.info`, nicht auf `kallina.info` — das sind zwei Anwendungen auf zwei unterschiedlichen Servern.

Werden Minuten verbraucht, wenn der Besucher das Mikrofon ablehnt?

Nein. Die Reihenfolge in `embed.js` ist: SDK laden, das Mikrofon mit `getUserMedia({audio:true})` anfordern und erst dann `widget-voice-session` aufrufen. Wenn die Person das Mikrofon ablehnt, wird die Sitzungsanfrage gar nicht erst gestellt, also wird auch keine signierte URL ausgegeben und es wird nichts verbraucht.

Kann er zuerst anrufen, nicht nur antworten?

Ja — Sammelanrufe, 1–10 gleichzeitig, Kontakte aus CSV, Wiederholungsversuche und Follow-up per SMS. Aber ausgehende Anrufe hängen vom Telefonanbieter ab, nicht nur von uns: In unserem Problemlog ist ein Fall dokumentiert, in dem die Vermittlungsstelle des Anbieters begonnen hat, bei allen ausgehenden Anrufen `403 Forbidden` zurückzugeben, bei unveränderter Konfiguration unsererseits und mit normal funktionierenden eingehenden Anrufen. Deshalb testen wir ausgehende Anrufe separat, bevor wir eine Kampagne versprechen.

In wie vielen Sprachen spricht er und in wie vielen wird er verwaltet?

Die Agentenkonfiguration unterstützt 32 Sprachen, die interne Sprachkarte hat 41 Einträge, und das Administrationspanel ist in 20 Sprachen übersetzt. Rumänisch ist die Standardsprache neuer Agenten.

Wird bei jeder Codeänderung automatisch veröffentlicht?

Nein, und das ist gut zu wissen, bevor Sie einen Start planen. Der GitHub-Workflow im Repo zielt auf ein Supabase-Cloud-Projekt, das gelöscht wurde, daher ist „push auf main = Veröffentlichung“ seit der Migration auf eigene Infrastruktur nicht mehr wahr. Die tatsächliche Veröffentlichung erfolgt per SSH, mit Kopieren und Neustart. Die praktische Konsequenz: Eine dringende Änderung braucht eine Person, nicht nur einen Commit.

Was passiert, wenn der Agent die Antwort nicht kennt?

Die Übergabe an einen Menschen ist Teil des Szenarios, keine Ausnahme. Jeder Agent hat schriftlich festgelegte Grenzen und einen konfigurierten Transferweg über die Telefonie; und im Gespräch gibt es Schutzmechanismen und Kriterien zur Bewertung des Erfolgs, gerade damit ein Fall außerhalb der Rolle gestoppt und nicht improvisiert wird.

Beispiel zur Veranschaulichung

Ein eingehender Anruf in der Nacht, der dort ankommt, wo er hingehört

Ein Nutzungsszenario, ohne Kundendaten oder zugeordnete kommerzielle Ergebnisse.

Ausgangssituation

Jemand ruft die geschäftliche Nummer um 23:40 Uhr an, außerhalb der Öffnungszeiten an der Rezeption.

Wie es funktioniert

Asterisk wendet nachts die Arbeitszeitregel an (zum Beispiel 22:00 → 06:00) und gleicht nach Priorität ab: SIP-Diversion-Header, dann die Kallina-Nummer, dann die Ersatzregel. Der Nachtagent antwortet über den in der Konfiguration gewählten Anbieter, klärt das Anliegen und ruft die Werkzeuge auf, die er verwenden darf.

Rezultatul

Der Anruf bleibt mit Transcript, Audioaufnahme, Dauer und nach Anbieter aufgeschlüsselten Kosten im Verlauf. Was die Rolle des Agenten überschreitet, wird gestoppt und weitergeleitet, statt improvisiert zu werden.

Was erforderlich ist:Die auf dem SIP-Trunk unserer Asterisk verbundenen Nummer, ausgehende Anrufe, die vom Betreiber erlaubt sind, sofern gewünscht, und Rückrufe, plus ein Agent mit Prompt, freigegebener Wissensdatenbank und schriftlich festgelegten Grenzen.

Möglichkeiten der Zusammenarbeit

Kallina, im Kontext Ihrer Organisation.

Information und Übernahme von Anfragen

Sprachunterstützung auf Basis genehmigter Informationen, mit Weiterleitung an einen Operator und klaren Regeln zur Aufzeichnung und Aufbewahrung der Gespräche.

Private Unternehmen

Wir definieren einen Pilot rund um einen realen Prozess: Nutzer, Daten, Integrationen, Kosten und Abnahmekriterien. Die Erweiterung erfolgt nach der Bewertung des Ergebnisses.

Institutionen und staatliche Unternehmen

Wir legen die Anforderungen an Zugänglichkeit, Hosting, Datenschutz und Interoperabilität fest. Jede Verbindung mit AGE- oder STISC-Diensten erfordert die Validierung der Berechtigung, des Zugriffs und der Genehmigungen.

Dies sind Anpassungsszenarien, keine Aussagen über bestehende Verträge oder Partnerschaften. Die vorgeschlagenen Funktionen werden im Arbeitsbereich des Projekts bestätigt.

Sprechen Sie über einen Pilot

Teil eines Ökosystems.

Was sollte bei Ihnen besser laufen?

Erzählen Sie uns von Ihrem Prozess. Gemeinsam legen wir fest, was sich zu bauen lohnt, was wir anbinden können und wie wir das Ergebnis prüfen.

Lassen Sie uns sprechen