Blog
Notities over het harness, de modellen eronder en wat er verandert als er een nieuw model verschijnt.
Geheugensynchronisatie zonder last-write-wins
Twee machines, één set notities, en een ervan is bewerkt terwijl de andere sliep. Elk synchronisatiesysteem heeft hier een antwoord op, en de meeste antwoorden met een vergelijking van tijdstempels die stilletjes één kant weggooit. Voor een concept dat je opnieuw kunt typen is dat prima. Voor het bestand dat een agent vóór elke beurt leest is het dat niet, want wat er wordt weggegooid, is de regel die je schreef om te voorkomen dat iets nog eens gebeurt.
Model-id's horen niet in TypeScript
Een model-id is het snelst veranderende gegeven in dit hele systeem. Aanbieders hernoemen ze, trekken ze in, brengen een gedateerde variant uit, veranderen stilletjes waar de ongedateerde alias naar verwijst, en schermen de helft af op basis van welk account erom vraagt. Compileer dat in een package en je weet zeker dat het package binnen een paar weken niet meer klopt — niet kapot op een duidelijke manier, wat op zijn minst een bugmelding zou opleveren, maar fout op precies die manier waarbij een keuzelijst iemand een model aanbiedt dat zijn sleutel niet kan aanroepen.
Een deny-regel is de enige grens die je krijgt
Al het andere dat een agent-harness een permissie noemt, is een afweging van kosten. Dat is het waard om ronduit te zeggen, want de interface zegt het niet: een goedkeuringsvraag, een modus die Auto heet en een instelling voor schrijfbare roots lijken allemaal hetzelfde soort ding, en maar één ervan is een grens die het systeem hoe dan ook bewaakt.
Midden in een sessie van model wisselen kost niets
En dat is een ontwerpbeslissing, geen feature. De meeste agent-tooling wordt voor één aanbieder geschreven en daarna aan andere aangepast. Die volgorde klinkt als een implementatiedetail. Het is de hele kwestie.