LVLZ hat zwei Zugänge. Du kannst deinem Agenten schreiben oder den Workspace in der Web-App öffnen. Wir haben früh eine Regel aufgestellt: Alles, was in dem einen geht, geht auch im anderen. Dieser Beitrag erklärt, wie wir dieses Versprechen halten, ohne uns auf Gedächtnis und gute Absichten zu verlassen.
Warum Parität zählt
Wenn die App ein Projekt archivieren kann, der Agent aber nicht, lernst du, den Agenten nicht zu fragen. Wenn der Agent eine Routine einrichten kann, die App sie aber nicht anzeigt, hörst du auf, der App zu vertrauen. Jede Lücke bringt dir bei, das Produkt zu umgehen. Parität heißt, dass du dich nie fragen musst, welche Seite was kann.
Eine Definition pro Funktion
Jede Operation, etwa eine Aufgabe anlegen, eine E-Mail senden oder eine Browser-Aufgabe starten, wird einmal in einem gemeinsamen Register definiert. Eine Definition enthält:
- einen stabilen Schlüssel, etwa
task.create, - ein typisiertes Schema für ihre Eingabe,
- wie sie abgesichert ist (ob sie deine Freigabe braucht),
- welche Oberflächen sie anbieten,
- ein Beispiel dafür, wie du sie in einfachen Worten anfragen würdest.
Aus dieser einen Definition erzeugen wir das Werkzeug, das der Agent aufruft, den HTTP-Endpunkt, den die App aufruft, und den Eintrag in einem Manifest. Derselbe Handler bedient Agent und App, das Verhalten ist also schon durch die Konstruktion identisch.
Eine Prüfung, die den Build scheitern lässt
Definitionen allein garantieren noch keine Parität, denn jemand muss jede Seite noch umsetzen. Deshalb führt unser Build eine Paritätsprüfung aus. Ist eine Funktion als live markiert, aber eine Seite hat eine ihrer Operationen nicht umgesetzt, scheitert der Build. Ist eine Operation überall umgesetzt, aber noch als „bald“ markiert, scheitert der Build ebenfalls, damit der öffentliche Status der Realität nicht hinterherhinkt.
Die Website liest dieselbe Liste
Das Manifest speist auch diese Website. Die Funktionsseite und jede Seite darunter listen jede Funktion mit ihrem Status, Live, Bald oder Später, und wo sie läuft: in der App oder auf WhatsApp. Wenn wir etwas ausliefern, aktualisiert sich die Seite beim nächsten Deployment. Wenn wir schreiben, dass etwas kommt, dann weil das Register es sagt.
Was das für dich bedeutet
Du lernst LVLZ einmal. Was du in der App findest, kannst du per Nachricht anfragen, und was der Agent tut, findest du in der App. Und wenn du unsere Funktionsliste liest, liest du den Code.