Lösungen · Transport & Logistik
Wenn der Kunde fragt, wo das Paket ist, rät der Agent nicht: Er ruft den Kurier an, fragt ihn und kehrt mit der Antwort zurück.
Sprachgestützte Disposition, als Mechanismus gebaut, nicht als Versprechen: eine Tabelle mit expliziten Zuständen, drei Versuche im Abstand von zwei Minuten, das Anrufergebnis strukturiert geschrieben und ein Filter, der die Nummer des Fahrers aus allem entfernt, was das Modell erreicht, damit sie dem Kunden nicht angesagt werden kann.
Bereits gebautDer Dispositionsmechanismus ist in unsere Sprachplattform geschrieben und dorthin migriert: die Tabelle `courier_calls` mit sieben möglichen Zuständen, drei impliziten Versuchen, einer Pause von 120.000 ms dazwischen und dem Anrufergebnis, strukturiert gespeichert, plus fünf Serverfunktionen, die sie verwenden — die Einleitung des Anrufs zum Kurier, die Ergebnisprüfung, der Besen für hängengebliebene Anrufe, die Identifizierung des Rückrufenden und der Webhook nach dem Anruf. Die zweite Implementierung ist der für einen Transportkunden geschriebene Ausstiegsfilter, der die Kontaktdaten des Fahrers rekursiv aus dem Ergebnis des Werkzeugs entfernt und die Nummern der Disposition beibehält. Die Reserve, vorweg gesagt: Der Telefonteil läuft über einen SIP-Host, und der Host, über den unsere Testleitungen laufen, antwortet zum Zeitpunkt des Schreibens nicht — wir geben Ihnen keine Vorführnummer, die wir vor Ihnen nicht abheben könnten.
In einem Transport- oder Lieferunternehmen sind die meisten eingehenden Anrufe dieselbe Frage, von verschiedenen Menschen gestellt: Wo ist die Ware, wann kommt sie an, warum ist sie nicht angekommen. Die Antwort steht nicht in einem Dokument und nicht in einem System — sie steckt im Kopf des Fahrers, der fährt. Der Disponent stellt die Verbindung her: Er nimmt den Anruf des Kunden entgegen, ruft den Fahrer an, kommt zum Kunden zurück. Diese Arbeit beschäftigt einen ganzen Menschen und wird hundertmal am Tag erledigt, mit denselben drei Sätzen.
Wir haben genau diese Kette gebaut, als Mechanismus mit Zuständen, nicht als Marketingfunktion. Ein Agent spricht mit dem Kunden. Wenn er eine Antwort braucht, die er nicht hat, ruft er eine Funktion auf, die einen zweiten Anruf startet — an den Kurier — verknüpft mit der Konversation, aus der er hervorgegangen ist. Dieser Anruf hat seine eigene Zeile in einer Tabelle, mit Status, der durch `calling`, `in_progress`, `retrying`, `completed`, `failed`, `no_answer`, `timeout` läuft, mit der Nummer des Versuchs, mit maximal drei Versuchen und einer Pause von zwei Minuten dazwischen. Das Ergebnis wird strukturiert geschrieben: die Zusammenfassung dessen, was der Kurier gesagt hat, die voraussichtliche Zeit, die Position.
Der leicht zu übersehende Teil, den wir als Anforderung und nicht als Vorsichtsmaßnahme behandeln: Die Telefonnummer des Fahrers darf den Kunden nicht erreichen. Das ist keine Anweisung, die im Prompt des Agenten steht, denn eine Anweisung in einem Prompt kann umgangen werden. Es ist ein Filter, der das Ergebnis des Werkzeugs rekursiv durchläuft und die Kontaktdaten des Fahrers entfernt, bevor dieses Ergebnis das Modell erreicht — wobei die Nummern der Disposition erhalten bleiben. Was entfernt wurde, kann nicht angesagt werden, unabhängig davon, wie der Agent gefragt wird.
Und die wichtigste Grenze ist eine der Infrastruktur, nicht der Intelligenz: Ein Sprachagent am Telefon hängt von einem SIP-Host zwischen Ihrem Betreiber und der Plattform ab. Wenn dieser Host ausfällt, gehen die Anrufe nicht durch, und die Signatur des Fehlers ist erkennbar — abgelaufene Anfrage, leere Anruf-ID, Dauer null. Der Host, über den unsere Testleitungen laufen, antwortet zum Zeitpunkt des Schreibens dieser Seite nicht. Im Web ist der Sprachweg heute überprüfbar; am Telefon ist der erste Schritt jeder Arbeit, festzustellen, auf welchem Host Ihre Nummern eingehen.