AI-agenter · leksjon

Semantisk minne (vektoriserte fakta)

Frittstående fakta agenten har lært om brukeren eller verden, lagret i en vektorindeks.

Leksjon 2 av 415 trinn

Semantisk minne (vektoriserte fakta) er en gratis leksjon i AI-agenter på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i AI-agenter, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Deler av denne leksjonen er ennå ikke oversatt og vises på engelsk.

Hva er semantisk minne?

Semantisk minne inneholder frittstående fakta agenten kjenner til — om brukeren, verden eller selskapet. I motsetning til episodisk minne er ingen tidsstempel knyttet til en bestemt hendelse.

Eksempler:

  • «Brukeren heter Alice.»
  • «Alice foretrekker Celsius.»
  • «Det gjeldende prisnivået er Pro til 20 dollar per måned.»

Lagringsformat

Et vektorlager + strukturerte metadata:

CREATE TABLE semantic_facts (
    id UUID PRIMARY KEY,
    user_id TEXT NOT NULL,
    fact TEXT NOT NULL,
    embedding vector(1536),
    source TEXT,                    -- 'extracted' / 'user-stated' / 'system'
    confidence REAL DEFAULT 1.0,
    created_at TIMESTAMPTZ DEFAULT NOW()
);

Trekk ut fakta fra samtaler

Etter hver økt kjøres en LLM-ekstraktor:

extract_prompt = '''
From the conversation below, list any new facts about the user.
Return JSON: [{"fact": "...", "confidence": 0.0-1.0}]

Conversation:
{transcript}
'''
print(extract_prompt.strip())

Saving Extracted Facts

import uuid

for f in extracted:
    vec = embed(f['fact'])
    conn.execute('''
        INSERT INTO semantic_facts (id, user_id, fact, embedding, confidence, source)
        VALUES (%s, %s, %s, %s, %s, 'extracted')
    ''', (str(uuid.uuid4()), user_id, f['fact'], vec, f['confidence']))

Henting ved inferens

For hvert nytt spørsmål hentes relevante fakta, som settes inn i systemprompten:

def relevant_facts(user_id, query, k=5):
    qvec = embed(query)
    rows = conn.execute('''
        SELECT fact FROM semantic_facts
        WHERE user_id = %s
        ORDER BY embedding <=> %s LIMIT %s
    ''', (user_id, qvec, k))
    return [r[0] for r in rows]

facts = relevant_facts(user_id, user_question)
system = SYSTEM_PROMPT + '\n\nKnown facts:\n' + '\n'.join(facts)

Oppdatering av fakta

Hva skjer hvis et faktum endres? «Alice foretrekker Celsius» -> «Alice foretrekker nå Fahrenheit». To strategier:

  1. Marker det gamle faktumet som foreldet (legg til updated_at, soft delete)
  2. Eller: lagre motsetninger og løs dem ved henting

Avstemming av fakta

Ved uttrekking må det kontrolleres om det finnes motsetninger til eksisterende fakta:

def reconcile(user_id, new_fact):
    similar = relevant_facts(user_id, new_fact, k=3)
    response = llm.invoke(f'Is the new fact ({new_fact}) consistent with existing facts ({similar})? If contradicting, return the obsolete one.')
    if response.has_contradiction:
        mark_obsolete(response.obsolete_id)
    save_fact(new_fact)

Confidence-Weighted Retrieval

rows = conn.execute('''
    SELECT fact FROM semantic_facts
    WHERE user_id = %s AND confidence > 0.6
    ORDER BY embedding <=> %s LIMIT %s
''', ...)

Faktaforvitring

Noen fakta blir utdaterte («gjeldende prosjekt er X»). Legg til en TTL, eller la konfidensen avta over tid:

UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';

Personvernfølsomme fakta

Krypter PII før lagring. Enkelte fakta (om helse og økonomi) trenger ekstra beskyttelse — lagre dem i en separat tabell med strengere tilgangskontroll.

Fakta brukeren kan redigere

Vis brukerne hvilke fakta som er lagret om dem, og la dem redigere eller slette dem. Det bygger tillit og reduserer ubehagelige feil i minnet.

Minne som verktøy

Gjør minneoperasjoner tilgjengelige som verktøy agenten selv kan kalle:

tools = [
    {'name': 'remember_fact', 'description': 'Save a new fact about the user'},
    {'name': 'forget_fact', 'description': 'Remove a stored fact'},
    {'name': 'recall_facts', 'description': 'Search relevant facts for a query'}
]
import json
print(json.dumps(tools, indent=2))

Letta og MemGPT

Letta-rammeverket (tidligere MemGPT) implementerer agentminne i stor skala, med separat «kjerne»-minne (alltid i kontekst) og «arkiv»-minne (søkbart med vektorer).

Semantisk kontra episodisk minne

Hvordan skiller semantisk minne seg fra episodisk minne?

Oppsummering

Lagre fakta om brukeren i et vektorlager, hent de relevante K-faktaene ved hver tur, og sett dem inn i systemprompten. Avstem motsetninger, og la fakta forvitre eller utløpe over tid.

Gratis å komme i gang

Lær deg AI-agenter med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
60
Leksjoner
239

Ofte stilte spørsmål

Er leksjonen «Semantisk minne (vektoriserte fakta)» gratis?

Ja – hele teksten i «Semantisk minne (vektoriserte fakta)» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av AI-agenter-kurset, kan du oppgradere til CoddyKit PRO. Kurset i AI-agenter inneholder totalt 4 leksjoner.

Hva lærer jeg i «Semantisk minne (vektoriserte fakta)»?

Frittstående fakta agenten har lært om brukeren eller verden, lagret i en vektorindeks. Du øver på AI-agenter med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med AI-agenter?

Ingen tidligere erfaring er nødvendig. AI-agenter på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Semantisk minne (vektoriserte fakta)»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne AI-agenter-leksjonen?

Ja. Alle AI-agenter-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Episodisk minne (historikk per økt)
  2. Semantisk minne (vektoriserte fakta)
  3. Prosedyreminne (ferdighetsbibliotek)
  4. Minnesvinn og søppelrydding
← Tilbake til AI-agenter