Us vs. Them
Us vs. Them is een bibliotheek en CLI-tool die de herkomst (provenance) van tekst op regelniveau analyseert om onderscheid te maken tussen menselijk auteurschap en inhoud gegenereerd door AI-agents.
Het Probleem
Bij het gebruik van AI-agents voor coderen en bewerken ontstaat het risico dat waardevolle, door mensen geschreven tekst (die als 'heilig' wordt beschouwd) per ongeluk wordt overschreven door laagwaardige AI-gegenereerde inhoud ('slop'). De tool helpt om vast te leggen welke delen van een document beschermd moeten blijven.
Werking
Het systeem werkt met standaard platte tekst (zoals Markdown) zonder dat er speciale markeringen nodig zijn. Door gebruik te maken van versiegeschiedenis en diffing, identificeert de tool 'eilanden' van menselijke tekst in een 'zee' van machine-gegenereerde content.
Gebruik
De tool kan worden geïnstalleerd via make install en is specifiek bruikbaar binnen Git-repositories. Met parameters zoals --ours of --theirs kan de gebruiker definiëren wie als mens wordt beschouwd. De output resulteert in een lijst met regelbereiken en een score:
- 1.0: Volledig door mensen geschreven.
- 0.0: Volledig door een agent geschreven.
- Tussenwaarden: Oorspronkelijk menselijk, maar gedeeltelijk gewijzigd door agents.
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.
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.