Prompt engineering och LLM-optimering för utvecklare · Lektion

Minnes- och tillståndshantering för agenter

Implementera tekniker för beständigt minne och tillståndshantering i LLM-agenter för att möjliggöra långvariga konversationer och komplexa uppgiftssekvenser.

Lektion 2 av 411 steg

Minnes- och tillståndshantering för agenter är en gratis lektion i Prompt engineering och LLM-optimering för utvecklare på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Prompt engineering och LLM-optimering för utvecklare, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Prompt engineering och LLM-optimering för utvecklare innehåller totalt 4 lektioner.

Agenter behöver minne

LLM-agenter är utformade för att utföra komplexa uppgifter. Men som standard är LLM:er tillståndslösa! Det innebär att de inte "minns" tidigare interaktioner.

För att en agent ska kunna föra meningsfulla samtal eller slutföra uppgifter i flera steg behöver den kunna återkalla tidigare information. Det är här minne kommer in.

Korttids- och långtidsminne

Agentminne kan delas in i två huvudtyper:

  • Korttidsminne: Det fungerar ungefär som människans arbetsminne. Det innehåller aktuell och relevant information för omedelbar användning, ofta den obearbetade konversationshistoriken.
  • Långtidsminne: Lagrar information under längre perioder, till exempel tidigare konversationer eller inlärda fakta. Det hjälper agenter att behålla kunskap även efter den aktuella interaktionen.

Konversationsbuffertminne

Den enklaste formen av korttidsminne för en agent är en konversationsbuffert. Den lagrar det obearbetade meddelandeutbytet mellan användaren och agenten.

När ett nytt svar genereras får agenten hela bufferten som prompt, vilket gör att den kan behålla kontexten för den aktuella turen.

Enkel demonstration av chattbuffert

Här är ett enkelt Python-exempel som simulerar en konversationsbuffert. Varje nytt meddelande läggs till i en lista som representerar agentens minne.

class AgentMemory:
    def __init__(self):
        self.history = []

    def add_message(self, role, content):
        self.history.append(f"{role}: {content}")

    def get_history(self):
        return "\n".join(self.history)

# Simulate agent interaction
memory = AgentMemory()
memory.add_message("User", "Hi, what's the weather like?")
memory.add_message("Agent", "It's sunny today.")
memory.add_message("User", "What about tomorrow?")

print("Current conversation history:")
print(memory.get_history())

Sammanfattning för långtidsminne

Obearbetade konversationsbuffertar växer snabbt, når LLM:ens kontextfönstergränser och ökar kostnaderna. Sammanfattning är en viktig teknik för långtidsminne.

I stället för att skicka hela historiken sammanfattar vi med jämna mellanrum äldre delar av konversationen. Då behåller vi huvudpunkterna och tar bort utförliga detaljer.

Konceptet sammanfattat minne

Det här exemplet visar hur en sammanfattning kan genereras och användas. I en verklig applikation skulle en LLM skapa sammanfattningen, men här simulerar vi processen.

class AgentMemory:
    def __init__(self):
        self.buffer = []
        self.summary = "No previous conversation."

    def add_message(self, role, content):
        self.buffer.append(f"{role}: {content}")
        # In a real app, trigger LLM summarization here
        if len(self.buffer) > 4: # Example threshold
            self.summarize_buffer()

    def summarize_buffer(self):
        # Simulate LLM summarizing the buffer
        old_messages = "\n".join(self.buffer[:-2])
        new_summary = f"Summary of past: {old_messages[:30]}..."
        self.summary = new_summary
        self.buffer = self.buffer[-2:] # Keep recent messages

    def get_full_context(self):
        return f"Previous summary: {self.summary}\n" + \
               "\n".join(self.buffer)

memory = AgentMemory()
memory.add_message("User", "Tell me about your capabilities.")
memory.add_message("Agent", "I can answer questions.")
memory.add_message("User", "Can you write code?")
memory.add_message("Agent", "Yes, in Python.")
memory.add_message("User", "What about Java?") # This triggers summary
memory.add_message("Agent", "I can try some Java.")

print("Agent's current context:")
print(memory.get_full_context())

Agentens uppgiftstillstånd

Förutom att komma ihåg konversationen behöver agenter hantera tillstånd för att slutföra uppgifter i flera steg. Det innebär att hålla reda på framsteg, fattade beslut och insamlad information.

Tänk på det som en checklista eller en ändlig tillståndsmaskin för agentens mål. För att boka ett flyg behöver agenten till exempel känna till avreseort, destination och datum.

Exempel på tillstånd vid flygbokning

Föreställ dig en agent som hjälper till att boka ett flyg. Dess interna tillstånd kan innehålla:

  • Status: "collecting_info", "searching_flights", "booking_confirmed"
  • Avreseort: "London"
  • Destinationsort: "Paris"
  • Avresedatum: "2024-12-25"
  • Antal passagerare: "1"

Agenten uppdaterar detta tillstånd när den samlar in information från användaren.

Utmaningar med minne och tillstånd

Hantering av agentminne och tillstånd medför flera viktiga utmaningar:

  • Kontextfönstrets begränsningar: Hur mycket information kan LLM:en bearbeta samtidigt?
  • Kostnad: Längre kontexter innebär fler token och högre API-kostnader.
  • Återhämtning: Hur hittar agenten effektivt den mest relevanta tidigare informationen vid mycket långsiktigt minne, till exempel en kunskapsbas?
  • Konsekvens: Säkerställ att agentens tillstånd korrekt återspeglar uppgiftens framsteg och insamlade data.

Kunskapskontroll: minne

Nu testar vi er förståelse av tekniker för agentminne och tillståndshantering.

Sammanfattning: minne och tillstånd

I den här lektionen utforskade vi hur minne och tillstånd är avgörande för att LLM-agenter ska kunna föra långvariga konversationer och slutföra komplexa uppgifter.

  • Vi gick igenom tekniker för korttidsminne i konversationsbuffertar och långtidsminne med sammanfattning.
  • Vi tittade också på hur tillståndshantering hjälper agenter att följa framsteg genom processer i flera steg.

Dessa tekniker är grundläggande för att bygga verkligt kapabla och beständiga AI-agenter.

Gratis att börja

Lär dig Prompt engineering och LLM-optimering för utvecklare med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”Minnes- och tillståndshantering för agenter” gratis?

Ja – hela texten till ”Minnes- och tillståndshantering för agenter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Prompt engineering och LLM-optimering för utvecklare, kan Ni uppgradera till CoddyKit PRO. Kursen i Prompt engineering och LLM-optimering för utvecklare innehåller totalt 4 lektioner.

Vad lär jag mig i ”Minnes- och tillståndshantering för agenter”?

Implementera tekniker för beständigt minne och tillståndshantering i LLM-agenter för att möjliggöra långvariga konversationer och komplexa uppgiftssekvenser. Ni övar på Prompt engineering och LLM-optimering för utvecklare med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Prompt engineering och LLM-optimering för utvecklare?

Du behöver inga förkunskaper. Utbildningen i Prompt engineering och LLM-optimering för utvecklare på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”Minnes- och tillståndshantering för agenter”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Prompt engineering och LLM-optimering för utvecklare-lektionen?

Ja. Varje Prompt engineering och LLM-optimering för utvecklare-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Utforma system med flera agenter
  2. Minnes- och tillståndshantering för agenter
  3. Autonom arbetsflödesautomatisering
  4. Agentreflektion och självkorrigerande loopar
← Tillbaka till Prompt engineering och LLM-optimering för utvecklare