Us vs. Them

Het probleem

Bij agent-gestuurd coderen en bewerken wordt herkomst (provenance) een relevante vraag. Tekst die door een mens is geschreven of bewerkt, zou als bijna heilig moeten worden beschouwd: een agent zou terughoudend moeten zijn en een zeer goede reden moeten hebben om deze aan te passen. De 'slop' (inhoud van lage kwaliteit) die een andere agent heeft geproduceerd, is daarentegen volledig vrij om te wijzigen.

Enkele use-cases hiervoor:

  • Neem een app die grotendeels via vibecoding is gebouwd, waarin je bepaalde delen in de code wilt vastleggen waar je jouw ideeën en eigenaarschap wilt bevestigen. Je wilt zeker niet dat een andere agent dit stuk code in de volgende sessie wegvaagt.
  • Een README.md die oorspronkelijk door een AI is gegenereerd, maar waarvan jij de openingsalinea's hebt herschreven. De agent moet zich vrij voelen om delen verderop in het document opnieuw te doen of aan te vullen, maar moet echt twee keer nadenken voordat hij iets in de opening verandert.

Hoe het werkt

De belangrijkste beperking waarbinnen dit systeem moet werken, is dat er geen specifieke markering van de tekst vereist mag zijn. Alomtegenwoordige platte tekst (markdown) moet ondersteund worden zoals het is.

Het enige waar gebruik van wordt gemaakt, is dat elke nieuwe versie van een tekst is gemaakt onder een identificeerbare auteurschap — dat van een mens of dat van een agent.

De output van een evaluatie over een gegeven tekst is een set bereiken: "eilanden" van door mensen geschreven regels in een "zee" van door machines gegenereerde tekst. Technisch gezien is dit gebaseerd op eenvoudige diffing; dit is de leidende metafoor voor de ontwikkeling van het algoritme. Er wordt niet alleen getracht het auteurschap van individuele regels te volgen, maar dat van betekenisvolle, coherente stukken tekst.

Het samenvoegen, splitsen en verwatten van auteurschap zijn gedragingen die in rekening zijn gebracht, ook op een manier die voorkomt dat alles convergeert naar een volledige zee of een volledig eiland.

Gebruik

Om us-vs-them als CLI-tool te gebruiken, is bbin nodig voor een lokale installatie:

make install

Een git-repository is in feite al een geschiedenis van versies die elk een herkomstmarker dragen — elke revisie van het bestand, in chronologische volgorde, met de auteur van de wijziging.

Om het overal binnen een git-repository te gebruiken:

us-vs-them --ours dan@eighttrigrams.net README.md

Dit levert een lijst op zoals:

  • 1-3 0.00
  • 4 1.00
  • 5-7 0.00
  • 8-20 0.46
  • 21-164 0.00

Hierbij betekent:

  • 1.0: een volledig door mensen geschreven bereik.
  • 0.46: een oorspronkelijk door mensen geschreven bereik, dat tot op zekere hoogte door agents is gewijzigd.
  • 0.00: volledig door een agent geschreven.

Parameters:

  • --ours: deze personen zijn de mensen; iedereen anders wordt beschouwd als een agent.
  • --theirs: dit zijn de agents; iedereen anders wordt beschouwd als mens.

Kies de parameter voor de zijde met de kortste lijst. Het gelijktijdig doorgeven van beide argumenten zal worden geweigerd.

Ontwikkeling

make test

De beste manier om het gedrag te begrijpen is door een blik te werpen op caution_test.clj.