Pamięć semantyczna (zwektoryzowane fakty)
Niezależne fakty poznane przez agenta o użytkowniku lub świecie, przechowywane w indeksie wektorowym.
Pamięć semantyczna (zwektoryzowane fakty) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Agents, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Agents zawiera 4 lekcji w sumie.
Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.
Czym jest pamięć semantyczna
Pamięć semantyczna przechowuje niezależne fakty znane agentowi — dotyczące użytkownika, świata i firmy. W przeciwieństwie do pamięci epizodycznej nie ma znacznika czasu powiązanego z konkretnym zdarzeniem.
Przykłady:
- „Imię użytkownika to Alice.”
- „Alice preferuje stopnie Celsjusza.”
- „Obecny plan cenowy to Pro za 20 USD miesięcznie.”
Format przechowywania
Magazyn wektorowy + ustrukturyzowane metadane:
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()
);Wyodrębnianie faktów z rozmów
Po każdej sesji należy uruchomić ekstraktor LLM:
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']))Wyszukiwanie w czasie wnioskowania
Dla każdego nowego zapytania należy wyszukać istotne fakty i wstrzyknąć je do promptu systemowego:
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)Aktualizowanie faktów
Co zrobić, gdy fakt się zmieni? „Alice preferuje stopnie Celsjusza” -> „Alice obecnie preferuje stopnie Fahrenheita”. Istnieją dwie strategie:
- Oznaczyć stary fakt jako nieaktualny (dodać updated_at, usunąć logicznie)
- Albo: przechowywać sprzeczności i rozstrzygać je podczas wyszukiwania
Uzgadnianie faktów
Podczas wyodrębniania należy sprawdzać sprzeczności z istniejącymi faktami:
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
''', ...)Wygasanie faktów
Niektóre fakty stają się nieaktualne („bieżący projekt to X”). Należy dodać TTL albo z czasem zmniejszać poziom wiarygodności:
UPDATE semantic_facts
SET confidence = confidence * 0.95
WHERE created_at < NOW() - INTERVAL '30 days';Fakty wrażliwe pod względem prywatności
Przed przechowywaniem należy zaszyfrować dane osobowe. Niektóre fakty (dotyczące zdrowia i finansów) wymagają dodatkowej ochrony — należy przechowywać je w osobnej tabeli z bardziej restrykcyjną kontrolą dostępu.
Fakty edytowalne przez użytkownika
Należy pokazywać użytkownikom zapisane fakty i pozwalać im je edytować lub usuwać. Buduje to zaufanie i ogranicza niepokojące pomyłki pamięci.
Pamięć jako narzędzie
Należy udostępnić operacje pamięci jako narzędzia, które sam agent może wywoływać:
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 i MemGPT
Framework Letta (wcześniej MemGPT) implementuje pamięć agenta na dużą skalę, z oddzielną pamięcią „core” (zawsze obecną w kontekście) i pamięcią „archival” (przeszukiwaną wektorowo).
Pamięć semantyczna a epizodyczna
Czym pamięć semantyczna różni się od epizodycznej?
Podsumowanie
Należy przechowywać w magazynie wektorowym fakty dotyczące użytkownika, przy każdej turze wyszukiwać odpowiednie K faktów i wstrzykiwać je do promptu systemowego. Należy uzgadniać sprzeczności oraz z czasem obniżać wiarygodność faktów lub je wygaszać.
Często zadawane pytania
Czy lekcja „Pamięć semantyczna (zwektoryzowane fakty)” jest bezpłatna?
Tak — pełny tekst „Pamięć semantyczna (zwektoryzowane fakty)” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Agents, przejdź na CoddyKit PRO. Kurs AI Agents zawiera 4 lekcji w sumie.
Co nauczysz się w „Pamięć semantyczna (zwektoryzowane fakty)”?
Niezależne fakty poznane przez agenta o użytkowniku lub świecie, przechowywane w indeksie wektorowym. Ćwiczysz AI Agents z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć AI Agents?
Nie wymagamy żadnego doświadczenia. AI Agents w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Pamięć semantyczna (zwektoryzowane fakty)”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji AI Agents?
Tak. Każda lekcja AI Agents zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Pamięć epizodyczna (historia sesji)
- Pamięć semantyczna (zwektoryzowane fakty)
- Pamięć proceduralna (biblioteka umiejętności)
- Wygasanie pamięci i garbage collection