En AI-agent, der ikke husker dig, er grundlæggende begrænset. Hver samtale starter fra bunden. Du skal præsentere dig igen, forklare dine præferencer på ny og gentage igangværende arbejde. Det skaber friktion og svækker tilliden.
Det er hukommelsesproblemet. Kontekstvinduet håndterer den aktuelle samtale. Langtidshukommelse — på tværs af sessioner, dage og måneder — kræver sin egen arkitektur. Det er sværere, end det ser ud.
Denne artikel gennemgår, hvordan reel agenthukommelse ser ud i produktion: lagene, lagringsvalgene, hentningsmønstrene og de afvejninger, der adskiller nyttig hukommelse fra hallucineret hukommelse.
Hvad »hukommelse« betyder
En enkel opfattelse er: hukommelse = »modellen husker ting mellem samtaler«. Virkeligheden er mere nuanceret. Kognitionsvidenskaben skelner mellem forskellige hukommelsestyper, og agenthukommelse har gavn af den samme opdeling:
Arbejdshukommelse. Den aktuelle samtale. Opbevares i kontekstvinduet. Forsvinder, når samtalen slutter (medmindre den gemmes).
Episodisk hukommelse. Bestemte tidligere begivenheder. »Sidste tirsdag diskuterede vi X.« »For tre måneder siden besluttede du Y.«
Semantisk hukommelse. Generelle fakta. »Dit navn er Alice.« »Du foretrækker korte svar.« »Din virksomhed ligger i Tallinn.«
Proceduremæssig hukommelse. Hvordan opgaver skal udføres. »Når brugeren spørger om et møde, bruges denne skabelon.« »Når kunden er i niveau X, følges proces Y.«
De forskellige hukommelsestyper tjener forskellige formål. Et komplet system til agenthukommelse dækker dem alle.
Hvad hukommelsen skal opnå
Før arkitektur, målene:
Kontinuitet. Agenten fortsætter, hvor den slap. Ingen ny introduktion i hver session.
Personalisering. Agenten anvender dine præferencer uden at blive spurgt. Den skriver med din tone, bruger dine værktøjer og henviser til dit team.
Kontekstbevarelse. Beslutninger fra tidligere samtaler informerer nuværende. “Vi besluttede X sidste måned” bør huskes.
Opbygning af færdigheder. Agenten lærer dine mønstre og anvender dem. Efter 10 samtaler om programmering i Python, bør den som standard vælge Python.
Privatliv og glemsel. Hvad der huskes, hvad der ikke gemmes, og hvad der slettes. Det er vigtigt både for brugertillid og juridisk efterlevelse.
Målene kan være i konflikt. Kontinuitet trækker mod at huske alt, mens privatliv trækker mod at huske mindst muligt. Arkitekturen håndterer denne afvejning.
Arkitekturen
En typisk lagdelt arkitektur:
┌─────────────────────────────────────┐
│ Working memory (in-context) │ Current conversation
├─────────────────────────────────────┤
│ Session memory (recent) │ Last N conversations
├─────────────────────────────────────┤
│ Episodic memory (long-term) │ Specific past events
├─────────────────────────────────────┤
│ Semantic memory (facts) │ Stable user facts
├─────────────────────────────────────┤
│ Procedural memory (preferences) │ How to behave for this user
└─────────────────────────────────────┘
Hvert lag har sin egen logik for lagring, hentning og gradvis nedprioritering.
Vi går igennem hvert enkelt.
Lag 1: Arbejdshukommelse
Det er allerede dækket i artiklen om kontekstengineering: den aktuelle samtale i kontekstvinduet. Samtaler med mange trin bruger lagdelt kontekst med de seneste trin ordret og ældre trin sammenfattet.
Overførslen til langtidshukommelsen sker ved sessionens afslutning. De vigtigste oplysninger fra samtalen udtrækkes og gemmes.
Lag 2: Sessionshukommelse
De seneste sessioner — eksempelvis de sidste 10 samtaler — gemmes med et vist detaljeniveau og er tilgængelige for agenten i næste session.
Implementering: En sammenfatning pr. session gemmes med tidsstempel og emne. Når brugeren vender tilbage, har agenten et hurtigt referencepunkt for det seneste forløb.
{
"session_id": "abc-123",
"user_id": "alice",
"started": "2026-05-14T10:30:00Z",
"ended": "2026-05-14T10:45:00Z",
"topic": "Drafting proposal for Acme Corp",
"summary": "Drafted v1 of the Acme proposal. Decided to lead with the cost-savings angle. Alice will review and send Friday.",
"facts_learned": ["Acme is a current customer", "Alice's deadline is Friday"],
"open_items": ["Alice to review v1 by Thursday"]
}
I en ny session kan de seneste 3-5 sessionsammenfatninger indlæses automatisk. Agenten får dermed kontekst om det seneste forløb.
Det er den enkleste form for hukommelse på tværs af sessioner. Den er let at implementere og straks nyttig.
Lag 3: Episodisk hukommelse
Bestemte tidligere begivenheder, der fortjener at huskes længere. Beslutninger, milepæle, vigtige samtaler.
Begivenhederne udtrækkes fra sessioner, når de er bemærkelsesværdige, og gemmes med fyldige metadata.
{
"event_id": "ev-456",
"user_id": "alice",
"date": "2026-04-22",
"type": "decision",
"description": "Alice decided to migrate from Postgres to ClickHouse for the analytics workload, citing query performance.",
"context_summary": "After 3 weeks of evaluation including performance tests and cost analysis.",
"related_topics": ["infrastructure", "analytics", "database"],
"importance": "high"
}
Hentning: Når det er relevant for den aktuelle samtale, henter agenten relaterede episoder. Det kan ske via semantisk søgning (indlejr det aktuelle spørgsmål, og find matchende episoder), emnematch eller tidsbaserede spørgsmål (»hvad skete der sidste måned?«).
Udfordringen er at afgøre, hvad der er en »episode, der er værd at huske«. Det gælder ikke alle samtaler. Et almindeligt mønster er, at en LLM ved sessionens afslutning udtrækker bemærkelsesværdige begivenheder. Beslutninger, forpligtelser og milepæle gemmes; smalltalk gør ikke.
Lag 4: Semantisk hukommelse
Stabile fakta om brugeren, som altid bør være tilgængelige. »Alice er direktør hos Acme. Hendes foretrukne kommunikationsstil er kortfattet. Hun arbejder i Tallinns tidszone.«
De fylder mindre end episoder, men hentes oftere. De danner agentens »model af brugeren«.
Implementering: en struktureret profil.
{
"user_id": "alice",
"profile": {
"name": "Alice Tamm",
"role": "CEO at Acme Corp",
"location": "Tallinn, Estonia",
"timezone": "Europe/Tallinn",
"preferred_language": "English",
"communication_style": "concise, direct, no preamble",
"expertise_areas": ["product strategy", "go-to-market"],
"tools_used": ["Notion", "Slack", "Linear"]
}
}
Opdateringer sker, når agenten lærer nye fakta. Efter en session identificerer en LLM nye stabile fakta og foreslår dem; de flettes enten automatisk ind eller vises til brugerens godkendelse.
Vigtigt: Semantiske fakta skal være pålidelige og stabile. En tilfældig kommentar i en samtale (»Jeg prøver måske Python«) bør ikke blive til et semantisk faktum (»Alice foretrækker Python«). Tærsklen er højere.
En tilgang baseret på tillid:
- Hørt én gang: kandidatfaktum, ikke endnu gemt.
- Hørt to gange eller eksplicit: gemt med mellemstærk tillid.
- Eksplicit bekræftet eller ofte refereret: gemt med høj tillid.
Det forhindrer agenten i at »lære« forkerte fakta fra tilfældige bemærkninger.
Lag 5: Proceduremæssig hukommelse
Hvordan agenten bør opføre sig for denne bruger. Arbejdsgange, skabeloner, præferencer for bestemte handlinger.
Eksempler:
{
"user_id": "alice",
"procedural": {
"email_signature": "...",
"meeting_preferences": "always offer 3 time slots, never schedule before 9am",
"code_style": "Python, type hints required, dataclasses over dicts",
"tone_for_clients": "warm, direct, with explicit next steps",
"approval_process": "all customer-facing communications need Alice's review before sending"
}
}
Disse er mønstre, agenten følger, når relevante opgaver opstår.
Opdateringer sker eksplicit (»Alice, gør fremover altid X på denne måde«) eller via mønstergenkendelse (efter 5 lignende anmodninger, der er behandlet på samme måde, tilføjes mønstret).
Valg af lagring
Hvor lagres hukommelsen?
SQL-database. Pålidelig, forespørgbar og velkendt. Hver hukommelsestype har sin egen tabel. Joins bruges ved hentning. Velegnet til strukturerede adgangsmønstre.
Vektordatabase. Til semantisk hentning af episoder (»find hukommelse relateret til dette emne«). Episoder indlejres, og hentning sker efter lighed.
Kombination. Ofte den bedste løsning: SQL til strukturerede forespørgsler og vektorsøgning til semantik. Hukommelseselementer findes begge steder med ensartede ID’er.
Specialiserede hukommelsesværktøjer. Mem0, Letta (tidligere MemGPT) og Zep. De er specialbyggede hukommelseslag til agenter og værd at overveje, hvis du ønsker et højere abstraktionsniveau.
For de fleste teams er en enkel kombination af SQL og vektorsøgning tilstrækkelig. Specialiserede værktøjer er nyttige, men tilføjer afhængigheder.
Hentningsmønstre
Hvordan får agenten hukommelse ind i konteksten?
Mønster 1: Auto-indlæsning ved sessionstart
Når en ny session starter, hentes automatisk:
- Brugerens semantiske profil.
- De seneste N sessionsammenfatninger.
- Eventuelle åbne forpligtelser eller efterfølgende punkter.
Det er den grundlæggende kontekst, agenten har, når brugeren vender tilbage.
Mønster 2: Forespørgselsbaseret hentning
Når brugerens besked antyder tidligere emner, hentes relevante episoder.
Eksempel: Brugeren spørger: »Hvad var konklusionen på vores databasediskussion?« Agenten søger efter episoder om »database« og henter den relevante.
Implementering: Indlejr brugerens besked, find lignende episoder, og medtag dem i konteksten.
Mønster 3: Eksplicit hukommelsesværktøj
Agenten har værktøjer til at forespørge hukommelsen:
search_episodes(query): find bestemte tidligere begivenheder.get_user_profile(): hent semantisk profil.list_open_items(): åbne forpligtelser.
Agenten beslutter ud fra samtalen, hvornår værktøjerne skal kaldes.
Mønster 4: Vedligeholdelse af hukommelsen i baggrunden
En baggrundsproces gennemgår regelmæssigt hukommelsen og:
- Konsoliderer relaterede episoder til emner.
- Opdaterer tillidsniveauet for fakta.
- Nedprioriterer gamle hukommelseselementer, der ikke er blevet brugt.
Det er »hukommelsesvedligeholdelse« — at holde hukommelsesarkivet nyttigt over tid.
Skrivning til hukommelsen
Hvornår skrives der til hukommelsen?
Udtræk ved sessionens afslutning
Det pålidelige mønster. Når en session slutter:
- En LLM analyserer samtalen.
- Udtrækker:
- Sessionsammenfatning.
- Bemærkelsesværdige begivenheder (til episodisk hukommelse).
- Nye fakta (til semantisk hukommelse).
- Præferencesignaler (til proceduremæssig hukommelse).
- Opdaterer og gemmer.
Denne batchbehandling holder den aktive brugeroplevelse hurtig (ingen skrivning til hukommelsen under samtalen).
Prompt til udtrækket:
Analyze this conversation. Output JSON with:
1. summary: 2-3 sentence summary of what happened.
2. notable_events: array of significant events worth remembering (decisions made, milestones, important context).
3. new_facts: array of stable facts learned about the user (only include if you have high confidence).
4. preference_signals: array of preferences observed (only if expressed clearly or repeated).
5. open_items: array of unresolved items the user might want to revisit.
Be conservative. Only include items with high confidence. Better to miss something than to hallucinate.
Realtidsopdateringer af fakta med høj værdi
For nogle fakta er det forkert at vente på sessionens afslutning. Hvis en bruger siger »faktisk hedder jeg Alex, ikke Alice« — bør rettelsen anvendes med det samme.
Et mønster er at lade agenten opdage eksplicitte rettelser eller vigtige nye fakta i realtid og opdatere hukommelsen direkte.
Det kræver omhyggeligt design — en LLM kan »lære« forkerte fakta. Nogle teams kræver brugerbekræftelse, før realtidsopdateringer anvendes.
Brugerinitierede opdateringer
Brugeren kan eksplicit fortælle agenten ting at huske:
- »Husk, at jeg foretrækker X.«
- »Glem, hvad jeg sagde om Y.«
- »Gør altid Z.«
Det bør være førsteklasses handlinger, som udføres med det samme. De er de mest pålidelige signaler.
Et specifikt værktøj, agenten kan tilbyde:
remember(content: string, type: "fact" | "preference" | "procedure")
forget(content: string)
list_what_you_remember()
Denne kontrol opbygger brugertillid.
Glemsel og gradvis nedprioritering
Hukommelse, der vokser uden grænse, bliver til støj. Gradvis nedprioritering er afgørende.
Tidsbaseret nedprioritering
Ældre hukommelseselementer bør have mindre sandsynlighed for at blive hentet. Implementering:
- Rangér hentning efter
relevance * recency_decay. - Ældre hukommelseselementer forsvinder reelt, medmindre der henvises eksplicit til dem.
Værdibaseret lagring
Vigtige episoder bevares længere, mens trivielle nedprioriteres hurtigere.
- Mærk episoder med en værdi, når de skrives.
- Kritiske begivenheder: ubegrænset opbevaring.
- Rutinemæssige begivenheder: nedprioriteres over måneder.
Brugerspecifik glemmelse
Brugeren kan bede om at få bestemte hukommelseselementer slettet.
- Bestemte fakta.
- Bestemte tidsperioder.
- Bestemte emner.
Implementering: en sletningsoperation, der fjerner (eller markerer som slettet) de relevante elementer.
Overholdelse af lovkrav
Juridiske krav (GDPR’s ret til at blive glemt og regler om dataopbevaring) kan kræve sletning.
- Sletning af brugerkonto → al hukommelse slettes.
- Anmodning om datasletning → bestemte hukommelseselementer slettes.
- Opbevaringsgrænser → automatisk sletning efter N måneder.
Disse skal bygges ind fra starten. At tilpasse senere er smertefuldt.
Overvejelser om privatliv
Hukommelsesdata er følsomme. Agenten ved meget om brugeren. Overvej følgende:
Kryptering i hvile
Hukommelsesdata krypteres. Det er standardpraksis.
Adgangskontrol
Hvem kan se en brugers hukommelse? Kun brugeren, kun systemet eller supportmedarbejdere under bestemte betingelser? Definér det tydeligt, og auditér adgangen.
PII-håndtering
Personhenførbare oplysninger (rigtige navne, adresser og finansielle oplysninger) bør markeres og behandles forsigtigt. Brug ekstra adgangskontrol og særskilte sletningsprocedurer.
Brugerens synlighed
Brugere skal kunne se, hvad agenten husker om dem. Det er både etisk rigtigt og god UX. Tilbyd et hukommelsespanel.
What the agent remembers about you:
Profile:
- Name: Alice Tamm
- Role: CEO at Acme Corp
- Communication style: concise, direct
Recent sessions:
- 2026-05-14: Drafted proposal for Acme
- 2026-05-12: Reviewed Q1 results
- ...
Preferences:
- Prefers concise responses
- Uses Notion, Slack, Linear
[Edit] [Delete specific items] [Delete all]
Denne gennemsigtighed opbygger tillid. Skjult hukommelse virker utryg.
Deling over kontekster
Hvis brugeren har flere kontekster (arbejdsagent og personlig agent), kan vedkommende ønske, at hukommelsen holdes adskilt. Del ikke automatisk data mellem kontekster, medmindre brugeren beder om det.
Almindelige fejlmodi
Nogle mønstre:
Fejl 1: Hallucineret hukommelse
Agenten påstår at huske ting, der aldrig skete. »Sidste uge besluttede vi X« — men X blev aldrig diskuteret.
Årsag: LLM’en »udfylder hullerne« med plausible erindringer under udtræk eller hentning.
Løsning: Forankr hukommelsesoperationer i faktiske samtaledata. LLM’en udtrækker, men resultatet verificeres mod den faktiske transskription. Hallucinerede fakta skal afvises.
Fejl 2: Forkerte fakta lært
Agenten fremsætter forkerte fakta med stor sikkerhed. »Du sagde, at du foretrækker Python«, selv om du faktisk blot var tvunget til at bruge Python på arbejdet.
Årsag: Misforståelse under udtrækket.
Løsning: Brug tillidsniveauer. Lær kun fra eksplicitte, gentagne eller bekræftede udsagn. Brugeren skal kunne rette dem.
Fejl 3: Privatlivslekkage
Hukommelse fra én bruger vises i en anden brugers samtale. Det er katastrofalt.
Årsag: Fejl i logikken for brugerafgrænsning.
Løsning: Håndhæv brugerafgrænsning i både lagrings- og hentningslaget. Auditér den. Lad aldrig LLM’en stå for adgangsfiltrering.
Fejl 4: For meget hukommelse
Efter et år fylder hukommelsen flere megabyte pr. bruger. Hentningen bliver langsommere, og omkostningerne vokser.
Årsag: Ingen nedprioritering eller oprydning.
Løsning: Aggressiv nedprioritering. De fleste hukommelseselementer bør blive inaktive (lav hentningsprioritet) efter nogle måneder. Komprimér regelmæssigt.
Fejl 5: Forældede fakta
Brugeren skiftede rolle 6 måneder tidligere. Agenten henviser stadig til den gamle rolle.
Årsag: Fakta opdateres ikke, når de bliver erstattet.
Løsning: Opdag modstridende fakta. Når et nyt faktum modsiger et gammelt, erstatter det nye det gamle (med bekræftelse ved usikkerhed).
Fejl 6: Forvirrende konsolidering
Konsolidering i baggrunden omskriver hukommelsen på måder, der mister oplysninger.
Årsag: Aggressiv sammenfatning uden at bevare vigtige fakta.
Løsning: Konsolideringen skal bevare fakta eksplicit. Test den på virkelige hukommelses- og samtaledata.
Et eksempel: personlig assistent med hukommelse
Et virkeligt tilfælde: en personlig AI-assistent for individuelle brugere.
Hukommelseslag:
- Arbejdshukommelse: den aktuelle samtale.
- Session: de sidste 7 sessioner i sammenfattet form.
- Episodisk hukommelse: de 100 mest bemærkelsesværdige begivenheder med semantisk søgning.
- Semantisk hukommelse: brugerprofil (navn, rolle, præferencer og værktøjer).
- Proceduremæssig hukommelse: eksplicitte arbejdsgange, som brugeren har konfigureret.
Lagring:
- SQL (Postgres): struktureret profil, sessioner, episoder, procedurer.
- Vektor DB (pgvector): episodisk semantisk søgning.
Operationer:
- Sessionstart: auto-indlæsning af semantisk profil + de sidste 3 sessioner + åbne punkter.
- Under sessionen: Episodisk hentning aktiveres efter emnerelevans.
- Ved sessionens afslutning: LLM-baseret udtræk; brugeren kan se, hvad der blev lært.
- I baggrunden: Ugentlig konsolidering (kombinér relaterede episoder, og nedprioritér gamle).
Brugerstyring:
- Hukommelsespanel, der viser, hvad der huskes.
- Rediger/slet individuelle elementer.
- Knap til »Glem den sidste time«.
- Fuldstændig kontosletning (sletter alt).
Resultater:
- Kontinuitet: Brugere rapporterer, at agenten »føles vedvarende« på tværs af sessioner.
- Personalisering: Svarstilen tilpasses brugerens præferencer uden nye instruktioner.
- Privatliv: Eksplicitte kontroller skaber tillid hos brugerne.
- Omkostninger: Hukommelsen udgør ~5-15% af tokenforbruget pr. session. Det er indsatsen værd.
Fejlmodi, der behandles:
- Hallucinerede erindringer opdages gennem verifikation under udtrækket.
- Forkerte fakta opdages via tillidsniveauer.
- Privatlivsbeskyttelse håndhæves i alle lag til lagring og hentning.
- Overflod håndteres med nedprioritering og konsolidering.
Det er et produktionsklart hukommelsessystem. Det er ikke trivielt, men ligger inden for rækkevidde for et fokuseret team.
Specialiserede værktøjer
En bemærkning om hukommelse som tjeneste:
Mem0. Open source og veldesignet. Håndterer mange af mønstrene ovenfor. Værd at overveje, hvis du ikke vil bygge fra bunden.
Letta (MemGPT). Et andet paradigme — LLM’en styrer selv hukommelsen via værktøjskald. Kraftfuldt, men mere komplekst.
Zep. Hostet hukommelseslag. Let at integrere.
Cognee. Nyere løsning med hukommelse baseret på vidensgrafer.
Disse værktøjer sparer udviklingstid. De tilføjer også en afhængighed og begrænser tilpasning. For modne produktionssystemer giver det ofte mening at bygge hukommelsen selv; til prototyper eller mindre teams er et værktøj et rimeligt valg.
Konklusion
Langtidshukommelse får agenter til at virke intelligente og kontinuerlige frem for glemsomme. Det er også en af de vanskeligste egenskaber at få rigtigt.
Arkitekturen er lagdelt:
- Arbejdshukommelse (i konteksten).
- Sessionshukommelse (de seneste sessioner).
- Episodisk hukommelse (bestemte begivenheder).
- Semantisk hukommelse (stabile fakta).
- Proceduremæssig hukommelse (præferencer og arbejdsgange).
Hvert lag har sin egen logik for lagring, hentning og gradvis nedprioritering. Alle lag bidrager til at gøre agenten nyttig over tid.
De vigtige mønstre:
- Konservativt udtræk (undgå hallucinerede fakta).
- Tillidsbaseret læring (lær ikke fra tilfældige bemærkninger).
- Aktiv glemsel (nedprioritering og oprydning).
- Brugerstyring (gennemsigtighed og redigerbarhed).
- Privatlivsbeskyttelse (på alle lag).
Udført rigtigt ændrer hukommelse AI fra »en ny fremmed i hver samtale« til »en vedvarende, nyttig partner«. Det er forskellen mellem AI som værktøj og AI som kollega.
For agenter, du forventer at bruge over dage, uger og måneder, er hukommelse ikke valgfri. Den er grundlæggende. Byg den bevidst med de nødvendige lag og den nødvendige disciplin.



