Eine Mail, wie sie in der Haustechnik ankommt: „Lüftung Küche geht nicht, seit Freitag stinkt es, siehe Foto." Absender ist der Pächter, das Foto zeigt einen Lüftungsauslass mit Fettfilm. Jemand liest die Mail, überlegt, welche Anlage gemeint ist, sucht den Wartungsvertrag, schaut in die Leittechnik, ob dort ein Alarm ansteht, und ruft dann die Firma an. Bei mehreren solcher Mails am Tag ist der Vormittag weg, bevor irgendjemand einen Filter angreift.
Ich habe diesen Ablauf nicht gebaut. Ich habe ihn am Papier durchgezeichnet, weil er drei Dinge auf einmal braucht, die ich sonst nur getrennt kenne. Ein Entwurf, kein Erfahrungsbericht.
Drei Schichten, drei Fragen
Ein System, das so eine Mail bearbeitet, hat drei Schichten. Ganz vorne die Oberfläche: Mail rein, Antwort oder Ticket raus. In der Mitte die Verarbeitung: ein Sprachmodell, das die Mail liest und entscheidet, was als Nächstes passiert. Ganz hinten die Daten: Anlagendokumentation, Leittechnik, Ticketsystem, Firmenliste.
Die Mitte ist der schwierige Teil, weil das Modell dort drei verschiedene Fragen stellen muss:
- Was steht in den Unterlagen? Welche Anlage versorgt die Küche, wer hat den Wartungsvertrag, welche Filterklasse gehört hinein. Das steht in Dokumenten, und die ändern sich selten.
- Was ist gerade los? Läuft der Ventilator, ist ein Alarm anstehend, wie hoch ist der Druckverlust am Filter. Das steht in keinem Dokument, das steht in der Gebäudeleittechnik, und es ist in einer Stunde wieder anders.
- Was soll passieren? Ticket anlegen, Firma verständigen, Pächter antworten. Das ist keine Auskunft mehr, das ist eine Handlung.
In meinem Beitrag über die drei Formen der Automatisierung habe ich sie einzeln beschrieben. Hier kommen sie zusammen, jede auf ihrem eigenen technischen Weg.
Nachschlagen, abfragen, ausführen
Für die erste Frage nehme ich das, was ich für meine Wissensdatenbank gebaut habe: Die Unterlagen werden vorab zerlegt und durchsuchbar gemacht, zur Frage werden die passenden Abschnitte herausgesucht und dem Modell mitgegeben, das nur daraus antworten soll und die Fundstelle nennt. Erzwungen ist das nicht, prüfbar macht es erst die Fundstelle. Das Verfahren heißt Retrieval-Augmented Generation und wurde 2020 von Lewis und Kollegen beschrieben (arXiv:2005.114011). Der Punkt daran: Das Modell muss nichts über die Anlage wissen, es muss nur lesen können, was ihm vorgelegt wird.
Für die zweite Frage hilft kein Dokument, da braucht es eine Schnittstelle. Bei Anthropic heißt das Tool Use, bei OpenAI Function Calling. Der Ablauf ist bei beiden gleich beschrieben: Der Entwickler definiert eine Funktion samt Beschreibung, das Modell entscheidet in der Voreinstellung, ob es sie braucht, und gibt einen strukturierten Aufruf zurück; erzwingen oder sperren lässt er sich ebenfalls. Ausgeführt wird der Aufruf nicht vom Modell, sondern vom eigenen Programm, das das Ergebnis zurückschickt (Anthropic, Tool use overview2; OpenAI, Function calling3). Übersetzt: Das Modell sagt „frag die Leittechnik nach Anlage L03, Punkt Ventilator Zuluft", und mein Code macht die Abfrage. Das Modell hängt nie direkt an der Anlage.
Für die dritte Frage ist es technisch dasselbe Werkzeug. „Ticket anlegen" ist auch nur eine Funktion. Der Unterschied liegt in der Folge: Eine falsche Abfrage kostet meist nur eine Antwort, die nichts taugt, dazu Last auf der Leittechnik. Eine falsche Handlung steht in der Anlage.
Wo der Mensch stehen bleibt
Darum zeichne ich an einer Stelle einen Haltepunkt ein. Nachschlagen und abfragen darf das System allein, das ist Lesen. Das Ticket schreibt es fertig aus: Anlage, Firma, vermuteter Fehler, aktueller Zustand aus der Leittechnik, Fundstelle im Wartungsvertrag. Abgeschickt wird es erst, wenn jemand draufschaut und bestätigt. Aus Suchen und Telefonieren wird ein Blick auf einen fertigen Vorschlag.
Angenommen, das Modell ordnet die Küchenlüftung dem falschen Wartungsvertrag zu, weil im Gebäude zwei Anlagen mit ähnlichem Namen laufen. Ohne Haltepunkt bekommt die falsche Firma einen Auftrag und legt eine Rechnung. Mit Haltepunkt fällt es dem Menschen auf, weil die Fundstelle danebensteht.
Darauf achte ich beim Zeichnen:
- Jede Antwort aus den Unterlagen kommt mit Fundstelle, sonst kann niemand den Vorschlag prüfen.
- Jede Abfrage an die Leittechnik ist reines Lesen. Schreiben auf die Anlage kommt nicht ins System, die Gründe stehen im Beitrag über die falsch schaltende Steuerung.
- Jede Handlung nach außen hat einen Menschen davor. Nicht weil das Modell dumm wäre, sondern weil ein Fehler hier Geld kostet.
Ob die Zuordnung stimmt, also wie oft das System das richtige Gewerk und die richtige Firma trifft, ist eine eigene Frage, und die lässt sich nur messen. Wie ich das anlege, steht im Beitrag Woran man merkt, dass es funktioniert.
Quellen
- 1arXiv:2005.11401 arxiv.org
- 2Anthropic, Tool use overview platform.claude.com
- 3OpenAI, Function calling developers.openai.com