ai-agents-for-beginners

Minne for AI-agenter

Agent Memory

Når man diskuterer de unike fordelene ved å lage AI-agenter, er det to ting som hovedsakelig diskuteres: evnen til å bruke verktøy for å fullføre oppgaver og evnen til å forbedre seg over tid. Minne er grunnlaget for å lage selvforbedrende agenter som kan skape bedre opplevelser for brukerne våre.

I denne leksjonen vil vi se på hva minne er for AI-agenter og hvordan vi kan håndtere det og bruke det til fordel for applikasjonene våre.

Introduksjon

Denne leksjonen vil dekke:

Forstå AI-agentminne: Hva minne er og hvorfor det er viktig for agenter.

Implementering og lagring av minne: Praktiske metoder for å legge til minnekapasiteter til AI-agentene dine, med fokus på korttids- og langtidsminne.

Gjøre AI-agenter selvforbedrende: Hvordan minne gjør det mulig for agenter å lære fra tidligere interaksjoner og bli bedre over tid.

Tilgjengelige implementeringer

Denne leksjonen inkluderer to omfattende notatbøker:

13-agent-memory.ipynb: Implementerer minne ved bruk av Mem0 og Azure AI Search med Microsoft Agent Framework

13-agent-memory-cognee.ipynb: Implementerer strukturert minne ved bruk av Cognee, som automatisk bygger kunnskapsgraf støttet av embeddings, visualiserer graf og intelligent uthenting

Læringsmål

Etter å ha gjennomført denne leksjonen vil du vite hvordan du:

Skiller mellom ulike typer AI-agentminne, inkludert arbeidsminne, korttidsminne og langtidsminne, samt spesialiserte former som persona- og episodisk minne.

Implementerer og administrerer korttids- og langtidsminne for AI-agenter ved hjelp av Microsoft Agent Framework, med verktøy som Mem0, Cognee, Whiteboard-minne og integrasjon med Azure AI Search.

Forstår prinsippene bak selvforbedrende AI-agenter og hvordan robuste minnehåndteringssystemer bidrar til kontinuerlig læring og tilpasning.

Forstå AI-agentminne

I sin kjerne refererer minne for AI-agenter til mekanismene som lar dem beholde og hente informasjon. Denne informasjonen kan være spesifikke detaljer om en samtale, brukerpreferanser, tidligere handlinger eller til og med lærte mønstre.

Uten minne er AI-applikasjoner ofte statsløse, noe som betyr at hver interaksjon starter fra bunnen av. Dette fører til en repeterende og frustrerende brukeropplevelse hvor agenten “glemmer” tidligere kontekst eller preferanser.

Hvorfor er minne viktig?

En agents intelligens er dypt knyttet til dens evne til å hente frem og bruke tidligere informasjon. Minne gjør at agenter kan være:

Reflekterende: Lære av tidligere handlinger og resultater.

Interaktive: Holde kontekst gjennom en pågående samtale.

Proaktive og reaktive: Forutse behov eller respondere passende basert på historiske data.

Autonome: Operere mer uavhengig ved å trekke på lagret kunnskap.

Målet med å implementere minne er å gjøre agentene mer pålitelige og kapable.

Typer minne

Arbeidsminne

Tenk på dette som et stykke skissepapir en agent bruker under en enkelt, pågående oppgave eller tankeprosess. Det holder umiddelbar informasjon som trengs for å beregne neste steg.

For AI-agenter fanger arbeidsminnet ofte den mest relevante informasjonen fra en samtale, selv om hele chattehistorikken er lang eller avkortet. Det fokuserer på å hente ut nøkkel elementer som krav, forslag, beslutninger og handlinger.

Eksempel på arbeidsminne

I en reisebestillingsagent kan arbeidsminnet fange brukerens nåværende forespørsel, som “Jeg vil bestille en tur til Paris”. Dette spesifikke kravet holdes i agentens umiddelbare kontekst for å veilede den nåværende interaksjonen.

Korttidsminne

Denne typen minne beholder informasjon for varigheten av en enkelt samtale eller økt. Det er konteksten i den nåværende chatten, som gjør at agenten kan referere tilbake til tidligere turer i dialogen.

