Hackathon: Utforsking av Multi-agent AI

I Bouvet elsker vi fag, og hackathons er blant aktivitetene vi setter aller høyest. Da resten av Stavanger nøt seinsommerens siste solstråler, tok vi fatt på en spennende gren innen AI: multi-agent AI.

Publisert:25. september 2024 Jostein Sand Kjellsen

Hackathonet bestod av forhåndsdefinerte oppgaver, med to lag som jobbet på hver oppgave. Lagene var satt sammen etter roller, slik at hvert lag hadde en team lead i tillegg til andre disipliner som utviklere, testere og designere. Før hackathonet startet, fikk alle en kort introduksjon til ulike multi-agent-rammeverk og dokumentasjon om hvordan man kommer i gang med disse. Med lassevis av snacks, energidrikke, popcorn og en softismaskin på plass, var alt duket for halvannen intens dag med hackathon.

 

Dette er multi-agent AI 

Multi-agent-systemer er ikke noe nytt og kan spores tilbake til maskinlæring på 70-tallet. Konseptet er ganske enkelt: en rekke agenter har ulike roller. Dette kan være redaktør, skribent, økonom – egentlig hva som helst som trengs i et team for å løse oppgaver. En agent kan være et menneske, en drone, en sensor eller en bit med kode som har en bestemt rolle og utfører en oppgave basert på instruksjoner. I et multi-agent AI-system er forskjellen at AI kan innta flere av de ulike rollene, og vi kan koble disse til kraftige språkmodeller som GPT, Claude eller Gemini.

Oppgaver og resultat 

Det var fire varierte oppgaver deltakerne skulle bryne seg på: 

Oppgave 1: Omskriving av Kode

Den første oppgaven var en reell kundeutfordring med omskriving av gammel PLSQL-kode til ny Java-kode. Tidligere har man forsøkt manuelt å bruke ChatGPT og andre AI-løsninger uten hell. Utfordringen er at AI bare løser deler av oppgaven og gjør antagelser uten å teste koden selv. Ved bruk av multi-agenter kan man sette opp en agent som tolker koden og lager en plan for konvertering. Deretter kan man få en agent til å skrive koden, en annen til å gjøre en kodegjennomgang, og til slutt en agent som kjører koden og sjekker at ønsket resultat er oppnådd.

Agentene kan gjerne gå flere runder før kriteriene utviklerne har gitt som input blir oppfylt. Laget som jobbet med denne oppgaven gjorde betydelige fremskritt og utviklet flere konsepter som er verdt å utforske videre. En av utviklerne uttalte: “Når jeg trengte å gjøre testing av kode, kunne jeg bare lage en ny agent som var ansvarlig for å skrive tester, og så gjorde den det! Så var det bare å fortsette å legge til agenter.”

Oppgave 2: Ukentlig Tech-radar

I den andre oppgaven jobbet lagene med en ukentlig tech-radar. Her skulle agentene innta roller som teknologer med ulike fagfelt innen arkitektur, pro-code, low-code, AI osv. Agentene skulle ha en personlighet og komme med sine egne meninger om teknologiene de presenterte.

Informasjonen kunne hentes fra nettsider, X-kontoer, YouTube m.m. Deretter skulle agentene, basert på antall “likes”, antall kommentarer eller på andre måter, vurdere hvilke nyheter som trendet denne uken. Her måtte teamene jobbe mye med “scraping” av nettsider, altså hente ned nettsider for så å tolke innholdet og sortere ut nyhetene.

Oppgave 3: AI Dungeon Master Trainer

Den tredje oppgaven gikk ut på å lage en “AI Dungeon Master Trainer”. Dungeons & Dragons er et velkjent rollespill som har en spilleder, Dungeon Master, som leder spillet og bestemmer verden spillerne befinner seg i. Spillerne er ofte på et eventyr for å finne en skatt eller løse oppgaver. På sin vei møter de utfordringer og monstre.

