Gå til indhold
aiMindsEnglish
EksperimenterMetodeMissionBidragOm

Alle eksperimenter

EXP-001I gangAfprøvet: 2026-09-22

At bygge og styre et specialiseret AI-agenthold

Ansvarlig:
Rasmus Sloth Nielsen
Værktøjer:
Buzz agent-relay, GitHub, GitHub Actions, Claude Code

Resumé

Et hold navngivne AI-agenter har åbnet og merget pull requests i to private repoer siden august 2026, koordineret gennem et selvhostet relay kaldet Buzz. Mellem 1. august og 22. september 2026 tog de to repoer 451 merged pull requests tilsammen. I en stikprøve over en uge bar 60 procent af det merged arbejde en eksplicit agentsignatur. Én merge gik forbi et blokerende review-verdikt og blev revertet af en anden agent halvanden time senere. Den væsentligste begrænsning er at der ikke findes et sammenligningsgrundlag, så intet her understøtter en påstand om at arbejdet gik hurtigere eller blev bedre end uden agenterne.

Tilladelse til offentliggørelse

Målingerne stammer fra to private repoer, spekir/spekir og spekir/nielsai. Ejeren af begge repoer gav den 22. september 2026 eksplicit tilladelse til at offentliggøre tallene, agentnavnene, rollefordelingen og de hændelsesreferencer der står nedenfor. Der indgår ingen adgangsoplysninger, prompts, kundedata eller relay-adresser.

Spørgsmål

Kan et hold specialiserede AI-agenter føre en afgrænset softwareopgave fra et GitHub-issue til en verificeret pull request, samtidig med at koordinering, bygning, verifikation, review af højrisikoarbejde og den endelige godkendelse holdes adskilt? Og kan adskillelsen vises udefra frem for kun at blive påstået?

Den virkelige opgave og konteksten

Én founder driver to softwareprodukter alene. Arbejdet er almindelig produktudvikling: skemamigrationer, autentifikation, brugerflader, dokumentation, sikkerhedsheadere. Agenterne skal tage de afgrænsede dele, så founderen bruger tid på beslutninger frem for på at taste.

Arbejdsenheden er et GitHub-issue med en label der navngiver den ansvarlige agent, for eksempel agent:gimli. Agenten laver en branch og en pull request. CI kører. En koordinatoragent merger når CI er grøn.

Succes og stopkriterier

Succes

Stop

Det første stopkriterium blev ramt én gang, den 15. september 2026. Det står dokumenteret nedenfor frem for at være udeladt.

Sammenligningsgrundlag

Der findes intet sammenligningsgrundlag. Det samme arbejde blev aldrig udført to gange, én gang med agenter og én gang uden, og der findes ingen registrering af tid per arbejdsenhed fra før august 2026. Alle tal nedenfor beskriver derfor aktivitet, ikke forbedring.

Arbejdsdeling

Deltager Ansvar
Menneske Scope, prioriteter, kanonbeslutninger, hemmeligheder, miljøvariabler, penge, destruktive migrationer, det endelige ansvar
Agenter Strategi omsat til briefs, dispatch, almindelig implementering, højrisikoimplementering, review, scoring af evalueringsforsøg, merge ved grøn CI
Deterministiske værktøjer CI, typetjek, tests, og de label- og trailer-konventioner der gør adskillelsen synlig

Den observerede rollefordeling, hentet fra driftsdokumenterne i spekir/nielsai:

Agent Dokumenteret rolle
Elrond Omsætter strategi til briefs
Aragorn Brief-lint og dispatch
Gimli Almindeligt implementeringsarbejde
Frodo Højrisikoarbejde: autentifikation, row level security, migrationer, hemmeligheder
Gandalf Review
Faramir Scorer evalueringsforsøg
Fizz Merger når CI er grøn

Input

Offentlig metadata om pull requests og issues fra to repoer som forfatteren ejer, læst gennem GitHubs API den 22. september 2026 og offentliggjort her med ejerens tilladelse. Ingen kildekode, ingen prompts, ingen adgangsoplysninger.

Værktøjer og konfiguration

Metode

  1. Tæl merged pull requests per repo i et fast vindue med GitHubs søge-API, is:pr is:merged merged:2026-08-01..2026-09-22, og læs total_count.
  2. Hent alle issues i begge repoer med fuld paginering og tæl labels der begynder med agent: lokalt.
  3. Tag en stikprøve af de seneste commits på default branch i det ene repo og tæl hvor mange af de bagvedliggende merged pull requests der bærer en Agent:-trailer.
  4. Læs driftsdokumenterne i repoerne for den dokumenterede rollefordeling og mergepolitik.
  5. Søg efter reverts og efter pull requests lukket uden merge, og læs dem der beskriver en fejl.

Trin 1, 2 og 3 er optællinger. Trin 4 og 5 er læsning.

Artefakter

Evidensen er repoerne selv. De pull request- og issue-numre der nævnes nedenfor, er artefakterne, og hvert enkelt kan åbnes af enhver med adgang til repoet.

Resultater

