Proste magazyny pamięci (klucz-wartość)
Zapisuj fakty wspomniane przez użytkownika (imię, preferencje) w magazynie klucz-wartość i dodawaj je do promptu systemowego przy każdej turze.
Proste magazyny pamięci (klucz-wartość) to bezpłatna lekcja AI Agents na CoddyKit. To lekcja 4 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.
Najtańsza pamięć długotrwała
Zanim sięgniesz po wektorowe bazy danych i embeddingi, rozważ prosty magazyn klucz-wartość. Do przechowywania faktów dotyczących konkretnego użytkownika (imienia, preferencji i ustawień) to wszystko, czego potrzebujesz.
Co przechowywać
Dobrymi kandydatami do pamięci KV są:
- Imię i język użytkownika
- Preferencje (jednostki, strefa czasowa, styl wypowiedzi)
- Stały kontekst (bieżący projekt, bieżący temat)
- Niedawno używane dane uwierzytelniające narzędzi / tokeny API
Mały magazyn w pamięci
W przypadku prototypu działającego w jednym procesie:
memory = {
'user_name': 'Alice',
'units': 'celsius',
'language': 'tr'
}
def remember(key, value):
memory[key] = value
def recall(key, default=None):
return memory.get(key, default)
remember('city', 'Istanbul')
print("Recalled user_name:", recall('user_name'))
print("Recalled city:", recall('city'))
print("Recalled missing key:", recall('country', 'unknown'))
Wstrzykiwanie do promptu systemowego
W każdej turze renderuj magazyn KV w prompcie systemowym:
def build_system_prompt(user_id):
facts = load_facts(user_id)
rendered = '\n'.join(f'- {k}: {v}' for k, v in facts.items())
return f'''
You are AssistantBot.
Known facts about this user:
{rendered}
Use these to personalise replies.
'''Użyj Redis dla wielu użytkowników
W przypadku agenta produkcyjnego użyj Redis:
import redis
r = redis.Redis()
def remember(user_id, key, value):
r.hset(f'mem:{user_id}', key, json.dumps(value))
def recall_all(user_id):
raw = r.hgetall(f'mem:{user_id}')
return {k.decode(): json.loads(v) for k, v in raw.items()}Albo po prostu Postgres
Postgres również się sprawdzi — jedna kolumna JSON na użytkownika:
CREATE TABLE user_memory (
user_id TEXT PRIMARY KEY,
facts JSONB NOT NULL DEFAULT '{}'
);
-- Update one field:
UPDATE user_memory SET facts = facts || '{"units": "celsius"}' WHERE user_id = $1;Pamięć jako narzędzie
Udostępnij operacje pamięci jako narzędzia, aby sam agent mógł zapisywać informacje w pamięci:
tools = [
{'name': 'remember', 'description': 'Save a fact about the user', 'parameters': {...}},
{'name': 'forget', 'description': 'Remove a stored fact', 'parameters': {...}}
]
# The agent can call remember('user_name', 'Alice') itself.
for t in tools:
print(f"{t['name']}: {t['description']}")
Zapobiegaj rozrostowi pamięci
Ogranicz liczbę przechowywanych kluczy na użytkownika (do 50 lub 100). W przeciwnym razie prompt systemowy będzie rosnąć bez ograniczeń.
TTL i wygasanie
Niektóre wspomnienia są krótkotrwałe. Użyj mechanizmu wygasania w Redis:
r.hset(f'mem:{user_id}', 'last_topic', 'pricing')
r.expire(f'mem:{user_id}', 3600) # 1 hourPamięć edytowana przez użytkownika
Pozwól użytkownikom zobaczyć i edytować to, co agent o nich pamięta — tak działa pamięć ChatGPT. Buduje to zaufanie i zapobiega niezręcznym pomyłkom.
Prywatność: ostrożnie z PII
Przechowywane fakty często zawierają PII. Szyfruj wrażliwe pola w spoczynku, używaj osobnych kluczy szyfrujących dla każdego użytkownika i usuwaj dane po zamknięciu konta.
Od KV do wektorów
KV świetnie nadaje się do faktów ustrukturyzowanych. W przypadku faktów nieustrukturyzowanych („użytkownik preferuje swobodny styl, lubi odniesienia do anime i nie cierpi emoji”) lepszy będzie magazyn wektorowy. Omówimy go w następnym kursie.
Kiedy używać pamięci KV
Do jakiego rodzaju pamięci najlepiej nadaje się zwykły magazyn klucz-wartość?
Podsumowanie
W 90% przypadków użycia osobistego asystenta wystarczy magazyn KV oparty na Redis lub Postgres oraz renderowanie jego zawartości w prompcie systemowym.
Ucz się AI Agents dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 60
- Lekcje
- 239
Często zadawane pytania
Czy lekcja „Proste magazyny pamięci (klucz-wartość)” jest bezpłatna?
Tak — pełny tekst „Proste magazyny pamięci (klucz-wartość)” 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 „Proste magazyny pamięci (klucz-wartość)”?
Zapisuj fakty wspomniane przez użytkownika (imię, preferencje) w magazynie klucz-wartość i dodawaj je do promptu systemowego przy każdej turze. Ć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 4 z 4.
Ile czasu zajmuje lekcja „Proste magazyny pamięci (klucz-wartość)”?
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ęć krótkotrwała w oknie kontekstu
- Dlaczego długie konteksty się nie skalują
- Streszczanie jako kompresja
- Proste magazyny pamięci (klucz-wartość)