Sobes.tech
Middle — Senior

Čo je to dlhodobá pamäť agenta a ako ju budovať (zhrnutie, vektorová pamäť)?

sobes.tech AI

Odpoveď od AI

Dlhodobá pamäť agenta je mechanizmus na ukladanie a využívanie informácií, ktoré agent zhromaždil počas dlhšieho obdobia, s cieľom zlepšiť kvalitu interakcie a rozhodovania.

Zhrnutie (summarization) — proces kompresie veľkého objemu informácií do krátkeho, ale obsahovo bohatého prehľadu. To pomáha agentovi rýchlo si zapamätať kľúčové body bez nutnosti ukladať všetky detaily.

Vektorová pamäť (vector memory) — ukladanie informácií vo forme vektorov (napríklad embeddings), čo umožňuje efektívne vyhľadávanie a porovnávanie podobných dát pomocou metód najbližších susedov.

Ako budovať dlhodobú pamäť:

  1. Zber dát: agent ukladá dôležité udalosti, dialógy, fakty.
  2. Spracovanie a kompresia: používajú sa algoritmy zhrnutia na zníženie objemu dát.
  3. Vektorové spracovanie: premena textov alebo iných dát na vektory pomocou embeddingových modelov (napríklad BERT, OpenAI embeddings).
  4. Ukladanie: využívanie špecializovaných databáz (napríklad Pinecone, FAISS) na efektívne vyhľadávanie podľa vektorových reprezentácií.
  5. Dohľadávanie: ak je potrebné, agent hľadá relevantné záznamy v pamäti pomocou vyhľadávania podobnosti a používa ich na odpovede alebo rozhodnutia.

Príklad v Pythone s knižnicou pre embeddings a FAISS:

from sentence_transformers import SentenceTransformer
import faiss

# Inicializácia modelu embeddings
model = SentenceTransformer('all-MiniLM-L6-v2')

# Príkladové dáta
texts = ["Dnes je slnečno", "Zajtra bude pršať", "Počasie je dobré"]

# Vektorovanie
vectors = model.encode(texts)

# Vytvorenie FAISS indexu
index = faiss.IndexFlatL2(vectors.shape[1])
index.add(vectors)

# Vyhľadávanie v pamäti
query = "Aké bude počasie zajtra?"
query_vec = model.encode([query])
D, I = index.search(query_vec, k=1)
print(f"Podobný text: {texts[I[0][0]]}")

Týmto spôsobom kombinuje dlhodobá pamäť agenta zhrnutie pre kompaktnosť a vektorovú pamäť pre rýchle vyhľadávanie relevantných informácií.