En agent utan persistens mellan sessioner börjar varje session från den kontext som tillförs. Persistens kan minska upprepad briefing, men skapar också skyldigheter kring integritet, korrekthet, isolering och radering.
Detta är minnesproblemet. Kontextfönster hanterar det aktuella samtalet. Långtidsminne över sessioner, dagar och månader kräver en egen arkitektur. Det är svårare än det ser ut.
Artikeln presenterar en referensdesign att testa, inte en certifierad implementation. Produktteam måste verifiera åtkomstkontroller, korrigering, lagringstid, radering, återställning och hämtningskvalitet i sin egen stack.
Vad ”minne” betyder
En förenklad syn är att minne betyder att ”modellen minns saker mellan samtal”. Verkligheten är mer nyanserad. Kognitionsvetenskapen skiljer mellan olika sorters minne, och AI-agenters minne gynnas av en liknande uppdelning:
Arbetsminne. Det aktuella samtalet. Hålls i kontextfönstret. Förloras när samtalet avslutas, om det inte sparas.
Episodiskt minne. Specifika tidigare händelser. ”Förra tisdagen diskuterade vi X.” ”För tre månader sedan beslutade du Y.”
Semantiskt minne. Allmänna fakta. ”Du heter Alice.” ”Du föredrar kortfattade svar.” ”Ditt företag finns i Tallinn.”
Procedurellt minne. Hur saker ska göras. ”När användaren ber om ett möte, använd den här mallen.” ”När kunden tillhör nivå X, följ process Y.”
Olika minnestyper fyller olika funktioner. Använd bara de lager som produkten kan motivera och driva. Mer lagring är inte automatiskt bättre.
Vad minnet ska åstadkomma
Målen före arkitekturen:
Kontinuitet. Agenten fortsätter där den slutade. Du behöver inte presentera dig på nytt i varje session.
Personanpassning. Agenten tillämpar dina preferenser utan att bli ombedd. Den skriver med din röst, använder dina verktyg och hänvisar till ditt team.
Bevarad kontext. Beslut från tidigare samtal påverkar aktuella samtal. ”Vi beslutade X förra månaden” ska kommas ihåg.
Återanvändning av bekräftade preferenser. Systemet kan återanvända en uttrycklig eller verifierad preferens i de sammanhang där den gäller. Upprepning ensam bevisar inte att ett verktyg, språk eller beteende ska bli standard.
Integritet och glömska. Vad som koms ihåg, vad som inte gör det och vad som raderas. Detta gäller både användarnas förtroende och regelefterlevnad.
Målen kan stå i konflikt. Kontinuitet kan gynnas av utvald persistens, medan integritet och korrekthet talar för minimering, syftesbegränsning, korrigering och radering. Arkitekturen måste göra avvägningarna uttryckliga.
Arkitekturen
En typisk skiktad arkitektur:
┌─────────────────────────────────────┐
│ Arbetsminne (i kontexten) │ Aktuellt samtal
├─────────────────────────────────────┤
│ Sessionsminne (nyligen) │ De N senaste samtalen
├─────────────────────────────────────┤
│ Episodiskt minne (långsiktigt) │ Specifika tidigare händelser
├─────────────────────────────────────┤
│ Semantiskt minne (fakta) │ Stabila fakta om användaren
├─────────────────────────────────────┤
│ Procedurellt minne (preferenser) │ Hur agenten ska agera för användaren
└─────────────────────────────────────┘
Varje lager behöver uttryckligt beteende för lagring, hämtning, åtkomst, proveniens, korrigering, lagringstid och radering. Flera logiska lager kan dela ett fysiskt lager.
Vi går igenom dem ett i taget.
Lager 1: Arbetsminne
Detta behandlas redan i artikeln om kontextteknik. Det är det aktuella samtalet i kontexten. Samtal med flera turer använder nivåindelad kontext med de senaste turerna ordagrant och äldre turer sammanfattade.
En överlämning till långtidsminnet kan ske vid en uttrycklig kontrollpunkt, en beständig händelse eller sessionens slut. Eftersom sessioner kan avslutas abrupt ska bara godkända kandidater lagras, och skrivstatus ska vara synlig i stället för att man antar att en hook vid sessionsslut alltid körs.
Lager 2: Sessionsminne
Sammanfattningar av nyliga sessioner kan sparas med begränsad detalj när produkten har ett motiverat syfte. Ett antal, exempelvis de senaste tio samtalen, är en illustrativ policyparameter och inte ett standardvärde.
Implementeringen är en sammanfattning per session som lagras med tidsstämpel och ämne. När användaren återkommer har agenten en snabb överblick över vad som nyligen har hänt.
{
"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"]
}
När en ny session börjar kan en behörig delmängd av de senaste sammanfattningarna läsas in efter tester av hämtningskvalitet, relevans, tokenbudget och integritet. Läs inte automatiskt in ett fast antal i varje kontext som standard.
Detta är en relativt enkel form av minne över sessionsgränser, men den kräver fortfarande isolering, proveniens, korrigering, livscykel och tester av informationshämtning.
Lager 3: Episodiskt minne
Specifika tidigare händelser som är värda att minnas på längre sikt: beslut, milstolpar och viktiga samtal.
De extraheras från sessioner när de är viktiga och lagras med utförliga 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"
}
Hämtning sker när relevanta episoder behövs i det aktuella samtalet. Det kan göras med semantisk sökning, genom att bädda in den aktuella frågan och hitta matchande episoder, med ämnesmatchning eller tidsbaserade frågor som ”vad hände förra månaden?”.
Utmaningen är att avgöra vad som kvalificerar sig som ”en episod värd att minnas”. Ett möjligt mönster är att en modell vid en godkänd kontrollpunkt föreslår beslut, åtaganden eller milstolpar med källavsnitt och bekräftelseregler. En modellgenererad viktighetsetikett är inte behörighet att lagra personuppgifter.
Lager 4: Semantiskt minne
Stabila fakta om användaren som alltid bör vara tillgängliga. ”Alice är vd för Acme. Hon föredrar en kortfattad kommunikationsstil. Hon arbetar i Tallinns tidszon.”
Dessa är färre än episoder men hämtas oftare. De utgör agentens ”modell av användaren”.
Implementeringen är en strukturerad 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"]
}
}
Uppdateringar sker när agenten lär sig nya fakta. Efter en session identifierar en LLM nya stabila fakta och föreslår dem. De slås antingen samman automatiskt eller läggs i kö för granskning.
Det är viktigt att semantiska fakta är välunderbyggda och stabila. En kommentar i förbifarten under ett samtal, som ”jag kanske provar Python”, ska inte bli ett semantiskt faktum som ”Alice föredrar Python”. Tröskeln är högre.
Ett rent illustrativt flöde för tillförlitlighetsbedömning, som fortfarande kräver proveniens och kalibrering:
- Härlett en gång: endast kandidat, med källavsnitt och utan automatisk beteendeeffekt.
- Uttryckligen sagt: kandidat för den angivna omfattningen; bekräfta före betydelsefull återanvändning.
- Uttryckligen bekräftat: lagrat med proveniens, omfattning, granskningsdatum och användarkontroller.
Detta hindrar agenten från att ”lära sig” felaktiga fakta från kommentarer i förbifarten.
Lager 5: Procedurellt minne
Hur agenten ska bete sig för den här användaren. Arbetsflöden, mallar och preferenser för specifika åtgärder.
Exempel:
{
"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"
}
}
Detta är mönster som agenten följer när relevanta uppgifter uppstår.
Uppdateringar kan börja med en uttrycklig instruktion eller ett upprepat mönster. Upprepat beteende kan utlösa en begäran om bekräftelse, men ska inte tyst skapa en beständig procedur.
Val av lagring
Var finns minnet?
SQL-databas. Tillförlitlig, sökbar och välkänd. Varje minnestyp får en tabell. Kopplingar används vid hämtning. Passar strukturerade åtkomstmönster.
Vektordatabas. För semantisk hämtning av episoder, som ”hitta minnen som rör detta ämne”. Episoder bäddas in och hämtas genom likhet.
Kombination. SQL plus ett vektorindex är ett alternativ när både strukturerad och semantisk åtkomst krävs. Dubbel representation ökar skyldigheterna för synkronisering och radering, så jämför lösningen med ett enklare lager.
Specialiserade minnesverktyg. Mem0, Letta, tidigare MemGPT, och Zep. De är särskilt byggda som minneslager för agenter. Värda att överväga om du vill ha en abstraktion på högre nivå.
Börja med det minsta lagret som klarar tester för strukturerad åtkomst, semantisk hämtning, isolering mellan kundorganisationer, proveniens, korrigering, lagringstid, radering, säkerhetskopiering och återställning. SQL, ett vektorindex, båda eller ett specialiserat lager kan passa. Jämför drift- och migreringsbörda i stället för att anta en standard för teamet.
Hämtningsmönster
Hur förs minnet in i agentens kontext?
Mönster 1: Automatisk inläsning vid sessionsstart
När en ny session börjar hämtas automatiskt:
- Användarens semantiska profil.
- De N senaste sessionssammanfattningarna.
- Eventuella öppna åtaganden eller uppföljningar.
Detta är den grundkontext agenten har när användaren anländer.
Mönster 2: Frågestyrd hämtning
När användarens meddelande antyder tidigare ämnen hämtas relevanta episoder.
Exempel: användaren frågar ”vad blev slutsatsen i vår databasdiskussion?”. Agenten söker efter episoder om ”databas” och hämtar den relevanta.
Implementeringen bäddar in användarens meddelande, hittar liknande episoder och inkluderar dem i kontexten.
Mönster 3: Explicita minnesverktyg
Agenten har verktyg för att söka i minnet:
search_episodes(query): hitta specifika tidigare händelser.get_user_profile(): hämta den semantiska profilen.list_open_items(): hämta väntande åtaganden.
Agenten avgör utifrån samtalet när de ska anropas.
Mönster 4: Minnesberikning i bakgrunden
En bakgrundsprocess granskar regelbundet minnet och:
- Konsoliderar relaterade episoder till teman.
- Uppdaterar tillförlitlighetsbedömningen för fakta.
- Föråldrar gamla minnen som inte har använts.
Detta är ”minnesunderhåll”: att hålla minneslagret användbart över tid.
Att skriva minnen
När skrivs minnen?
Extrahering vid kontrollpunkt eller sessionsslut
Ett batchmönster som måste testas för beständig leverans och abrupt avslut. Vid en godkänd kontrollpunkt eller sessionens slut:
- En LLM analyserar samtalet.
- Den extraherar:
- Sessionssammanfattning.
- Viktiga händelser för det episodiska minnet.
- Nya fakta för det semantiska minnet.
- Preferenssignaler för det procedurella minnet.
- Den uppdaterar och lagrar.
Batchbearbetning kan minska arbetet under sessionen, men kan också förlora uppdateringar när sessionen avslutas oväntat och fördröja korrigering. Mät båda beteendena och använd ett beständigt jobb när persistens krävs.
Prompt för extrahering:
Analysera det här samtalet. Returnera JSON med:
1. summary: sammanfattning av händelserna i 2–3 meningar.
2. notable_events: lista över betydelsefulla händelser som är värda att minnas (fattade beslut, milstolpar och viktig kontext).
3. new_facts: lista över stabila fakta som har lärts in om användaren (inkludera endast vid hög tillförlitlighet).
4. preference_signals: lista över observerade preferenser (endast om de uttryckts tydligt eller upprepats).
5. open_items: lista över olösta frågor som användaren kan vilja återkomma till.
Var försiktig. Inkludera endast poster med hög tillförlitlighet. Det är bättre att missa något än att hallucinera.
Realtidsuppdateringar för värdefulla fakta
För vissa fakta är det fel att vänta till sessionens slut. Om en användare säger ”egentligen heter jag Alex, inte Alice” bör rättelsen tillämpas omedelbart.
Ett mönster är att låta agenten upptäcka uttryckliga rättelser eller viktiga nya fakta i realtid och uppdatera minnet direkt.
Det kräver försiktig utformning, eftersom LLM-modellen kan ”lära sig” felaktiga fakta. Vissa team kräver användarbekräftelse innan realtidsuppdateringar tillämpas.
Användarinitierade uppdateringar
Användaren kan uttryckligen tala om för agenten vad som ska kommas ihåg:
- ”Kom ihåg att jag föredrar X.”
- ”Glöm det jag sade om Y.”
- ”Gör alltid Z.”
Detta ska vara förstaklasskontroller. Starta den begärda åtgärden omedelbart, visa dess omfattning och status och förklara om rättsligt krävd lagring eller säkerhetskopiors utgång hindrar ett löfte om omedelbar universell radering. Ett uttryckligt påstående har stark proveniens, men bevisar inte att varje härledd omfattning är korrekt.
Ett specifikt verktyg som agenten kan erbjuda:
remember(content: string, type: "fact" | "preference" | "procedure")
forget(content: string)
list_what_you_remember()
Att ge användarna denna kontroll bygger förtroende.
Glömska och föråldring
Obegränsat minne skapar risker för hämtning, kostnad, integritet och korrekthet. En dokumenterad livscykel är nödvändig. Tidsbaserad föråldring är ett alternativ, inte en ersättning för obligatorisk lagring eller radering.
Tidsbaserad föråldring
Äldre minnen hämtas med lägre sannolikhet. Implementering:
- Poängsätt hämtning med
relevance * recency_decay. - Gamla minnen försvinner i praktiken om de inte uttryckligen efterfrågas.
Betydelsebaserad lagring
Viktiga episoder bevaras längre och triviala föråldras snabbare.
- Märk episoder med betydelse när de skrivs.
- Värdefulla händelser: en syftesspecifik lagringstid med ägare och granskningsdatum; använd inte obestämd lagring som standard.
- Rutinmässiga händelser: föråldras över några månader.
Användarinitierad glömska
Användaren kan begära att specifika minnen raderas.
- Specifika fakta.
- Specifika tidsperioder.
- Specifika ämnen.
Implementeringen är ett raderingsflöde som tar bort primärposten samt alla härledda fragment, inbäddningar, sammanfattningar, index, cacher, exporter och köade jobb. En tombstone-markör kan förhindra återinläsning, men att bara dölja en post är inte radering. Definiera hur säkerhetskopior upphör att gälla och testa att raderade data inte återkommer efter återställning.
Radering för att uppfylla regelkrav
Rättsliga krav kan kräva radering eller lagring. GDPR artikel 17 definierar en rätt till radering med undantag. Juridiska rådgivare bör koppla den och andra tillämpliga regler till produkten, jurisdiktionen och datarollen.
- Begäran om radering av användarkonto → kör det granskade flödet för radering eller begränsning i alla omfattade lager och redovisa undantag eller när säkerhetskopior upphör.
- Begäran om radering av data → lokalisera omfattade poster och derivat och verifiera sedan resultatet.
- Lagringsgränser → låt omfattade poster upphöra automatiskt enligt godkänt schema.
Detta måste byggas in från början. Efterhandsanpassning är smärtsam.
Integritetsaspekter
Minne är känsligt. Minneslagret innehåller mycket information om användaren. Överväg följande:
Kryptering i vila
Minnesdata krypteras. Det är standardpraxis.
Åtkomstkontroller
Vem kan se en användares minne? Bara användaren, bara systemet eller supportpersonal under vissa villkor? Definiera detta tydligt. Granska åtkomsten.
Hantering av personidentifierande information
Personidentifierande information, som riktiga namn, adresser och ekonomiska uppgifter, ska märkas och behandlas varsamt. Särskilda åtkomstkontroller och raderingsrutiner behövs.
Insyn för användaren
Där produkten och tillämpliga rättigheter kräver det ska användare kunna se, korrigera, avgränsa och radera minnesposter. En minnespanel är en möjlig implementation. Testa förståelsen och skydda ytan som annan känslig data.
Det agenten minns om dig:
Profil:
- Namn: Alice Tamm
- Roll: vd på Acme Corp
- Kommunikationsstil: kortfattad, direkt
Senaste sessioner:
- 2026-05-14: Utarbetade förslag till Acme
- 2026-05-12: Granskade resultaten för Q1
- ...
Preferenser:
- Föredrar kortfattade svar
- Använder Notion, Slack och Linear
[Redigera] [Ta bort specifika poster] [Ta bort allt]
Den transparensen bygger förtroende. Ett ogenomskinligt minne utan insyn för användaren gör det inte.
Delning mellan kontexter
Om användaren har flera ”lägen”, som en arbetsagent och en privat agent, kan hen vilja hålla minnena åtskilda. Dela inte automatiskt mellan lägen om användaren inte har bett om det.
Vanliga fellägen
Några mönster:
Fel 1: Hallucinerade minnen
Agenten påstår sig minnas saker som aldrig hänt. ”Förra veckan enades vi om X”, trots att X aldrig diskuterades.
Orsak: LLM-modellen ”fyller i” minnen som låter rimliga under extrahering eller hämtning.
Åtgärd: förankra minnesåtgärderna i verkliga samtalsdata. LLM-modellen extraherar, men verifiering görs mot det faktiska transkriptet. Hallucinerade fakta ska flaggas.
Fel 2: Felaktiga fakta lärs in
Agenten anger felaktiga fakta med stor säkerhet. ”Du sade att du föredrar Python”, när du egentligen sade att du var tvungen att använda Python på jobbet.
Orsak: feltolkning under extraheringen.
Åtgärd: använd trösklar för tillförlitlighet. Lär endast in fakta från uttryckliga, upprepade eller bekräftade påståenden. Användaren ska kunna rätta dem.
Fel 3: Integritetsläckor
Minnen från en användare visas i en annan användares samtal. Katastrofalt.
Orsak: fel i logiken som avgränsar användare.
Åtgärd: verkställ användarisolering i både lagrings- och hämtningslagret. Granska kontrollerna. Lita aldrig på att LLM-modellen filtrerar.
Fel 4: Minnesöverflöd
Efter ett år omfattar minnet flera megabyte per användare. Hämtningen blir långsammare och kostnaderna ökar.
Orsak: ingen föråldring eller gallring.
Åtgärd: aggressiv föråldring. Merparten av minnet blir otillgängligt, genom låg hämtningsprioritet, efter några månader. Komprimera regelbundet.
Fel 5: Inaktuella fakta
Användaren bytte roll för 6 månader sedan. Agenten hänvisar fortfarande till den gamla rollen.
Orsak: fakta uppdateras inte när de ersätts.
Åtgärd: upptäck motsägelser, bevara proveniens och giltighetsdatum och be om bekräftelse när det auktoritativa värdet är oklart. ”Senast vinner” är osäkert för fördröjda, citerade eller skadliga indata.
Fel 6: Förvirrande konsolidering
Minneskonsolidering i bakgrunden skriver ibland om minnen så att information går förlorad.
Orsak: aggressiv sammanfattning utan att centrala fakta bevaras.
Åtgärd: konsolideringen måste uttryckligen bevara fakta. Testa konsolideringen på verkliga minnestranskript.
En implementationsskiss: personlig assistent med minne
En illustrativ referensdesign är en personlig AI-assistent för enskilda användare.
Minneslager:
- Arbetsminne: det aktuella samtalet.
- Session: de senaste 7 sessionerna i sammanfattad form.
- Episodiskt: de 100 senaste viktiga händelserna, med semantisk sökning.
- Semantiskt: användarprofil med namn, roll, preferenser och verktyg.
- Procedurellt: uttryckliga arbetsflöden som användaren har skapat.
Lagring:
- SQL (Postgres): strukturerad profil, sessioner, episoder och procedurer.
- Vektordatabas (pgvector): semantisk sökning i episoder.
Operationer:
- Sessionsstart: läs automatiskt in den semantiska profilen, de senaste 3 sessionerna och öppna punkter.
- Under sessionen: hämta episoder när ämnets relevans utlöser det.
- Sessionsslut: LLM-baserad extrahering, där användaren kan granska vad som lärdes in.
- I bakgrunden: konsolidering varje vecka, med sammanslagning av relaterade episoder och föråldring av inaktuella.
Användarkontroller:
- En minnespanel som visar vad som koms ihåg.
- Redigering och radering av enskilda objekt.
- Knappen ”Glöm den senaste timmen”.
- Flöde för fullständig kontoradering med verifierad täckning, dokumenterade undantag och beteende för när säkerhetskopior upphör.
Belägg som krävs innan detta kallas framgångsrikt:
- slutförande av uppgifter med och utan hämtat minne på en fast utvärderingsmängd,
- precision i lagrade fakta och hämtade minnen, inklusive motsägelsehantering,
- isoleringstest mellan kundorganisationer och användare,
- tester som visar att korrigeringar och raderingar slår igenom i poster, inbäddningar, cacher, exporter och jobb samt i säkerhetskopior när deras lagringstid löper ut,
- token-, lagrings-, latens- och driftkostnad från faktiska spår,
- tester av användarnas förståelse och kontroll i stället för antagen trygghet.
Hanterade fellägen:
- Fall med hallucinerade minnen ingår i tester av extrahering och hämtning.
- Tillförlitlighetspoäng kalibreras; de gör inte i sig ett faktum sant.
- Auktorisering verkställs före hämtning och igen före presentation.
- Jobb för lagringstid och konsolidering har granskningsloggar, felhantering och raderingstester.
Detta är en designchecklista, inte bevis på produktionsmognad. Produktionsstatus kräver implementationsbelägg och säkerhets- och integritetsgranskning.
Specialiserade verktyg
Några ord om alternativ för minne som tjänst:
Mem0. Ett minneslager med öppen källkod. Utvärdera aktuell dokumentation och kod mot dina krav på persistens, isolering och radering.
Letta (MemGPT). En verktygsorienterad minnesdesign. Granska den aktuella dokumentationen och de operativa gränserna.
Zep. En hanterad minnes- och kontexttjänst. Validera den aktuella dokumentationen, datagränsen och raderingskontraktet.
Cognee. Ett alternativ orienterat mot kunskapsgrafer. Validera mognad och passform mot aktuell dokumentation och kodarkivet före införande.
Verktygen kan minska implementationsarbetet och tillför samtidigt beroenden kring leverantör, säkerhet, migrering och datalivscykel. Jämför dem med en intern design med samma acceptanstester.
Bygg minsta motiverade minne
Långtidsminne ger agenter kontinuitet mellan sessioner i stället för att de alltid börjar utan historik. Det är också en av de svårare sakerna att få rätt.
Arkitekturen är skiktad:
- Arbetsminne i kontexten.
- Sessionsminne för de senaste sessionerna.
- Episodiskt minne för specifika händelser.
- Semantiskt minne för stabila fakta.
- Procedurellt minne för preferenser och arbetsflöden.
Varje lager har egen logik för lagring, hämtning och föråldring. Alla bidrar till att göra agenten användbar över tid.
Mönstren som spelar roll:
- Konservativ extrahering, så att fakta inte hallucineras.
- Tillförlitlighetsstyrd inlärning, så att kommentarer i förbifarten inte lärs in.
- Aktiv glömska genom föråldring och gallring.
- Användarkontroll genom transparens och möjlighet att redigera.
- Tekniska integritetskontroller i varje lager.
När minnet klarar utvärderings- och livscykeltesterna kan det minska upprepad briefing och göra bekräftade preferenser tillgängliga mellan sessioner.
För agenter som kräver kontinuitet mellan sessioner är persistens ett uttryckligt produktval. Bygg minsta motiverade minne med proveniens, auktorisering, användarkontroll och en testad väg till slutet av livscykeln.



