Aeva
Een persoonlijke AI-agent met een geheugen in git. Dagelijkse briefings, één takenlijst, en context die elke Claude-sessie kan lezen. Voor één gebruiker: ik.
Het probleem
Ik heb meerdere projecten tegelijk lopen en ik ben van nature een snelle prototyper: ik werk in korte, intense uitbarstingen en ga daarna verder. De prijs is continuïteit. Werk dat in de ene sessie besproken is, verdampt voor de volgende. Taken staan op zes plekken, en dat betekent dat ze nergens staan. Elke AI-sessie begint bij nul en ik leg mezelf opnieuw uit.
Ik wilde een assistent die onthoudt. Geen chatvenster maar een systeem met een geheugen dat van mij is, dat ik elke ochtend lees, en dat me vertelt wat vandaag echt telt.
Wat het doet
Aeva is een persoonlijke agent waar ik op Telegram mee praat. Noem ik werk terloops, dan wordt het een taak in één lijst. Vraag ik "wat is het volgende", dan komt het antwoord uit de werkelijke stand van de projecten. Om 07:30 komt er een briefing binnen met openstaande taken, GitHub-activiteit over de actieve repos en één voorgestelde focus. Om 18:00 een terugblik: wat er bewogen is, wat vastzit, en de enige prioriteit van morgen. Er is één webpagina, /today, en die is niet aanklikbaar.
Het geheugen is een privé git-repo vol markdown. Elke schrijfactie is een commit. Ik kan het lezen, diffen, en meenemen naar elders.
Het lastige deel
Een assistent die onthoudt moet één waarheidsgetrouw verslag van mijn werk vasthouden, over een telefoon, een desktop en een stuk of wat AI-tools die allemaal denken dat zij de leiding hebben. De voor de hand liggende aanpak is de onderdelen losjes aan elkaar knopen en elk ervan laten schrijven wanneer het wil. Die versie bouwde ik als eerste, en hij faalde op de slechtst denkbare manier: geruisloos. Verbindingen braken zonder het te melden, twee dingen schreven tegelijk, en ik was meer tijd kwijt aan het onderhouden van de assistent dan dat hij mij hielp.
Dus de herbouw begon bij de post-mortem in plaats van bij de featurelijst. Eén schrijver tegelijk. Elke storing luid genoeg om me te onderbreken, want een stille kost uren voordat ik hem opmerk. En een harde bovengrens aan hoeveel machinerie de kern mag bevatten, want de vorige versie is aan zijn eigen omvang bezweken. Het is één TypeScript-service die op Claude draait, en hij hoort klein te blijven.
Waar het nu staat
De eerste versie groeide sneller dan ik hem kon overzien, en viel stil in plaats van hard te breken. Toen ik terugkwam was dat om bij de post-mortem te beginnen, niet bij wat de oude bouw had achtergelaten.
Aeva is in ontwikkeling en nog niet in gebruik. De geheugenlaag is gebouwd en draait in echte sessies, zodat context tussen sessies meegaat in plaats van opnieuw uitgelegd te worden. De kern staat in de steigers en wacht. Voor versie één heb ik bewust een lat gelegd: veertien dagen achter elkaar waarin de ochtendbriefing op tijd binnenkomt en niets geruisloos misgaat. Die lat is nog niet gehaald, en ik laat hem liever ongepubliceerd tot dat wel zo is.
Volgend project
BPMN-stijlgids