I Microsoft Agent Framework Python SDK-eksemplene tilsvarer dette AgentSession, opprettet med agent.create_session(). Økten er rammeverkets innebygde korttidsminne: den holder samtalekonteksten tilgjengelig mens samme økt gjenbrukes, men den konteksten beholdes ikke når økten avsluttes eller applikasjonen startes på nytt. Bruk langtidsminne for fakta og preferanser som må overleve på tvers av økter, vanligvis gjennom en database, vektorindeks eller annen vedvarende lagring.

Eksempel på korttidsminne

Hvis en bruker spør, “Hvor mye ville en flybillett til Paris koste?” og deretter følger opp med “Hva med overnatting der?”, sikrer korttidsminnet at agenten vet at “der” refererer til “Paris” i samme samtale.

Langtidsminne

Dette er informasjon som vedvarer over flere samtaler eller økter. Det gjør at agenter kan huske brukerpreferanser, historiske interaksjoner eller generell kunnskap over lang tid. Dette er viktig for personalisering.

Eksempel på langtidsminne

Et langtidsminne kan lagre at “Ben liker ski og utendørsaktiviteter, liker kaffe med fjellutsikt og ønsker å unngå avanserte skispor på grunn av en tidligere skade”. Denne informasjonen, lært fra tidligere interaksjoner, påvirker anbefalinger i fremtidige reiseplanleggingsøkter, og gjør dem svært personlige.

Personaminne

Denne spesialiserte minnetypen hjelper en agent å utvikle en konsistent “personlighet” eller “persona”. Det gjør det mulig for agenten å huske detaljer om seg selv eller sin tiltenkte rolle, noe som gjør interaksjonene mer flytende og fokuserte.

Eksempel på personaminne Hvis reiseagenten er designet for å være en “ekspert på skiplanlegging,” kan personaminne forsterke denne rollen, og påvirke svarene for å være i tråd med en eksperts tone og kunnskap.

Arbeidsflyt-/episodisk minne

Dette minnet lagrer sekvensen av trinn en agent tar under en kompleks oppgave, inkludert suksesser og fiaskoer. Det er som å huske spesifikke “episoder” eller tidligere erfaringer for å lære av dem.

Eksempel på episodisk minne

Hvis agenten prøvde å bestille en spesifikk flyvning, men dette mislyktes på grunn av utilgjengelighet, kan episodisk minne registrere denne feilen, slik at agenten kan prøve alternative flyvninger eller informere brukeren om problemet på en mer informert måte under et senere forsøk.

Entitetsminne

Dette innebærer å hente ut og huske spesifikke enheter (som personer, steder eller ting) og hendelser fra samtaler. Det lar agenten bygge en strukturert forståelse av viktige elementer som drøftes.

Eksempel på entitetsminne

Fra en samtale om en tidligere tur kan agenten hente ut “Paris,” “Eiffeltårnet,” og “middag på restauranten Le Chat Noir” som enheter. I en fremtidig interaksjon kan agenten huske “Le Chat Noir” og tilby å gjøre en ny reservasjon der.

Strukturert RAG (Retrieval Augmented Generation)

Mens RAG er en bredere teknikk, fremheves “Strukturert RAG” som en kraftfull minneteknologi. Den henter ut tett, strukturert informasjon fra ulike kilder (samtaler, e-poster, bilder) og bruker det til å forbedre presisjon, gjenfinning og hastighet i svar. I motsetning til klassisk RAG som kun baserer seg på semantisk likhet, arbeider Strukturert RAG med den iboende strukturen i informasjonen.

Eksempel på strukturert RAG

I stedet for bare å matche nøkkelord, kan Strukturert RAG tolke flydetaljer (destinasjon, dato, tid, flyselskap) fra en e-post og lagre dem på en strukturert måte. Dette gjør det mulig å stille presise spørsmål som “Hvilken flyvning bestilte jeg til Paris på tirsdag?”

Implementering og lagring av minne

Å implementere minne for AI-agenter innebærer en systematisk prosess med minnehåndtering, som inkluderer generering, lagring, uthenting, integrering, oppdatering og til og med “glemming” (eller sletting) av informasjon. Uthenting er et spesielt viktig aspekt.

Spesialiserte minneverktøy

Mem0

En måte å lagre og administrere agentminne på er ved bruk av spesialiserte verktøy som Mem0. Mem0 fungerer som et vedvarende minnelag, som lar agenter hente frem relevante interaksjoner, lagre brukerpreferanser og faktabasert kontekst, og lære av suksesser og feil over tid. Ideen her er at statsløse agenter blir til tilstandsbaserte.