Måling Sammenligning Forsøg Evidensklasse
Merged pull requests, spekir/spekir, 1. aug til 22. sept 2026 Ukendt 337 Målt
Merged pull requests, spekir/nielsai, samme vindue Ukendt 114 Målt
Issues med en agent:-label, spekir/spekir Ukendt 123 af 246 Målt
Issues med en agent:-label, spekir/nielsai Ukendt 86 af 104 Målt
Merged pull requests med en Agent:-trailer, stikprøve over en uge Ukendt 18 af 30 Målt
Antal forskellige agenter i labels Ukendt 8 Målt
Merges der gik forbi et blokerende review-verdikt Ukendt 1 Observeret
Sparet tid per arbejdsenhed Ukendt Ukendt Ukendt
Omkostning per arbejdsenhed Ukendt Ukendt Ukendt
Effekt på softwarekvaliteten Ukendt Ukendt Ukendt

Fordeling af labels i de to repoer:

Agent spekir/spekir spekir/nielsai
Gimli 59 40
Frodo 35 14
Eomer 18 20
Elrond 5 5
Galadriel 2 4
Faramir 2 1
Gandalf 2 0
Aragorn 0 2

Tid og omkostning

Ikke målt. Hverken aktiv menneskelig tid per arbejdsenhed eller modelforbrug per arbejdsenhed er registreret nogen steder i de to repoer. Enhver udtalelse om produktivitet ville være opdigtet, så der kommer ingen.

Fejl og rettelser

En merge forbi et blokerende review, 15. september 2026. I spekir/nielsai blev pull request 191 merget til main kl. 13:57:15 UTC, selvom review-agenten havde afgivet et eksplicit BLOCKED-verdikt, og det underliggende issue, 102, bar labelen do-not-merge. En modstridende godkendelseskommentar dukkede op kl. 13:57:57 UTC, 42 sekunder efter merget, og kan derfor ikke have autoriseret det. Pull request 192, forfattet med traileren Agent: Aragorn, revertede ændringen og dokumenterede forløbet.

Porten fandtes, var udtrykt både som et review-verdikt og som en label, og den holdt ikke. Genopretningen virkede og blev selv udført af en agent.

To kanoniske dokumenter er uenige om hvem der merger. En architecture decision record dateret 2. september 2026 siger at founderen merger. Agenternes driftsregler siger at en koordinatoragent merger ved grøn CI, en ejerbeslutning fra 3. og 5. september 2026. Det ældste dokument blev aldrig markeret som afløst. En regel der findes i to udgaver, er en regel der ikke kan håndhæves.

Attributionen er selvrapporteret. Alle pull requests i begge repoer er forfattet af den samme delte GitHub-konto, så forfatterfeltet kan ikke skelne founderen fra en agent. Det eneste signal er en commit-trailer som agenten selv skriver. Intet verificerer den. Tallet 18 af 30 ovenfor måler derfor hvad der blev hævdet, ikke hvad der skete.

Bevidste ikke-merges ligner fejl og er det ikke. En del af de lukkede pull requests er evalueringsforsøg der aldrig skal merges. I en stikprøve på de 100 senest lukkede pull requests i det ene repo var cirka 17 lukket uden merge, de fleste synligt mærket som evalueringskørsler. Det ville være forkert at tælle dem som fejl.

Begrænsninger

Læring

Gentag: at navngive agenterne og labele issues med den ansvarlige agent. Det er det, der overhovedet gjorde denne måling mulig, og det kostede ingenting.

Ændr: giv hver agent sin egen skriveidentitet i stedet for en delt konto og en selvskrevet trailer. Indtil da kan adskillelsen mellem menneske- og agentarbejde ikke verificeres af nogen, heller ikke af founderen selv.

Ændr: lad mergepolitikken findes præcis ét sted, og markér afløste beslutninger som afløste den dag de bliver det.

Ændr: begynd at registrere tid og forbrug per arbejdsenhed. Uden det forbliver det interessante spørgsmål, om det her er bedre end én person der arbejder alene, ubesvaret uanset hvor mange pull requests der bliver merget.

Stop ikke. Fejlen den 15. september er et argument for at håndhæve porten i selve mergemekanismen frem for i et dokument, ikke et argument for at sætte et menneske foran hvert merge igen.

Sådan gentager du forsøget

Med læseadgang til et repo der bruger de samme konventioner:

  1. GET /search/issues?q=repo:EJER/REPO+is:pr+is:merged+merged:START..SLUT og læs total_count.
  2. Hent alle issues med paginering og tæl labels der matcher agent:*.
  3. Hent de seneste commits på default branch og tæl dem hvis besked indeholder en linje der begynder med Agent: .
  4. Søg i lukkede pull requests efter revert i titlen og læs teksterne.

Trin 1 til 3 kræver ikke andet end API-kaldene. Trin 4 kræver at et menneske læser.

Privatliv og publiceringskontrol

Relay-adressen, indholdet af prompt-filerne og al kildekode er bevidst udeladt.

Ændringslog

Sådan læser du evidensmærkaterne

Hvert udsagn der kan misforstås som en måling, bærer en mærkat. Den siger hvor stærkt udsagnet står, ikke hvor godt resultatet er.

Målt
produceret af en defineret måling
Observeret
set direkte under forsøget
Rapporteret
oplyst af en anden kilde eller deltager
Hypotese
sandsynligt, men ikke vist
Ukendt
ikke fastslået