Hos syv.ai har vi bygget en softwarefabrik der tager en opgave hele vejen fra de første krav til færdig kode i produktion. Det er stadig mennesker der sætter agenterne i gang, og det er et menneske der godkender løsningen før den går i drift, mens alt det der sker imellem de to trin, klares af agenterne selv. Målet er at fabrikken på sigt kan køre helt autonomt.
Den slags løfter har mange givet om AI og softwareudvikling de seneste år, og derfor synes vi at det mest interessante at skrive om er hvad det rent faktisk har krævet at nå dertil.
Artiklen handler om hvad det kræver teknisk at bygge sådan en fabrik, hvad det kræver af de mennesker der arbejder med den, og hvad det kræver af de kunder der får leveret software fra den. Gennem det hele går den samme tråd, nemlig at intet af det virker uden standarder man kan måle på.
Fra krav til produktion
Fabrikken arbejder sig gennem de samme trin hver gang, hvor et menneske sætter agenterne i gang med kundens input, agenterne klarer alt det der ligger imellem, og et menneske til sidst godkender løsningen før den kommer i produktion.
Hvis en leverance ikke opfylder standarderne når den bliver målt, sender fabrikken den tilbage til agenterne så de kan bygge videre, og først når målingerne viser at standarderne er opfyldt, når leverancen frem til et menneske. Ændringer der kommer efter go-live, løber den samme vej rundt gennem fabrikken.
På sigt vil vi også fjerne de to menneskelige trin og gøre fabrikken helt autonom, og vejen dertil går gennem de samme standarder og målinger, fordi jo mere vi kan måle, jo mindre behøver et menneske at vurdere.
Det sværeste er konteksten
At få en agent til at skrive kode er i dag den lette del af arbejdet, mens det svære er at give agenten nok forståelse af kundens domæne og af den kode der allerede findes, til at den kan træffe de rigtige valg.
Vi har løst det ved at lade agenter kortlægge kodebasen før de rører den, ved at bygge en videnbase om domænet for hver enkelt kunde og ved at lade agenter omsætte kundens input til en spec som resten af fabrikken kan arbejde ud fra.
Hvor meget hver af de dele fylder, varierer meget fra kunde til kunde, og derfor skriver agenterne nogle gange kravene selv ud fra kundens materiale, mens vi andre gange formulerer dem sammen med kunden.
Standarder er det man kan optimere imod
Det der binder det hele sammen, er standardisering, for hvis man laver standarder man kan stole på, og man samtidig kan måle at de bliver overholdt, så kan man også optimere imod dem.
En agent ved nemlig ikke af sig selv hvornår et stykke software er godt nok, og det kan den først vide når der findes en standard at holde det op imod, og når tests og evals kan afgøre om standarden er opfyldt.
Uden standarder bliver hver opgave et nyt eksperiment hvor man starter forfra, mens hver opgave med standarder bliver endnu en tur gennem den samme maskine, så de forbedringer vi laver på maskinen, kommer alle de næste opgaver til gode.
Softwaren lever videre efter go-live
Når en løsning er sat i drift, begynder den næste del af arbejdet, fordi software løbende skal holdes opdateret, sikker og i takt med både forretningen og lovgivningen.
Ændringer kører gennem den samme fabrik som nyudvikling, uanset om ændringen kommer fra kunden, fra overvågningen af løsningen i drift eller fra en ny version af en af de afhængigheder løsningen bygger på. Agenter opdaterer afhængighederne løbende, og overvågningen af løsningen i drift sender selv opgaver tilbage ind i fabrikken.
Sikkerheden er bygget ind på samme måde som alt andet, så sikkerhedskravene er standarder som agenterne bliver målt imod, og pipelinen kører sikkerhedsscanninger på alt det der bliver bygget. Når et menneske godkender løsningen før produktion, indgår sikkerheden også i den vurdering.
Lovgivningen bliver også til opgaver i fabrikken, fordi vi via retsinformation-api.dk kan overvåge de love og lovforslag der er relevante for en løsning. Når agenterne ser at en lov ændrer sig, bliver ændringen til et nyt krav der kører gennem fabrikken på samme måde som alle andre krav.
Forretningskravene følger samme vej, så når kunden bestiller en ændring, bliver den omsat til målbare krav som fabrikken derefter leverer på. Når enhver ændring på den måde bliver til krav man kan måle, kan én og samme maskine håndtere hele softwarens livscyklus.
Hvad det kræver af teknikken
Fabrikken er bygget på AgentBase, som orkestrerer agenterne, på kodeagenter som Claude Code, der skriver og ændrer koden, på vores egen orkestrering med tests og evals, der afgør hvornår noget er færdigt, og på open source-modeller, der giver os frihed til at vælge den rette model til den rette opgave.
Den del de fleste overser, er tests og evals, for kodeagenterne er allerede blevet gode og bliver hurtigt bedre, mens det der adskiller en fabrik fra en samling agenter, er målingerne.
Med målingerne på plads kan agenterne arbejde selvstændigt fra krav til deploy, og så skal mennesker kun sætte arbejdet i gang og godkende resultatet.
AgentBase som fundament
Før i tiden skulle alle selv sætte tracing, routing, modeller, RAG-systemer og meget andet op hver gang de byggede en løsning, og i dag er det hele samlet og standardiseret ét sted i AgentBase.
AgentBase er det lag vi bruger til at standardisere vores AI-API, så alle agenter i fabrikken bliver bygget og kaldt på samme måde. Platformen indeholder tracing, så vi kan følge hvad agenterne gør, evaluering, så vi kan måle om de gør det godt nok, og rollebaseret adgangsstyring, der styrer hvem der har adgang til hvad.
Derudover består AgentBase af omkring 40 byggeklodser der kan sættes sammen på forskellige måder, og det giver os en enorm fleksibilitet til at bygge vidt forskellige løsninger på den samme standardiserede måde. Det er det samme princip som i resten af fabrikken, hvor det netop er standarderne der gør det muligt at måle og optimere.
Hvad det kræver af folkene
Fabrikken ændrer hvad vores folk skal kunne, fordi deres arbejde flytter sig fra at skrive koden selv til at sikre at agenterne skriver den rigtige kode.
Først og fremmest skal de kunne styre agenter, og det er en færdighed i sig selv at give en agent den rette opgave, den rette kontekst og den rette målestok.
Det kræver også en langt større forretningsforståelse end den gennemsnitlige udvikler har brug for, for når agenterne skriver koden, flytter værdien sig over i at forstå hvad koden skal løse, og hvordan man kan se at den løser det.
Endelig skal man være villig til at bryde store problemer ned i små løsninger, fordi ingen agent kan løse et stort og uklart problem, mens fabrikken kan løse mange små og målbare opgaver én efter én.
Hvad det kræver af kunden
Fra kunderne har vi brug for krav og acceptkriterier der kan måles, adgang til de data løsningen skal arbejde med, og feedback undervejs, så agenterne hele tiden arbejder ud fra det kunden faktisk har brug for.
Vi oplever ikke modvilje mod en ny måde at få leveret software på, og det der kræver mest arbejde i samarbejdet, er at gøre kravene målbare.
Det er også her fabrikkens grænse går i dag, for opgaver med krav der ikke kan måles, passer dårligt ind, og hvis ingen kan sige hvornår en løsning er god nok, kan fabrikken det heller ikke.
Begynd med jeres egne standarder
Man behøver ikke at have en softwarefabrik for at bruge erfaringerne fra den, fordi udgangspunktet er det samme for enhver udviklingsafdeling der vil have mere ud af AI.
Det første skridt er at skrive jeres standarder ned, gøre dem målbare og begynde at måle om de bliver overholdt, og først når det er på plads, giver det mening at lade agenter optimere imod dem.
Det arbejde kan ingen model gøre for jer, men det er til gengæld det arbejde der gør alt det andet muligt.