Det fungerer gjennom en tofase minneprosess: uthenting og oppdatering. Først sendes meldinger lagt til en agents tråd til Mem0-tjenesten, som bruker en stor språkmodell (LLM) til å oppsummere samtalehistorikk og hente ut nye minner. Deretter avgjør en LLM-drevet oppdateringsfase om disse minnene skal legges til, endres eller slettes, og lagrer dem i en hybrid datalagring som kan inkludere vektor-, graf- og nøkkel-verdi-databaser. Dette systemet støtter også ulike minnetyper og kan inkludere grafminne for å håndtere relasjoner mellom enheter.

Cognee

En annen kraftfull tilnærming er å bruke Cognee, et åpen kildekode semantisk minnesystem for AI-agenter som omdanner strukturert og ustrukturert data til spørrbare kunnskapsgrafer støttet av embeddings. Cognee tilbyr en dual-store-arkitektur som kombinerer vektorlignende søk med grafrelasjoner, noe som gjør det mulig for agenter å forstå ikke bare hvilken informasjon som er lik, men hvordan begreper henger sammen.

Det utmerker seg i hybrid uthenting som blander vektorlignende, grafstruktur og LLM-rasjonalisering – fra rå oppslag av biter til graf-bevisst spørsmålsteknikk. Systemet opprettholder et levende minne som utvikler og vokser samtidig som det forblir spørrbart som én sammenkoblet graf, som støtter både korttids kontekst i økten og langtidspersisterende minne.

Cognee-notatboken (13-agent-memory-cognee.ipynb) demonstrerer hvordan man bygger dette forente minnelaget, med praktiske eksempler på å hente inn ulike datakilder, visualisere kunnskapsgrafen, og spørre med ulike søkstrategier skreddersydd til spesifikke agentbehov.

Lagring av minne med RAG

Utover spesialiserte minneverktøy som Mem0, kan du bruke robuste søketjenester som Azure AI Search som backend for lagring og uthenting av minner, særlig for strukturert RAG.

Dette gjør at du kan forankre agentens svar i egne data, og sikrer mer relevante og nøyaktige svar. Azure AI Search kan brukes til å lagre brukerspesifikke reiseminner, produktkataloger eller annen domenespesifikk kunnskap.

Azure AI Search støtter funksjoner som Strukturert RAG, som utmerker seg i å hente og hente tett, strukturert informasjon fra store datasett som samtalehistorikk, e-poster eller til og med bilder. Dette gir “supermenneskelig presisjon og gjenkalling” sammenlignet med tradisjonelle tekstbiter og innleggingsmetoder.

Gjøre AI-agenter selvforbedrende

Et vanlig mønster for selvforbedrende agenter innebærer å introdusere en “kunnskapsagent”. Denne separate agenten observerer hovedsamtalen mellom brukeren og hovedagenten. Dens rolle er å:

  1. Identifisere verdifull informasjon: Bestemme om en del av samtalen er verdt å lagre som generell kunnskap eller en spesifikk brukerpreferanse.

  2. Uthente og oppsummere: Destillere det essensielle lærepunktene eller preferansen fra samtalen.

  3. Lagre i en kunnskapsbase: Lagre denne innhentede informasjonen, ofte i en vektordatabasen, slik at den kan hentes frem senere.

  4. Forbedre fremtidige forespørsler: Når brukeren setter i gang en ny forespørsel, henter kunnskapsagenten relevant lagret informasjon og legger den til brukerens prompt, og gir avgjørende kontekst til hovedagenten (lik RAG).

Optimaliseringer for minne

Latency-håndtering: For å unngå å sinke brukerinteraksjoner, kan en billigere og raskere modell brukes først for raskt å sjekke om informasjon er verdt å lagre eller hente, og kun kalle den mer komplekse uthentings-/ekstraksjonsprosessen når det er nødvendig.

Vedlikehold av kunnskapsbase: For en voksende kunnskapsbase kan mindre brukt informasjon flyttes til “kaldlagring” for å kontrollere kostnader.

Har du flere spørsmål om agentminne?

Bli med på Microsoft Foundry Discord for å møte andre elever, delta på kontortimer og få svar på dine AI-agentspørsmål.

Forrige leksjon

Context Engineering for AI Agents

Neste leksjon

Utforske Microsoft Agent Framework


Ansvarsfraskrivelse: Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten Co-op Translator. Selv om vi streber etter nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket skal betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.