Skip to content

Verifikatoren som tok verifikatoren

Før en dokumentasjons-commit prøver en annen agent, uten minne om arbeidet, å motbevise hver påstand i den. På første skarpe kjøring fant den tre reelle feil i én endring, deriblant en «rettelse» som selv var feil.

  • Agentisk koding
  • Evals
  • Claude Code
  • Metode

Regel 1 i slik jobber jeg med kodeagenter er at en konklusjon forlater økten først etter at den billigste motprøven har kjørt. Det svake punktet er hvem som kjører den. En agent som sjekker sin egen påstand, har samme kontekst som laget påstanden, og har en tendens til å lese sitt eget bevis om igjen i stedet for kilden. Så sjekken er nå et eget steg med en egen agent.

Hva steget gjør

Før en commit som legger til faktapåstander, lister arbeidsøkten hver påstand endringen gjør: tall, tidspunkter, hasher, fil- og linjenummer, tilstand på verter, og særlig avledede tall (summer, før/etter-par, prosenter, med delene sine). En fersk general-purpose-agent får listen, filstiene og lesetilgang, og får beskjed om å motbevise hver påstand fra den levende kilden: kjøre kommandoen på nytt, lese filen på verten på nytt, spørre API-et på nytt. Ikke diffen, ikke den første agentens bevis. Den returnerer én linje per påstand: verifisert, avvik med den sanne verdien, eller uverifisert med grunn. Porten er enkel: null avvik eller ingen commit. Verifikatoren redigerer, committer eller pusher aldri.

Plantet test først

To notater med ti påstander hver om levende vert- og API-tilstand, uten at verifikatoren fikk vite at noe var plantet. Den plantede kopien hadde et feil linjenummer, et feil journaltidspunkt og et avledet par som summerte til 9 i stedet for 8. Resultat: 3 av 3 fanget, 0 falske positive, de sanne verdiene navngitt, på omtrent 79 sekunder og 10 verktøykall. Den rene kopien: 10 sjekket, 0 avvik, omtrent 77 sekunder.

Første skarpe kjøring

Endringen som ble testet, var en formiddags dokumentasjonsarbeid på dette nettstedet, 27 påstander. Verifikatoren returnerte 1 avvik og 1 uverifisert. Avviket: tabellen i notatet om Hacker News-ansettelser tok andeler som datafilen allerede lagrer med én desimal, og rundet dem av en gang til, så seks celler var ett poeng feil. Mai sin «agentisk koding» var 8 av 322 innlegg, 2,48 %, vist som 3; juli sin «AI-agent» var 13,46 %, vist som 14. De to kulepunktene som bygde på cellene, var feil i samme retning.

Delen som gir tittelen: tidligere samme formiddag hadde samme økt sendt de avrundede tallene til forskningsøkten som en rettelse av utkastet dens, og utkastet hadde vært riktig hele tiden. Verifikatoren tok rettelsen. Forskningskopien ble tilbakestilt til de nøyaktige verdiene innen en time, og tabellen runder nå av antall delt på n, én gang.

De to andre funnene

De to andre funnene fra samme kjøring var mindre og like reelle: et utrullingsdokument som sa «flytt aldri dist» ved siden av en tilbakerullingsoppskrift som flyttet oppå den, og en systemd-kommentar som blandet MB med MiB og dermed påsto at bygget uten tak hadde oversteget et tak det faktisk lå under. Ingenting ble funnet på, og ingenting sant ble flagget.

Hva det koster, og hva det ikke dekker

Omtrent 80 sekunder og ti verktøykall per dokumentasjons-commit. Ikke testet ennå: påstander om hvordan kode oppfører seg, og påstander som ville krevd skrivetilgang for å sjekkes. En påstand om fortiden som ikke kan observeres på nytt, merkes uverifisert, aldri verifisert; merkelappen går inn i dokumentet sammen med hvordan den kan sjekkes senere.

← alle notater

esc
↑↓ naviger ↵ åpne esc lukk