Agentic RAG: Neste steg i KI-chat for innholdet i Digitalarkivet
I forrige artikkel fortalte vi om hvordan vi har testet ut en KI-basert chatlÞsning med RAG (retrieval-augmented generation) i bunnen. Denne lÞsningen ga oss nyttige erfaringer med Ä kombinere generativ kunstig intelligens med vÄrt eget arkivmateriale og veiledninger, hjelpetekster og annet stÞttemateriale. Erfaringene har vist at RAG er et godt utgangspunkt, men at vi raskt stÞter pÄ utfordringer nÄr vi prÞver Ä dekke flere behov enn tradisjonelle sÞk eller enkle KI-svar kan hÄndtere.
Vi har tatt et steg videre ved Ă„ prĂžve ut en "agentic RAG", som er en utvidelse av den tradisjonelle RAG-tilnĂŠrmingen. Mens man i en vanlig RAG-lĂžsning hovedsakelig henter frem informasjon og svarer direkte pĂ„ brukerens spĂžrsmĂ„l ut fra dette, opptrer en agentic RAG mer som en selvstendig âagentâ som dynamisk justerer sine egne arbeidsprosesser. Den kan for eksempel validere svar, foreslĂ„ mer presise spĂžrsmĂ„l og endre sĂžkestrategier nĂ„r resultatene ikke er gode nok. Fremover Ăžnsker vi Ă„ implementere enda mer autonomi i valg av funksjoner og strategier ut fra et satt mĂ„l i lĂžsningen, men dette er en reell start.
Hva er en agent, og hva er agentic RAG?
Enkelt forklart kan man si at en agent er et system som observerer et miljÞ, en situasjon eller noen parametre, og som ogsÄ har fÄtt et mÄl. Basert pÄ observasjonene utfÞrer den handlinger for Ä oppnÄ dette mÄlet. Agenten vurderer effekten av sine handlinger, justerer strategien og fortsetter mot mÄlet.
En agentic RAG er i bunn og grunn en agentisk tilnÊrming til informasjonsinnhentings-oppgaver basert pÄ en agent-arkitektur. I en tradisjonell RAG har man en ganske statisk prosess for Ä hente frem og presentere informasjon. En agentic RAG innebÊrer at KI-en kan ta beslutninger pÄ egenhÄnd om hvordan den skal lÞse informasjonsinnhentingen. I stedet for Ä ha fast definerte trinn for "chunking", innhenting og generering, kan en agentisk RAG dynamisk justere sÞkeparametere, revidere spÞrsmÄl, foreslÄ nye strategier, bruke ulike verktÞy (f.eks. API-kall eller funksjoner) og avgjÞre nÄr nok kontekst er innhentet til Ä svare pÄ en tilfredsstillende mÄte.
Det er nettopp derfor det snakkes mye om agentisk RAG for tiden. Vi og mange andre har prÞvd Ä lÞse RAG ved hjelp av statiske regler for oppdeling av tekstbiter og sÞk med ulik grad av kompleksitet, og da oppdager man raskt at virkeligheten er mer rotete. Dataene er ikke alltid som man har sett for seg, og spÞrsmÄlene kan vÊre vage eller flertydige. Da trenger man et system som kan operere mer fleksibelt, mer utforskende og mer problemlÞsende.
Hvorfor trenger vi dette?
Arkivkunnskap kan vÊre kompleks, og brukere vet ikke alltid hvilke ord de skal sÞke pÄ eller hvor de bÞr starte. Her gjÞr agentisk funksjonalitet en stor forskjell:
Forbedre spÞrsmÄl: Agentic RAG kan omskrive og bearbeide brukerens spÞrsmÄl for Ä gjÞre dem tydligere og mer presise.
Kombinere sÞkestrategier: Systemet bruker semantiske og hybride sÞk som finner meningsinnhold, ikke bare eksakte ord. Hva som egner seg, kan den avgjÞre pÄ egenhÄnd. Den kan justere parametere som similarity, og tilpasse taktikken basert pÄ resultatene.
Dynamisk tilpasning: Hvis svarene er mangelfulle, foreslĂ„r lĂžsningen nye spĂžrsmĂ„l, prĂžver alternative sĂžkeord eller utvider sĂžket â alt uten at brukeren mĂ„ vite hvordan.
Kvalitetssikring: LÞsningen validerer svarene og foreslÄr presiseringer om nÞdvendig, slik at brukeren fÄr mest mulig pÄlitelig informasjon.
Hvordan fungerer lĂžsningen i praksis?
NÄr en bruker stiller et spÞrsmÄl, tar systemet fÞrst tak i spÞrsmÄlet, forbedrer det eller gjÞr andre tilpasninger og benytter deretter semantiske og hybride sÞk for Ä hente frem relevant informasjon fra arkivene. Denne informasjonen struktureres slik at KI-modellen kan formulere et svar med lenker til kilder. Alt dette skjer uten at brukeren trenger Ä vite nÞyaktig hvordan ting fungerer: Systemet tar hÄnd om prosessen og jobber aktivt i kulissene for Ä levere best mulig svar, i stedet for bare Ä presentere det fÞrste og beste treffet.
Agentiske egenskaper
MÄlbasert tilnÊrming: Systemet har et klart mÄl: Ä besvare brukerens spÞrsmÄl med stÞrst mulig nÞyaktighet. Dette er tydelig i hvordan det validerer svar og bruker fallback-strategier for Ä forbedre resultatene nÄr de ikke er tilstrekkelige.
Adaptiv respons: Ved lite treff tilpasser lÞsningen arbeidsflyten ved Ä benytte alternative strategier som omskriving, utvidede spÞrringer eller oppfÞlgingsspÞrsmÄl. AltsÄ en viss grad av dynamisk beslutningstaking.
Systemet integrerer ulike teknologier og verktÞy (LLM, Elasticsearch, hybrid sÞk) og velger passende metoder basert pÄ behov, sÄ den har fleksibilitet i hvordan den lÞser oppgaver.
Integrert logikk: Agenten fungerer som en koordinator som setter sammen, validerer og justerer informasjon fra ulike kilder.
Dynamisk kontekststyring: Systemet kan ta hensyn til tidligere samtaler og tilpasser neste steg etter dette.
Fallback-optimalisering: Med flere iterasjoner og alternative strategier Þker sannsynligheten for at brukeren fÄr et tilfredsstillende svar.
Proof of concept og veien videre
Denne lÞsningen er pÄ et utprÞvingsstadium og ligger ikke ute i en betautgave. Det er mange muligheter for utvidelser, og selve grunnstrukturen mÄ forbedres. Den viktigste utvidelsen vil vÊre Ä sÞrge for at lÞsningen har enda mer autonomi i valg av funksjoner og strategier, for eksempel ved Ä gi LLM-en en beskrivelse av mÄlet og tilgjengelige verktÞy, og la den selv bestemme hvilke handlinger som er nÞdvendig for Ä oppnÄ mÄlet. Dette ville bringe det nÊrmere en lÞsning med reell "agency." Dette er vi i gang med.
Andre fremtidige utvidelser kan for eksempel omfatte (med ulik grad av kompleksitet):
Forbedret validering og resonnering.
Dynamisk sĂžketilpasning: Juster parametere som temperatur, "similarityâ og vekting automatisk.
Oppgaveoppdeling: LÞsningen bryter opp komplekse spÞrsmÄl i deloppgaver og lÞser dem trinnvis. For eksempel: For forespÞrselen "forklar forholdet mellom A og B", kan agenten fÞrst hente info om A, deretter B, og sÄ sette sammen informasjonen selvstendig.
Forbedrede feedback-slĂžyfer: Brukerfeedback: La brukere gi tilbakemelding, slik at lĂžsningen kan justere hvordan den oppfĂžrer seg over tid.
Kontekstrevisjon: La brukeren revidere tidligere innlegg i samtalen, slik at konteksten blir oppdatert dynamisk.
Integrasjon med kunnskapsgrafer og andre data: Bygge opp en enkel kunnskapsgraf: FÞlger entiteter, relasjoner og temaer pÄ tvers av samtaler, og foreslÄ relevante, sammenkoblede opplysninger. Under dette ligger ogsÄ integrasjon med arkivdata og arkivkunnskap, ved at systemet for eksempel tilpasser hvilke arkiv den skal bruke basert pÄ spÞrsmÄlet.
Oppsummert vil vi si at agentic RAG er en naturlig videreutvikling fra RAG. Ved Ä gi lÞsningen evnen til Ä ta egne avgjÞrelser, velge verktÞy og tilpasse strategien underveis, blir den i stand til Ä hente frem og formidle arkivkunnskap pÄ en mer dynamisk og pÄlitelig mÄte.
Ta gjerne kontakt med oss pÄ [email protected] hvis du har tilbakemeldinger, eller er nysgjerrig pÄ arbeidet vÄrt med KI, sÞk eller Digitalarkivet generelt.
