For å gjøre spillet dynamisk brukes en rekke ulike terninger for å avgjøre hva de møter, og hvordan utfallet av en kamp blir. I oppgaven skulle et menneske være spilleder, mens AI-agentene skulle ta på seg rollen som en karakter og spille en personlighet; for eksempel en magiker, bueskytter eller kriger. Lagene ble også utfordret til å bruke visualisering ved hjelp av AI-genererte bilder for å gi liv til spillverdenen.

Oppgave 4: AI Agile Mastermind

I den fjerde og siste oppgaven skulle lagene lage en “AI Agile Mastermind”. Oppgaven bestod i å automatisere og optimalisere oppstartsfasen av et agilt utviklingsprosjekt. Systemet skulle bestå av et sett AI-agenter som representerte eksperter innen ulike felt i systemutvikling, inkludert prosjektleder, arkitekt, security champion, UX-designer, DevOps-spesialist, produkteier og scrum master.

Basert på kundens ikke-tekniske kravspesifikasjon skulle AI-teamet samarbeide for å produsere omfattende dokumentasjon og en komplett prosjektplan for å starte en agil utviklingsprosess.

Når jeg trengte å gjøre testing av kode, kunne jeg bare lage en ny agent som var ansvarlig for å skrive tester, og så gjorde den det! Så var det bare å fortsette å legge til agenter.

Deltaker

Rammeverk og Verktøy

Det var nok av utfordringer for lagene å bryne seg på, og de valgte litt ulike tilnærminger. Flere brukte Microsoft sitt rammeverk for multi-agenter, AutoGen. Dette er et rammeverk hvor man kan benytte enten Python eller .NET til å kode i. Andre lag prøvde seg på LangChain, skrevet i Python, mens noen laget agenter uten å ta i bruk noe rammeverk.

For å kåre en vinner skulle lagene rangere hverandre i en avstemning til slutt. Her måtte de ta høyde for besvarelse av oppgaven, agentsamarbeid, ryddig og sikker kode, samt bevissthet rundt kostnadsbruk ved bruk av AI-tjenestene. Lagene hadde flere mulige språkmodeller tilgjengelig, så de måtte gjøre en vurdering av hvilken som var best egnet til sin oppgave.

AI-agenter i kombinasjon med GitHubs API-er vant

Vinnerlaget
Vinnerlaget

Etter å ha vært gjennom presentasjonene fra alle lagene, kunne vinneren kåres. Vinnerlaget utviklet en  “AI Agile Mastermind”, med en imponerende løsning hvor de tok i bruk AI-agenter i kombinasjon med GitHubs API-er. Vi kunne se hvordan de ulike rollene samarbeidet om å sette opp og iterere på arkitekturen, med innspill fra hvert fagfelt. Løsningen satte også opp sprinter med epics, features og user stories – virkelig imponerende!

De to lagene som jobbet med “AI Dungeon Master Trainer” kom på de to neste plassene. Det ene laget hadde fokusert på å utvikle en nettside som presenterte karakterene i spillet med morsomme bilder og personifisering av karakterene. En av alvene hadde for eksempel en egenskap som gjorde at den alltid snakket i rim, noe som kom frem når den snakket med de andre spillerne. Det andre laget hadde gjort en imponerende innsats for å utvikle en fungerende spillmotor hvor karakterene kjempet seg imellom, og du kunne se hvordan de reagerte på kampen – kjempegøy!

Stort potensiale i teknologien

Vi er veldig fornøyd med hackathonet, og vi har mottatt svært positive tilbakemeldinger fra deltakerne. De har fått leke seg og ha det gøy, samtidig som de har fått prøve ny og spennende teknologi. Vi ser virkelig potensialet for multi-agent AI-er, og vi vil utforske hvordan vi kan ta i bruk teknologien sammen med våre kunder. Vi gleder oss allerede til neste hackathon!