Een altijd actieve persoonlijke agent hoort zich niet te gedragen als een meldingenfeed met betere grammatica. Zijn taak is niet om zichtbaar te reageren op elke nieuwe e-mail, elk issue, elke prijswijziging, elke documentbewerking of elke agenda-update. Zijn taak is de wacht te houden terwijl jij met iets anders bezig bent, het kleine deel van de veranderingen te herkennen dat bepaalt wat er hierna moet gebeuren, en het juiste werk op het juiste moment en op het juiste niveau weer in beeld te brengen.
Daardoor is ‘wanneer moet de agent wakker worden?’ een ontwerpvraag en niet alleen een prestatievraag. Wordt hij te vaak wakker, dan wordt de agent nog een bron van ruis. Blijft hij te fanatiek stil, dan mist hij precies de reden waarom je hem liet meekijken. Handelt hij zonder duidelijke grens, dan wordt een nuttig achtergrondsysteem een bevoegdheidsprobleem.
Het juiste antwoord is een reeks beslissingen. Een nieuwe gebeurtenis verdient misschien geen reactie, een latere beoordeling, een beurt van de hoofdagent of jouw eigen oordeel. Dat zijn verschillende uitkomsten, en een betrouwbare agent hoort ze niet op één hoop te gooien.
Altijd actief hoort continuïteit te betekenen, geen onderbreking
‘Altijd actief’ is waardevol omdat de wereld zich niet in chatsessies organiseert. Een pull request kan mislukken nadat je je laptop hebt dichtgeklapt. Een leverancier kan een leverdatum wijzigen terwijl jij in een vergadering zit. Een contract kan drie dagen na het laatste gesprek erover worden getekend. Als de agent een doorlopende verantwoordelijkheid moet dragen, heeft hij continuïteit nodig over die gaten heen.
Continuïteit vraagt niet om voortdurend redeneren. De meeste gebeurtenissen zijn duplicaten, routinebevestigingen, irrelevante wijzigingen of informatie die later net zo nuttig is. Voor elke gebeurtenis een groot model wekken verspilt rekenkracht, maar de grotere kosten zitten in het gedrag: als elk ontwaken een bericht wordt, besteedt de agent de aandacht van de gebruiker alsof die gratis is.
Onderzoek naar meldingen op het werk vindt al lang dezelfde spanning. Mensen waarderen het om passief op de hoogte te blijven, maar meldingen verstoren de taak waar ze zich op richten. Onderzoek naar begrensd uitstel laat ook zien waarom ‘nu of nooit’ de verkeerde keuze is: een melding kan binnen een bekende grens worden uitgesteld, zodat je op de hoogte blijft zonder dat elke binnenkomst als dringend wordt behandeld.
Een altijd actieve agent hoort daarom drie klokken gescheiden te houden:
het moment waarop een gebeurtenis binnenkomt;
het moment waarop de agent erover moet redeneren;
het moment waarop de gebruiker het moet weten of moet beslissen.
Soms vallen ze alle drie op nu. Meestal niet.
Wakker worden is geen melding, en een melding is geen toestemming
De belangrijkste grens wordt gemakkelijk over het hoofd gezien. Een gebeurtenis detecteren, de hoofdagent wekken, de gebruiker inlichten en een externe actie uitvoeren zijn vier aparte stappen.
Stel dat Comma een pull request volgt. Er komt een nieuwe reviewopmerking binnen. Het bewakingsproces kan eerst bepalen of die opmerking iets relevants verandert. Zo ja, dan kan de hoofdagent wakker worden en de pull request, de discussie eromheen en de taak waar hij bij hoort bekijken. Misschien kan de agent een concept bijwerken of een fix voorbereiden zonder jou te onderbreken. Misschien moet hij je vertellen dat het mergevenster in gevaar komt. Of hij komt uit bij een beslissing – zoals het accepteren van een afweging rond beveiliging – die bij jou hoort.
Geen van die conclusies volgt uit alleen het binnenkomen van de opmerking.
Volgens deze scheiding is de architectuur van Comma bedoeld te werken. Een lichte Loop houdt de wacht en wekt de hoofdagent alleen als dat nodig is; de hoofdagent doet daarna het werk waarvoor context nodig is. De technische details, onder meer hoe Loops gebeurtenissen filteren, dubbel wekken voorkomen en binnen quota werken, staan in Programmeerbare event loops voor onze gedistribueerde agent-harness. Het principe voor de lezer is eenvoudiger: een gebeurtenis is bewijs, geen instructie, en wakker worden is een verzoek om te onderzoeken, geen toestemming om te handelen.
De vier tests om de hoofdagent te wekken
Een nuttig wekbeleid laat zich uitdrukken in vier tests. Het is geen scorekaart waarbij een hoog totaal automatisch wint. Elke test haalt een ander soort vals alarm weg.
1. Is er wezenlijk iets veranderd?
De eerste test gaat over toestand, niet over activiteit. Een nieuw bericht is activiteit. Een deadline die naar voren schuift, een blokkade die opduikt, een goedkeuring die binnenkomt of een beloofde voorwaarde die uitkomt, is een verandering van toestand.
De agent hoort stil te blijven als de nieuwe gebeurtenis herhaalt wat hij al weet, een bericht alleen bevestigt zonder het plan te veranderen, of buiten de verantwoordelijkheid valt die hij moet bewaken. Stabiele identificatoren en deduplicatie helpen op systeemniveau, maar semantische herhaling vraagt nog steeds om oordeel: twee verschillende berichten kunnen dezelfde ‘er is niets veranderd’ overbrengen.
Deze test voorkomt dat beweging zich voordoet als vooruitgang.
2. Raakt de verandering een actief doel of een actieve beperking?
Wat wezenlijk is, verschilt per persoon. Een lagere vliegticketprijs is op zich niet belangrijk; hij telt als hij onder het budget zakt dat de gebruiker heeft vastgesteld voor een reis die hij nog steeds wil maken. Een mislukte build betekent iets anders op een verlaten branch, een verkennende branch en een releasekandidaat.
De agent heeft het doel nodig, het huidige plan, de relevante beperkingen en genoeg herkomstinformatie om te weten waar die feiten vandaan komen. Zonder die context betekent ‘belangrijk’ al snel in het algemeen opvallend in plaats van specifiek nuttig.
Hier beschermt het bereik ook het vertrouwen. Een Loop die één repository volgt, hoort een terloopse verwijzing naar een ander project niet te veranderen in een nieuwe opdracht. Binnenkomende inhoud kan de bewaakte verantwoordelijkheid informeren; ze kan die niet stilletjes uitbreiden.
3. Is er een venster om te handelen?
Sommige veranderingen doen ertoe, maar hoeven niet nu te worden doordacht. Een rapport dat vrijdag wordt beoordeeld, kan wachten in een samenvatting. Een vertraagde zending wordt misschien pas relevant als die een afhankelijke gebeurtenis bedreigt. Daartegenover kan een geannuleerde vergadering die een schaars boekingsvenster vrijmaakt, of een regressie in productie die steeds meer gebruikers raakt, met elke minuut vertraging waarde verliezen.
De vraag is niet alleen ‘is dit dringend?’. De vraag is: levert nu redeneren een betere optie op dan later redeneren?
Zo ja, wek dan de hoofdagent. Blijft de informatie later net zo bruikbaar, stel haar dan uit tot een natuurlijk controlemoment of bundel haar met verwante updates. Is er geen actie mogelijk en verandert er geen plan, leg haar dan vast en blijf stil.
4. Van wie is de volgende beslissing?
Als de hoofdagent de context heeft verzameld, moet hij bepalen wie de bevoegdheid heeft voor de volgende stap.
Routinematig, omkeerbaar werk binnen de instructies van de gebruiker kan vaak doorgaan zonder onderbreking. De agent kan zijn taaknotities bijwerken, een vergelijking voorbereiden of een antwoord opstellen. Een beslissing met gevolgen, een dubbelzinnige beslissing of een beslissing die van voorkeuren afhangt, hoort terug te gaan naar de gebruiker. In Comma kan werk dat een menselijke beslissing nodig heeft wachten in Ter beoordeling, in plaats van op de gok te worden doorgezet of als klaar te worden gemarkeerd.
Goede escalatie is concreet. Ze zegt wat er veranderd is, waarom dat het plan verandert, wat de agent al heeft gecontroleerd, welke beslissing nodig is en wanneer die beslissing niet meer nuttig is. ‘Wat wil je doen?’ is geen overdracht; het is een onafgemaakte analyse.
Vier legitieme uitkomsten, niet alleen wakker of slapen
Na de tests heeft de agent vier nuttige reacties.
Stil blijven. Er is niets relevants veranderd, de gebeurtenis is een duplicaat of valt buiten de bewaking. Stilte hoort een bewuste conclusie te zijn met genoeg interne sporen om fouten te kunnen opsporen, niet het uitblijven van verwerking.
Uitstellen of bundelen. De verandering is relevant, maar haar waarde overleeft een vertraging. Voeg haar toe aan het volgende controlemoment van de taak, een briefing of een beknopte samenvatting. Uitstel heeft een grens nodig: ‘later’ hoort een bekend moment of een bekende voorwaarde te betekenen, geen achterstand zonder eigenaar.
De hoofdagent wekken. De gebeurtenis kan het plan veranderen, vraagt om bredere context of is te onzeker voor het lichte filter. Wekken is ook gepast als de uiteindelijke uitkomst stilte is; de hoofdagent kan onderzoeken en concluderen dat er geen bericht aan de gebruiker nodig is.
De controle teruggeven aan de gebruiker. De agent is uitgekomen bij een beslissing waarin bevoegdheid, risico, smaak of een afweging zit die alleen de gebruiker kan maken. Hij hoort het werk dat al gedaan is te bewaren en de kleinste beslissing voor te leggen die de voortgang vrijmaakt.
Dit model met vier uitkomsten maakt onzekerheid beheersbaar. Een bewakingsproces hoeft geen zekerheid te veinzen als het bewijs zwak is. Het kan de hoofdagent wekken voor een grondigere controle. De hoofdagent hoeft op zijn beurt geen autonomie te verzinnen als een beslissing bij de gebruiker hoort.
Zekerheid hoort de route te veranderen, niet de gebeurtenis te verbergen
Een altijd actief systeem zit er soms naast. De gevaarlijke fout is niet alleen een vals alarm; het is een gebeurtenis die vol zelfvertrouwen wordt weggedrukt en die de gebruiker nooit meer kan terughalen.
De standaardhouding van Comma weerspiegelt die asymmetrie. Wanneer Loops Jev gebruiken om een gevolgde pull request, een issue of een thread te screenen, vraagt ‘stil blijven’ om een hoge zekerheid. Onzekerheid en fouten gaan naar de hoofdagent, die de instructie heeft de bron te controleren voordat hij de gebruiker schrijft. Jev kan classificeren; het kan geen berichten sturen, geen externe toestand veranderen en zichzelf geen extra toegang geven. Het huidige gedrag en de grenzen staan beschreven in Maak kennis met Salix, de agent-harness van Comma en in de documentatie over Loops.
Dat ontwerp neemt fouten niet weg. Een zelfverzekerde maar verkeerde beslissing om stil te blijven kan nog steeds een update verbergen. Het zet onzekerheid wel op de veiligere route: grondiger onderzoek in plaats van stil wegzetten. Gebruikers horen een bewaking ook te kunnen pauzeren of verwijderen, het bereik te kunnen verkleinen en operationele toegang terug te kunnen nemen. Een agent verdient het recht om op de achtergrond aanwezig te zijn door die aanwezigheid controleerbaar en omkeerbaar te maken.
Een goede onderbreking komt met het werk al gedaan
De waarde van een altijd actieve persoonlijke agent is niet dat hij dingen eerder opmerkt dan jij. Monitoringtools doen dat al. De waarde is dat hij de verandering kan koppelen aan een actieve verantwoordelijkheid en het werk dat jij nog moet doen kan verkleinen.
Inhoudelijk zou een nuttige onderbreking er zo uit kunnen zien:
De reviewer vraagt om een wijziging in de authenticatiestroom. Die blokkeert het releasecriterium dat je voor donderdag hebt gesteld. Ik heb de huidige branch bekeken en het probleem gereproduceerd. Ik heb een patch en tests voorbereid; de afweging rond compatibiliteit goedkeuren is de enige beslissing die ik van je nodig heb voordat ik hem toepas.
Dat bericht bevat context, gevolgen, afgerond onderzoek, een voorgestelde volgende stap en een duidelijke beslisgrens. Het vraagt de gebruiker niet om zelf te reconstrueren waarom de gebeurtenis ertoe doet. Het verwart ook geen aannemelijke volgende actie met toestemming om die uit te voeren.
Dezelfde maatstaf geldt als de agent besluit niet te onderbreken. Een uitgestelde update hoort op het beloofde controlemoment terug te komen. Een beslissing om stil te blijven hoort controleerbaar te blijven. Een taak die een oordeel nodig heeft, hoort zichtbaar te wachten en niet te verdwijnen in een eindeloos gesprek.
Het doel is rustige continuïteit
Een altijd actieve agent hoort continuïteit te bieden zonder voortdurende aandacht te vragen. Het buitenste systeem bewaakt goedkoop en smal. De hoofdagent wordt wakker als een verandering het plan kan wijzigen. Hij onderzoekt voordat hij onderbreekt. Routinematig, omkeerbaar werk zet hij voort als de gebruiker de bevoegdheid al heeft gegeven, en keuzes met gevolgen geeft hij terug met het relevante werk erbij.
De ervaring die dat oplevert, is niet die van een agent die meer praat. Het is een agent die verantwoordelijk kan blijven terwijl hij stil is, en precies weet wanneer stilte niet langer nuttig is.
Veelgestelde vragen
Wat draait er voordat de hoofdagent wakker wordt?
In Comma bewaakt een lichte Loop de gekozen inbox, repository, feed, API of webhook. Zijn programma kan deterministische regels toepassen en Jev om een snelle, getypeerde beslissing vragen. De hoofdagent en zijn grotere context draaien alleen als de Loop een wekverzoek stuurt voor dieper onderzoek of actie.
Moet elk ontwaken van de agent een melding voor de gebruiker worden?
Nee. Door wakker te worden kan de hoofdagent de context bekijken en bepalen wat de gebeurtenis verandert. Hij kan werk op de achtergrond voortzetten, een update uitstellen of concluderen dat de gebruiker niet hoeft te worden onderbroken. De aandacht van de gebruiker hoort alleen te worden gevraagd als op de hoogte zijn of beslissen tijdgevoelig is.
Wat moet er gebeuren als de agent onzeker is?
Onzekerheid hoort de gebeurtenis door te sturen naar een capabelere beslisser. Een licht filter kan de hoofdagent wekken; de hoofdagent kan de bron controleren, context verzamelen en binnen zijn bevoegdheid doorgaan of de gebruiker vragen. Onzekerheid hoort niet te worden omgezet in een zelfverzekerde beslissing om stil te blijven of in een actie zonder toestemming.
Hoe kan een gebruiker een altijd actieve bewaking stoppen?
In Comma kun je vragen een Loop te pauzeren of te verwijderen. Ook kan de toegang tot gekoppelde computers weer op alleen-lezen worden gezet door operaties uit te schakelen. Een altijd actieve verantwoordelijkheid hoort altijd een begrijpelijk bereik, een zichtbare status en een praktische uitknop te hebben.
Maak van een signaal een nuttige volgende stap
Begin met één bron van gebeurtenissen en schrijf op wat je plan wezenlijk zou veranderen, hoe lang het venster om te handelen openstaat en welke beslissing van jou moet blijven. Bekijk de Agent van Comma om te zien hoe proactieve aandacht aansluit op taken en beoordeling, of lees de documentatie over Loops voor het huidige bewakingsmodel en de grenzen ervan.


