Samuel Dirksz

System · Egen satsing

Lynus.ai

Prototype

Offentlig saksbehandling er full av prosesser som bare finnes i hodet til den som har gjort dem lengst. Dette er et forsøk på å la den personen beskrive prosessen sin, og få den kjørt, uten å gi fra seg vurderingen.

Fakta

Status
Prototype. Ingen brukere, ikke i drift.
Stack
Next.js 15 · React 19 · Postgres · Drizzle · better-auth
Modeller
Leverandørabstraksjon med priskatalog per modell
Kan vises
Testsuite og norske eksempeldata kjører uten API-nøkkel
Bevis
Ingen offentlig URL

Ideen

En saksbehandler beskriver i vanlig språk hvordan hun faktisk vurderer en søknad. Systemet gjør beskrivelsen om til en sjekkliste. Hvert punkt kjøres av sin egen agent, som bare får lov til å svare med utgangspunkt i organisasjonens eget regelverk. Ingenting går videre uten at et menneske har godkjent det, og godkjenningen lagres.

Poenget er ikke å erstatte skjønnet. Det er å slippe å gjøre den samme mekaniske gjennomgangen for åttende gang samme uke.

Hvordan sitatene holdes ærlige

Den største risikoen i en slik løsning er at modellen finner på en regel som høres riktig ut. Så dokumentene nummereres avsnittsvis før de brukes, og agentene må referere til nummer.

Når svaret settes sammen, slår serveren opp den faktiske teksten i det avsnittet fra dokumentet. Modellens egen gjengivelse av sitatet brukes aldri. Finner den på et avsnittsnummer, faller det gjennom i stedet for å bli stående som en troverdig feil.

Det jeg ikke bygde

Det ble foreslått en arkitektur med kø, egne arbeidere, orkestrering og et halvt dusin komponenter til. Jeg skrev et notat om hvorfor jeg ikke ville ha det, og bygde i stedet det enkleste som faktisk holder.

En kjøring starter uten kø. Tilstanden ligger i databasen, grensesnittet spør med jevne mellomrom, og fullførte steg hoppes over hvis kjøringen tas opp igjen. Det gjør den i praksis gjenopptagbar uten en eneste ekstra komponent å drifte.

Før en kjøring fryses hele oppsettet: stegene, modellen, leverandøren og en sjekksum av regelverksdokumentet. To identiske oppsett gjenbruker samme versjon i stedet for å lage en ny hver gang noen retter en skrivefeil.

Loggen er append-only, håndhevet i databasen med en regel som avviser både endring og sletting. Ikke i applikasjonskoden, der noen kunne komme til å gå utenom den.

Hva dette ikke er

Det er en prototype. Ingen brukere, ingen kunder, ikke satt i drift noe sted. Alt over er bygget og testbart, men ingenting av det har møtt en ekte saksbehandler med en ekte sak.

Den europeiske leverandøren er skrevet, men aldri kjørt mot en reell ressurs. Til det er gjort, kan løsningen ikke lovlig ta imot ekte personopplysninger, og det er den viktigste tingen som står mellom denne og en pilot.

Det finnes et kjent hull i tilgangsstyringen: hvem som ser hva er håndhevet der listene hentes, ikke på hvert enkelt oppslag. Det holder til demo, ikke til drift.

Jeg viser den fram med testdata. Fem tester kjører motoren mot en attrappleverandør uten API-nøkkel, og det følger med norske eksempelsøknader, et regelverk og en fasitrapport.

Tilbake til oversikten