De Belofte Die U Vergeten Was (Stark Niet)

Ergens in het dossier van een klant, midden in een gewone notitie over een gewoon telefoontje, staat een zin als deze: “Budget is momenteel krap, afgesproken dat we over twee maanden weer contact opnemen om het opnieuw te bekijken.”

Eén keer geschreven. Nooit meer bekeken. Niet omdat iemand vergat dat het belangrijk was, maar omdat er niets aan was dat op een taak leek. Het was geen agenda-item. Het was geen herinnering. Het was gewoon een zin, die deed wat zinnen in notities doen: daar zitten, technisch waar, functioneel onzichtbaar.

We wilden weten of het systeem zoiets zelf kon opmerken, zonder dat iemand hoefde te onthouden om terug te gaan en de zin met de hand in een taak om te zetten.

Wat we eigenlijk gebouwd hebben, en wat bewust niet

De instinctieve aanpak bij zo’n functie is de AI het hele proces te laten doen — de notitie lezen, de datum bepalen, beslissen dat het te laat is, misschien zelfs het opvolgbericht opstellen. Wij hebben dat juist bewust gesplitst.

Het enige werk van het model is taalbegrip: de recente notities van een klant lezen en een toekomstgerichte toezegging herkennen, zoiets als “we bekijken het over twee maanden opnieuw” of “we nemen contact op na hun bestuursvergadering.” Het schat de impliciete vertraging in gewone taal in. Meer niet. Elke daadwerkelijke datumberekening — de vervaldatum, of vandaag die al voorbij is — gebeurt daarna in gewone, deterministische code. Het model rekent nooit en neemt nooit de uiteindelijke beslissing over wat te laat is. Het leest. De code beslist.

Die scheiding is belangrijker dan ze klinkt. Taalbegrip is precies het soort vage, contextafhankelijke taak waar een model goed in is. Datumberekening is precies het soort taak waarbij u niet wilt dat een model improviseert, ook maar een beetje.

De echte test

We hebben niet alleen gecontroleerd of het endpoint iets redelijk ogends teruggaf. We schreven een echte notitie op een echt klantdossier: “…afgesproken dat we over 2 maanden weer contact opnemen om het budget opnieuw te bekijken.” We riepen het endpoint aan. Het haalde de toezegging correct eruit, berekende een impliciete vertraging van 60 dagen, en kwam uit op een vervaldatum precies 60 dagen na de echte tijdstempel van de notitie, correct gemarkeerd als nog niet te laat.

Klein, en dat is precies het punt. Het systeem hoefde niet te horen dat er een toezegging te vinden was. Het las een zin die iemand voor zichzelf had geschreven, niet voor een formulier, en haalde er een echte deadline uit.

Het deel dat je makkelijk over het hoofd ziet

Notities in Craft11 zijn append-only. Niemand bewerkt ze, niemand verwijdert ze, zelfs Stark niet. Het is hetzelfde principe dat de ruwe kant van elk dossier eerlijk houdt: wat u daadwerkelijk hebt geschreven, blijft precies zoals u het geschreven hebt. Toen we de testnotitie later moesten verwijderen, was er geen verwijderknop om naar te grijpen, want die hoort er niet te zijn. Er was een directe database-ingreep nodig, eerst bevestigd, meteen daarna weer ongedaan gemaakt.

Dat is voor ons een klein ongemak tijdens het testen. Het is precies dezelfde reden waarom de toezeggingsdetectie überhaupt betrouwbaar is: ze leest echte, onveranderde, ongeschoonde menselijke tekst, geen opgeschoonde versie ervan.

Waarom dit sowieso de moeite waard is

Niets hiervan vervangt een takenbeheerder. Het vervangt het specifieke, stille faalpatroon waarbij de enige vastlegging van een belofte een zin is die niemand ooit opnieuw zal lezen. Het systeem hoeft niet dat u anders schrijft, uw notities structureert, of onthoudt om iets te markeren. Het heeft alleen nodig dat u opschrijft wat er daadwerkelijk gebeurd is, zoals u het voor uzelf zou opschrijven, en het merkt het zelf op.

Vragen die mensen echt stellen

Bepaalt de AI de daadwerkelijke vervaldatum, of merkt ze alleen op dat er een belofte bestaat?

Bewust precies in tweeën gesplitst. De AI doet alleen taalbegrip: een notitie lezen en een toekomstgerichte toezegging herkennen, en vervolgens de impliciete vertraging in gewone taal inschatten — over twee maanden wordt ongeveer 60 dagen. Elke daadwerkelijke datumberekening, de vervaldatum, of iets te laat is, gebeurt daarna in gewone code. Het model rekent nooit en neemt nooit de uiteindelijke beslissing.

Wat gebeurt er als de AI geen toezegging kan vinden, of de aanroep mislukt?

Dan wordt een lege lijst teruggegeven. Geen provider ingesteld, een time-out, een misvormd antwoord — dat alles faalt veilig naar niets, in plaats van te gokken naar een toezegging die er niet is, of u een foutmelding voor te schotelen.

Kan Stark automatisch actie ondernemen op de toezegging, zoals een opvolgbericht versturen?

Nee. Hij laat de toezegging en de berekende datum zien. Een mens beslist nog altijd wat, als er al iets moet gebeuren, er moet gebeuren.

Word lid van de Early Crew →← Terug naar alle stukken

Recorded on a live database and a live screen, but run by automated scripts standing in for a human's clicks and typing, not performed live. When Stark answers faster than the script expects, the screen can hold still for a beat before the next step starts. That's left in on purpose. The goal was never a polished demo reel, it was proof the feature actually works. Dejan's own verdict, after watching the raw footage: rough, but the best demo video we've made.