Agentrammeverk eller egen kode?

Av Weapp · Oppdatert

Agentrammeverk som LangChain gir raskere oppstart, men legger til en abstraksjon som koster ved feilsøking, versjonsbytter og innlåsing i rammeverkets mønstre. Tynn egen kode direkte mot modell-API-ene gir mer kontroll når logikken er enkel. Uansett valg trenger du verktøy for evaluering og observability.

Når et team skal bygge sin første AI-agent, dukker spørsmålet opp tidlig: Skal vi bruke et rammeverk som LangChain, eller skrive orkestreringen selv direkte mot modell-API-ene? Det er et reelt veivalg med konsekvenser for hvor lett løsningen blir å feilsøke, vedlikeholde og bytte ut. Nedenfor ser vi på hva avveiingen går ut på, og hvilke verktøy du trenger uansett hva du velger.

Hva valget egentlig står mellom

En AI-agent er i bunn og grunn en løkke: Modellen får en oppgave, velger å kalle verktøy, tar imot resultater og fortsetter til den er ferdig. Spørsmålet er hvem som skriver den løkken og limet rundt den.

Et agentrammeverk gir ferdige byggeklosser for nettopp dette: koblinger til verktøy, håndtering av minne og mønstre for å kjede sammen kall. Egen kode betyr at du bygger orkestreringen selv, tynt og direkte mot API-et. Det første alternativet gir deg en raskere start. Det andre gir deg en mindre kodebase som du forstår i hver detalj. Mye av beslutningen handler om å veie de to mot hverandre.

Rammeverkenes abstraksjonskostnad

Rammeverk markedsføres med hvor mye de forenkler, og det stemmer i starten. Men abstraksjonen har en pris som viser seg senere, og det er lurt å gå inn i valget med åpne øyne.

  • Feilsøking. Når noe går galt, ligger feilen noen ganger dypt inne i rammeverket i stedet for i din egen kode. Da må du grave deg gjennom lag du ikke har skrevet selv for å forstå hva som faktisk skjedde.
  • Versjonsbytter. Rammeverk i rask utvikling endrer oppførsel mellom versjoner. En oppdatering kan tvinge frem omskrivinger, og du binder tempoet ditt til noen andres utgivelsestakt.
  • Innlåsing i mønstre. Løsningen din formes etter rammeverkets måte å tenke på. Jo mer dere bygger, desto mer sitter dere fast i abstraksjonene, og desto vanskeligere blir det å velge en annen vei senere.

Ingenting av dette gjør rammeverk til et dårlig valg. Poenget er at abstraksjonskostnaden er reell og betales over tid, ikke ved oppstart. Vei den mot oppstartstiden rammeverket sparer.

Når tynn egen kode holder

For mange agenter er logikken faktisk ganske enkel: noen få steg, et fåtall verktøy, en tydelig flyt. Da kan et fullt rammeverk bli mer en omvei enn en hjelp.

Et konkret scenario: Dere vil bygge en agent som tar imot et kundespørsmål, slår opp svaret i to interne systemer og setter sammen et svar. Det er en håndfull kall i en oversiktlig rekkefølge. En tynn egen orkestrering direkte mot modell-API-et gjør hele jobben, er lett å feilsøke og holder kodebasen liten. Her er egen kode ofte det raskeste og mest holdbare valget, i motsetning til hva man kanskje skulle tro.

Tommelfingerregelen: Jo enklere og mer forutsigbar flyten er, desto sterkere argument for egen kode. Jo mer dynamisk og forgrenet logikken blir, desto mer kan byggeklossene i et rammeverk begynne å lønne seg. Start heller enkelt, og legg til struktur når kompleksiteten faktisk krever det, i stedet for å bygge for et behov dere ennå ikke har.

Verktøy du trenger uansett valg

Dette er den viktigste innsikten, og den gjelder uansett hvilken vei dere velger: To ting trengs i begge tilfeller, og de blir ofte undervurdert.

Den første er evaluering. Dere må kunne avgjøre om agenten gjør riktig, og det krever en testsuite med ekte eksempler som kjøres systematisk, ikke bare en følelse av at det «ser ut til å fungere». Uten det blir hver endring en gjetning.

Den andre er observability. Når en agent gjør feil, må dere kunne se hva den gjorde i hvert steg: hvilke kall, hvilke verktøy, hvilke svar. Uten sporbarhet blir feilsøking nesten umulig fordi agenter ofte feiler på uventede måter midt i en kjede.

Legg merke til at ingenting av dette følger gratis med et rammeverk. Evaluering og observability er egne investeringer, enten orkestreringen er egen kode eller bygget på LangChain. Planlegg for dem fra starten, så slipper dere å bygge dem i panikk den dagen agenten begynner å oppføre seg uventet i produksjon.

Vil dere ha hjelp til å utforme arkitekturen for en AI-agent og ta dette veivalget på et solid grunnlag, kan dere lese mer om arbeidet vårt med AI eller ta kontakt.

Ofte stilte spørsmål

Hva er forskjellen på et agentrammeverk og egen kode?

Et agentrammeverk som LangChain gir ferdige byggeklosser for å koble sammen modellkall, verktøy og minne. Egen kode betyr at du skriver den orkestreringen selv, tynt og direkte mot modell-API-ene. Rammeverket sparer oppstartstid, men legger til et lag du må lære deg og vedlikeholde, mens egen kode gir full kontroll over en mindre kodebase.

Når holder det med tynn egen kode?

Når agentens logikk er oversiktlig: noen få steg, et fåtall verktøykall og en tydelig flyt. Da blir et fullt rammeverk ofte mer en omvei enn en hjelp, og en tynn egen orkestrering direkte mot API-et er lettere å feilsøke og eie. Jo enklere flyt, desto sterkere argument for egen kode.

Hva er abstraksjonskostnaden ved et rammeverk?

At abstraksjonen skjuler hva som faktisk skjer. Det merkes ved feilsøking, når en feil ligger dypt inne i rammeverket i stedet for i din egen kode, og ved versjonsbytter, når rammeverket endrer oppførsel. I tillegg kommer innlåsing: Løsningen din formes etter rammeverkets mønstre, og det kan være vanskelig å komme seg ut av senere.

Hvilke verktøy trengs uansett hva vi velger?

Evaluering og observability. Du må kunne måle om agenten gjør riktig (en testsuite med ekte eksempler), og kunne se hva den gjorde i hvert steg når noe går galt. De behovene er uavhengige av om du bygger på et rammeverk eller egen kode, og de blir ofte undervurdert i starten.

Kan vi begynne med egen kode og bytte til et rammeverk senere?

Ofte ja, hvis dere holder modellkallene og logikken tydelig avgrenset fra starten. Da blir et senere bytte håndterbart hvis kompleksiteten vokser. Det motsatte, å gå bort fra et rammeverk, er som regel vanskeligere fordi mer av løsningen har rukket å formes etter mønstrene i det. Start derfor heller enkelt, og legg til struktur når behovet er bevist.