Magnus Rødseth og Håvard Opheim
Capra Consulting @ Gjensidige
Utleid hos Gjensidige, hvor vi bygger agentiske AI-applikasjoner
Forutsigbar agentisk oppførsel med LangChain og MLflow
Agentiske applikasjoner kan oppleves som uforutsigbare og vanskelig å forholde seg til som utviklere.
Vi viser hvordan vi bruker MLflow og LangChain for å observere og guide adferden.
LangChain er et bibliotek som gjør det enklere å bygge applikasjoner med store språkmodeller. I stedet for rå API-kall gir LangChain deg byggeblokker: prompt-maler, modellabstraksjoner, verktøy og minnehåndtering.
Men hva er egentlig en agent?
Én runde. Ferdig.
Hva prøver brukeren å oppnå? Vi klassifiserer hvert spørsmål for å velge riktig behandling.
Vi henter relevant informasjon (fra dokumenter, databaser) og gir det til modellen før den svarer.
Vi definerer hva agenten ikke skal svare på. Holdningen er: «Gjør én ting, gjør den bra.»
Tenk deg at du bygger en chatbot der brukere kan:
Utfordringen:
Tech-stacken: Python, LangGraph + LangChain, Azure OpenAI, PostgreSQL med pgvector, MLflow for observabilitet
Vi må vite:
init_mlflow():
Med mlflow.langchain.autolog() kan vi i MLflow UI se hvert steg som en span i tracet.
Tilstanden mellom nodene er definert som en TypedDict:
For dokumentanalyse bruker vi Deep Agents som abstraksjonslag over LangChain og LangGraph.
autolog()-linjen.
Tracing gir oss innsikt i hva som skjer. Men vi trenger også å måle hvor bra det fungerer.
Vi har bygget fire tilpassede scorers med MLflow GenAI Evaluation:
Vi har en CLI for å kjøre evalueringer mot testdatasett eller produksjons-traces:
Vi har definert testtilfeller som dekker ulike scenarioer:
For produksjon kan MLflow hostes på flere måter.
(fra MLflows dokumentasjon)
Par dette med et tilbakemeldingssystem — og vi har en transparent måte å korrigere agentenes oppførsel i produksjon.
| Hva | Hvordan | Verktøy |
|---|---|---|
| Automatisk tracing | mlflow.langchain.autolog() | MLflow + LangChain |
| Agent-orkestrering | LangGraph StateGraph | LangGraph |
| Dokumentekstraksjon | Deep Agents med subagenter | deepagents |
| Kvalitetsmåling | Custom scorers + mlflow.genai.evaluate() | MLflow GenAI |
| Produksjonsmonitorering | Trace-basert evaluering med sampling | MLflow traces API |
| Bruker-feedback | Thumbs up/down → MLflow assessments | FastAPI + MLflow |
Magnus Rødseth og Håvard Opheim
Capra Consulting @ Gjensidige