VoltStream Mobility — eine Eichrecht-Engine, mit einem Agenten, der kein Recht erfinden kann
Ein CRM für einen deutschen Ladeinfrastruktur-Anbieter, gewachsen zu einer MessEG/MessEV-Compliance-Engine — mit einem Agentforce-Agenten als Oberfläche und einem deterministischen Gate, das ihn daran hindert, Recht zu zitieren, das keine Action geliefert hat.
- Jahr
- 2026
- Rolle
- Salesforce Developer
- Technologien
- Agentforce (Agent Script)GenAiPlannerBundleAgentforce Testing Center (aiEvaluationDefinition)Apex (Batch, Schedulable, @InvocableMethod)Custom Metadata Types (legal corpus)External Credentials + Named CredentialsLightning Web ComponentsTrigger Framework (Kevin O’Hara)Selector patternOpenStreetMap Overpass APIOCPI (Open Charge Point Interface)GitHub Actions (split CI)MessEG / MessEV (German calibration law)
Eckdaten
- Die Engine entscheidet, der Agent erklärt — der rechtliche Status pro Datensatz ist ein Formelfeld, nach dem man eine Listenansicht sortieren kann; Chronologie, die eine Formel nicht ausdrücken kann, ist Apex. Auf der Seite des Agenten existiert keine Datumsarithmetik
- Das wurde gemessen, nicht vermutet: Während des Builds beantwortete der Agent dieselbe Frage zweimal und gab zwei verschiedene falsche Antworten — beide aus seinen eigenen Instruktionen, weil eine falsch konfigurierte Action nie lief. Beide Male klang es auf Deutsch korrekt (ADR-009)
- Transkript-Gate — jeder §, den der Agent nennt, muss in dem vorkommen, was eine Action zu dieser Frage zurückgegeben hat. Kein Modell, kein Embedding, kein Schwellenwert: binär. Das Gate weist bei jedem Lauf nach, dass es fehlschlagen kann
- 25 echte Berliner Ladepunkte live aus OpenStreetMap importiert — jeder einzelne ergibt UNBEKANNT, weil keine öffentliche Ladepunkt-Datenbank das führt, was das deutsche Eichrecht verlangt
- Das Recht ist versionierte Metadata: 16 Vorschriften als Custom Metadata mit wörtlichem Wortlaut und Gültigkeitsdaten. Zwei Datensätze sind bewusst ohne Text, weil das Original nicht gelesen wurde
- Das Referenzdatum ist ein Parameter, nie TODAY() — so kann ein Test den letzten rechtmäßigen und den ersten unrechtmäßigen Tag auf identischen Datensätzen prüfen
- 191 Testmethoden in 27 Testklassen, aus dem Quellcode gezählt (Aug 2026), über 24 Produktionsklassen
- Geteilte CI: die deterministische Hälfte läuft bei jedem Push und kostet nichts; das Agent-Gate läuft auf Anforderung
- 18 Architecture Decision Records — darunter einer, der ein Formelfeld behält, das in einem Fall bekannt falsch ist, mit einem Test, der die Abweichung festschreibt
- Ein Abschnitt „Honest limits“ benennt, was das Gate nicht fängt: einen falschen Absatz innerhalb eines richtigen Paragrafen
Das Problem
Das Eichrecht entscheidet, ob ein Ladepunkt rechtmäßig abrechnen darf. Die Antwort hängt an Daten — Inverkehrbringen, Eichung, Nacheichung — und eine falsche Antwort in fließendem Deutsch ist schlimmer als keine, weil sie geglaubt wird. Während des Builds hat der Agent genau das gezeigt: zweimal dieselbe Frage, zwei verschiedene falsche Antworten, beide aus seinen eigenen Instruktionen — weil eine falsch konfigurierte Action nie lief.
Architektur
Trigger → Handler → Helper → Selector auf dem Kevin-O’Hara-Framework, mit der Rechts-Engine als reiner Funktion ihrer Eingaben — das Referenzdatum ist ein Parameter, nie TODAY(). Agentforce sitzt darüber über invocable Actions, die Datensätze auflösen, die Engine aufrufen und deren Sätze unverändert zurückgeben. Das OCPI-Token liegt in einer External Credential und wird von Apex nie gelesen.
Der Ansatz
Die Engine entscheidet, der Agent erklärt. Der rechtliche Status pro Datensatz ist ein Formelfeld in der Listenansicht; Chronologie, die eine Formel nicht ausdrücken kann, ist Apex. Der Agent wählt nur, welche deterministische Prüfung läuft, und erzählt das Ergebnis auf Deutsch. Ein Gate prüft danach, dass er seinen Platz gehalten hat: jeder genannte Paragraf muss in dem vorkommen, was eine Action zurückgegeben hat. Das Recht selbst sind 16 Custom-Metadata-Datensätze mit wörtlichem Wortlaut und Gültigkeitsdaten — deployt, nicht eingetippt.
Das Ergebnis
25 echte Berliner Ladepunkte wurden live aus OpenStreetMap importiert — ohne API-Key, ohne Account — und jeder einzelne ergibt UNBEKANNT, weil keine öffentliche Datenbank führt, was eine eichrechtliche Frage verlangt. Das ist der Befund, nicht eine Lücke der Demo. 191 Testmethoden in 27 Testklassen decken 24 Produktionsklassen ab.