Systemy pamięci w asystentach AI

Pamięć robocza, strukturalna i odzyskiwania dla asystentów.

Page content

Pamięć zamienia asystentów w systemy trwałych, a nie tylko reaktywnych, ale to właśnie tam wiele systemów cichnie i podlega degradacji. Ankiety wskazują, że podział na pamięć krótkotrwałą i długotrwałą już nie wystarczy dla pamięci nowoczesnych agentów; SDK OpenAI i LangGraph wskazują na prostszy stos — pamięć roboczą, trwały stan i pobieranie danych (retrieval).

Asystenci potrzebują pamięci roboczej dla bieżącego uruchomienia, trwałego stanu dla stabilnych faktów i preferencji oraz pamięci pobierającej (retrieval) dla odpowiedniego kontekstu wspierającego. Moje nieco zdawkowe zdanie jest takie, że strukturalny stan jest niedoceniany, wektorowe pobieranie danych jest niedoceniane, a większość awarii pamięci wynika z polityki promowania i wstrzykiwania (injection), a nie z wyboru magazynu danych.

Inny ważny punkt polega na tym, że pamięć nie naprawia automatycznie długiego kontekstu. LoCoMo pokazuje, że bardzo długoterminowa pamięć konwersacyjna pozostaje trudna, a „Lost in the Middle” pokazuje, że prosty rzut większej liczby tokenów na model może pogorszyć wydajność, gdy istotne informacje lądują w środku promptu. Dobre systemy pamięci są selektywne, warstwowe i jawne w kwestii priorytetów.

Ten przewodnik znajduje się w [centrum pamięci systemów AI](https://www.glukhov.org/pl/ai-systems/memory/ „Centrum dla trwałej wiedzy i pamięci w systemach AI — porównania dostawców pamięci agentów, grafy wiedzy Cognee oraz linki do ograniczonej pamięci Hermesa i hostingu LLM.”) jako mapa cross-framework dla warstwy pamięci wewnątrz [Architektury Asystenta AI](https://www.glukhov.org/pl/ai-systems/architecture/ai-assistant-architecture/ „Głęboki techniczny przewodnik po architekturze asystenta AI: LLM, pamięć, narzędzia, routowanie i obserwowalność, z rzeczywistymi kompromisami, trybami awarii i wzorcami projektowymi.”).

![Abstrakcyjny system pamięci dla asystenta AI jako warstwowe notatniki, punkty wektorowe i strukturalne karty](/img/memory-systems-in-ai-assistants_w678.jpg „Krajobrazowa ilustracja systemu pamięci asystenta AI jako warstwowych notatników, punktów wektorowych, strukturalnych kart i przepływających wątków”)

Jak myśleć o pamięci asystenta

Pamięć asystenta to nie ten sam problem co PKM, wiki czy niezależne pipeline’y RAG — [PKM vs RAG vs Wiki vs Systemy Pamięci](https://www.glukhov.org/pl/knowledge-management/foundations/pkm-vs-rag-vs-wiki-vs-memory-systems/ „Porównaj PKM, RAG, wiki i systemy pamięci AI pod względem struktury, pobierania danych, własności, ewolucji i rzeczywistych przypadków użycia.”) mapuje te paradygmaty na poziomie architektury wiedzy. Ten przewodnik pozostaje o warstwę niżej, w umowach runtime, które asystenci faktycznie wdrażają. To też inny problem konserwacji: pamięć rządzi tym, jak agent zachowuje się z sesji na sesję, podczas gdy współdzielona baza wiedzy, taka jak [LLM Wiki](https://www.glukhov.org/pl/knowledge-management/knowledge-systems-architectures/compiled-knowledge/what-is-llm-wiki/ „LLM Wiki — Zkompilowana wiedza, której RAG nie może zastąpić”) wymaga własnej [dyscypliny konserwacji](https://www.glukhov.org/pl/knowledge-management/knowledge-systems-architectures/compiled-knowledge/llm-wiki-maintenance-knowledge-drift/ „Konserwacja LLM Wiki: Dryf, sprzeczności i przegląd”), aby agenty czytające z niej nie opierały się na przestarzałych lub sprzecznych faktach.

Najczystszy sposób myślenia o pamięci to nie „historia czatu”, ale zestaw umów magazynowych z różnymi zadaniami. Jeden magazyn przechowuje aktywny wątek. Inny magazyn utrzymuje trwały stan użytkownika. Kolejny wspiera semantyczne wyszukiwanie po dokumentach lub wcześniejszych interakcjach. Wytyczne OpenAI dotyczące pamięci dla personalizacji uświadamiają to, oddzielając pamięć globalną i sesyjną, podczas gdy LangGraph oddziela trwałość na poziomie wątku od magazynów długoterminowych między konwersacjami.

Pamięć ma znaczenie, ponieważ produkcyjni asystenci powtarzają pracę, odwiedzają cele i operują przez dni lub tygodnie. Generative Agents spopularyzowały wzorzec przechowywania doświadczeń, refleksji nad nimi i dynamicznego pobierania dla przyszłego planowania. MemGPT poszedł dalej, modelując pamięć jako warstwy i ruch między szybкими a wolnymi magazynami. Bardziej nowoczesne systemy, takie jak A-MEM i Mem0, koncentrują się na łączeniu, konsolidacji i wydajności wdrożeniowej, a nie tylko na wolumenie odtwarzania.

Typy pamięci

Produkcyjni asystenci zazwyczaj potrzebują trzech współpracujących warstw. FAQ powyżej wymienia je; sekcje poniżej wyjaśniają, jak każda z nich zachowuje się w rzeczywistych systemach.

Pamięć krótkotrwała

Pamięć krótkotrwała to kontekst roboczy bieżącej konwersacji lub uruchomienia. OpenAI Sessions automatycznie dopisuje historię konwersacji przed każdym uruchomieniem i dodaje nowe elementy po każdym uruchomieniu. LangGraph wdraża ten sam pomysł jako trwałość na poziomie wątku za pomocą checkpointera. Ta warstwa zachowuje lokalną spójność, ale jest też pierwszą, która wybuchnie, gdy wyniki narzędzi, odczyty plików lub długie czaty się zbiorą.

Długotrwała pamięć pobierająca

Długotrwała pamięć pobierająca przechowuje elementy, które są wyszukiwane, gdy są odpowiednie, a nie odtwarzane w każdej turze. To nakłada się z [RAG](https://www.glukhov.org/pl/rag/ „Krok-po-kroku tutorial RAG: buduj systemy generowania rozszerzonego o pobieranie z bazami wektorowymi, hybrydowym wyszukiwaniem, rerankingiem i wyszukiwaniem w internecie. Architektura, implementacja i najlepsze praktyki produkcyjne.”) jako techniką pobierania danych, ale to nie jest cała historia pamięci asystenta — wiki i korpusa PKM często karmią indeks, podczas gdy strukturalny stan i pamięć sesyjna żyją gdzie indziej, jak jasno wynika z porównania PKM/RAG/wiki/pamięci powyżej. W klasycznym RAG model łączy pamięć parametryczną z pamięcią nieparametryczną, taką jak gęsty indeks wektorowy. Self-RAG ulepsza naiwne pobieranie danych, czyniąc je na żądanie, a nie stałym dla każdego żądania. W praktycznych systemach asystentów jest to zwykle warstwa magazynu wektorowego lub przeszukiwalnej transkrypcji.

Strukturalna pamięć

Strukturalna pamięć przechowuje trwałe fakty, preferencje lub ograniczenia w jawnych polach z zasadami priorytetów. Książka kucharska OpenAI dotycząca personalizacji jest tu niezwykło jasna. Pamięć globalna i sesyjna mają różne role, najnowsza instrukcja użytkownika wygrywa, pamięć sesyjna może nadpisać pamięć globalną dla bieżącego zadania, a pamięć, która konfliktuje z bieżącym zamysłem użytkownika, powinna wywołać doprecyzowanie, a nie cichy posłuszeństwo. Dlatego strukturalny stan jest często lepszy niż pobieranie danych dla stabilnych preferencji, polityk lub stałych ograniczeń.

Mechanika pobierania danych

Typowy przepływ pobierania danych ma pięć kroków: przechwytywanie, kodowanie, wyszukiwanie, reranking lub filtrowanie, a następnie wstrzykiwanie. Pinecone, Weaviate, Qdrant, Redis i Milvus dokumentują wszystkie warianty tego wzorca. Niektóre wspierają tylko wektory gęste, inne wspierają hybrydowe pobieranie danych, które łączy wyszukiwanie semantyczne i leksykalne, a niektóre udostępniają filtry metadanych lub przestrzenie nazw (namespaces) do kontroli tenancy i zakresu. Punkt inżynierski jest prosty. Jakość pobierania danych zależy tak samo od filtrowania, dzielenia (chunking) i strategii rankingowej, jak i od samego modelu embeddingów.

Hybrydowe pobieranie danych jest zwykle rozsądnym domyślnym ustawieniem, gdy zapytania mieszają znaczenie i dokładne terminy. Weaviate dokumentuje hybrydowe wyszukiwanie z parametrem alpha równoważącym składowe wektorowe i słów kluczowych, Qdrant wspiera hybrydowe i wieloetapowe zapytania przez swoje API Query i metody fuzji punktów, a Milvus opisuje pobieranie danych gęste, rzadkie i hybrydowe w tym samym systemie. To ma znaczenie dla asystentów, ponieważ użytkownicy często proszą o zarówno przybliżone znaczenie, jak i dokładne identyfikatory, nazwy plików, numery rewizji lub kody produktowe. Gdy strona leksykalna żyje w Postgres lub Elasticsearch, a nie wewnątrz bazy danych wektorowej, [Wyszukiwanie pełnotekstowe PostgreSQL vs Elasticsearch](https://www.glukhov.org/pl/data-infrastructure/search/postgresql-full-text-search-vs-elasticsearch/ „Praktyczne porównanie wyszukiwania pełnotekstowego PostgreSQL i Elasticsearch pod względem trafności, skali, opóźnienia, kosztów i operacji dla nowoczesnych aplikacji.”) pomaga wybrać, gdzie wyszukiwanie słów kluczowych powinno być wykonywane w produkcji.

Jeszcze jeden zdawkowy punkt: pobieranie danych nie powinno decydować o polityce. Powinno dostarczać kandydatów. Asystent nadal potrzebuje strukturalnych zasad dla priorytetów, prywatności, aktualności i rozwiązywania konfliktów. Przykład pamięci opartej na stanie OpenAI uświadamia to, i jest to znacznie zdrowszy wzorzec niż udawanie, że samo wyszukiwanie podobieństwa może rozwiązać sprzeczny stan użytkownika.

Częste problemy

Najczęstszą awarią jest przestarzała lub sprzeczna pamięć. Książka kucharska OpenAI dotycząca długoterminowej pamięci nazywa konsolidację pamięci najbardziej wrażliwym i podatnym na błędy etapem, wymieniając zanieczyszczenie kontekstu, utratę pamięci, duplikatowe pamięci i obszarę sprzeczności jako główne obawy. To jest poprawne, i to właśnie tam wielu asystenci cicho zawodzą. Zapamiętują zbyt dużo, zbyt wcześnie i bez zasady zapominania. Konkretny i coraz bardziej powszechny wariant tej awarii zasługuje na własne głębokie zanurzenie: własna wniosek modelu jest promowany do trwałej pamięci, pobierany później tak, jakby był obserwacją, i używany do uzasadnienia nawet mocniejszej wersji siebie. Zobacz [Pętle samowzmacniającej pamięci w agentach AI](https://www.glukhov.org/pl/ai-systems/memory/self-reinforcing-memory-loops/ „Pamięć agenta może zamienić wnioski modelu w przyszłe dowody. Jak te pętle się formują, dlaczego mają znaczenie i które kontrole ścieżki zapisu je ograniczają.”) dla siedmiu form, jakie to przyjmuje, i jak to testować.

Druga awaria to przeciążenie kontekstu. LangGraph ostrzega, że długie konwersacje mogą przekroczyć okno kontekstu LLM i zaleca przycinanie, usuwanie, streszczanie lub zarządzanie checkpointami. OpenClaw podobnie usuwa stare wyniki narzędzi z kontekstu w pamięci, zachowując pełną transkrypcję na dysku. To nie są opcjonalne optymalizacje. Są wymagane, jeśli twój asystent czyta, szuka lub wykonuje cokolwiek nietrywialnego.

Trzecia awaria to założenie, że długi kontekst równa się niezawodnemu odtwarzaniu. LoCoMo pokazuje, że długoterminowa pamięć konwersacyjna jest wciąż trudna, a „Lost in the Middle” pokazuje wrażliwość na pozycję wewnątrz długich promptów. Jeśli pamięć jest ważna, nie polegaj na brute-force wchowywaniu promptów. Używaj kompresji, pobierania danych i jawnego stanu.

Kompromisy

Warstwa bazy danych wektorowej to miejsce, gdzie wiele zespołów asystentów dokonuje wczesnych decyzji platformowych. Porównanie poniżej koncentruje się na udokumentowanych cechach produktowych, które mają znaczenie dla projektowania pamięci asystenta.

System Co wyróżnia Najlepsze dopasowanie
Pinecone Zarządzana baza danych wektorowa z zintegrowanym embeddingiem, rerankingiem, filtrami metadanych, namespaces i wsparciem dla gęstych, rzadkich i BM25-style full-text w jednym schemacie Zespoły, które chcą zarządzanego pobierania danych z minimalną infrastrukturą
Weaviate Open-source baza danych wektorowa przechowująca obiekty i wektory, z wyszukiwaniem semantycznym i hybrydowym oraz mocną pozycją RAG Zespoły, które chcą elastyczności open-source z hybrydowym pobieraniem danych
Qdrant AI-native wyszukiwanie wektorowe z filtrowaniem, hybrydowymi i wieloetapowymi zapytaniami, a także wbudowany tryb Edge zdolny do pracy offline Zespoły, które chcą kontroli wyszukiwania, wdrożenia na brzegu (edge) lub mocnego filtrowania
pgvector Wyszukiwanie podobieństwa wektorowego wewnątrz Postgres, z dokładnym i przybliżonym wyszukiwaniem oraz funkcjami ACID, JOIN i odzyskiwania Zespoły już znormalizowane na Postgres i danych relacyjnych
Milvus Chmurowa baza danych wektorowa z rozdzielonym magazynowaniem i obliczeniami, a także pobieraniem danych gęstym, rzadkim i hybrydowym Duże skalujące obciążenia pobierania danych i rozproszone wdrożenia

Po wybraniu backendu, jego obsługa jest problemem [infrastruktury danych](https://www.glukhov.org/pl/data-infrastructure/ „Przewodnik inżynieryjny po infrastrukturze danych dla produkcyjnych systemów AI: storage obiektowy kompatybilny z S3, PostgreSQL, Elasticsearch, streaming i messaging, integracje SaaS, warstwy danych AI-native, benchmarki i kompromisy.”) — Postgres z pgvectorem dla metadanych sesji i wektorów na jednym stosie, lub [Neo4j](https://www.glukhov.org/pl/data-infrastructure/databases/neo4j/ „Przewodnik dla senior inżyniera po Neo4j dla grafów właściwości i GraphRAG. Cypher, ACID, indeksy wektorowe, hybrydowe pobieranie danych i Python neo4j-graphrag.”) gdy pamięć pobierająca ma kształt grafu, a nie płaskich kawałków.

Wzorzec opóźnienia i kosztu poniżej jest syntezą projektową opartą na modelach operacyjnych opisanych w wytycznych OpenAI Sessions i kompresji, zarządzaniu pamięcią LangGraph, pamięci opartej na stanie OpenAI oraz udokumentowanym zachowaniu pobierania danych w Redis i magazynach wektorowych. Jest celowo jakościowy, ponieważ rzeczywiste liczby zależą od rozmiaru korpusu, modelu embeddingów, lokalizacji sieciowej i cache’ingu.

Taktyka pamięci Opóźnienie odczytu Opóźnienie zapisu Ciśnienie kosztu tokenów Koszt infrastruktury Kiedy to ma sens
Surowa historia sesji Najniższe Najniższe Najwyższe Najniższe Prosty wieloturnowy czat i krótkie uruchomienia
Pamięć streszczająca lub kompresująca Niska do średnia Średnia, ponieważ streszczanie samo w sobie jest krokiem modelu Średnia do niska Niska do średnia Długotrwałe prace, gdzie bieżące uruchomienie musi kontynuować
Strukturalny profil i stan Niska Średnia Niska Niska Trwałe preferencje, reguły i stałe ograniczenia
Wektorowe lub hybrydowe pobieranie danych Średnia Średnia Niska do średnia Średnia Duże korpusy, przeszukiwalna historia, gruntowanie dokumentów
Pełne odtworzenie wszystkiego Wysokie i coraz mniej stabilne Niskie Najwyższe Niska infrastruktura, wysokie wydatki na model Praktycznie nigdy, z wyjątkiem bardzo małych korpusów i debugowania

Przykłady implementacji

Bieżący stos OpenAI daje dwa przydatne wzorce referencyjne. Pierwszy to Sessions dla krótkoterminowej ciągłości między uruchomieniami. Drugi to długoterminowa pamięć oparta na stanie, gdzie strukturalne pola profilu i notatki pamięci globalnej są wstrzykiwane na starcie sesji, notatki sesji są destylowane podczas uruchomienia, a krok konsolidacji promuje tylko trwałe elementy do pamięci globalnej. Ten pętla wstrzyknij → rozumuj → destyluj → konsoliduj jest jednym z najczystszych publicznie dostępnych wzorców pamięci dostępnych teraz.

LangGraph zapewnia podobny, ale agnostyczny wobec frameworku podział. Checkpointery obsługują krótkoterminową pamięć wątków, a magazyny obsługują długoterminowe wyszukiwanie między konwersacjami. Magazyn może być wyszukiwany wewnątrz węzłów w czasie wykonania, co czyni go dobrym wzorcem referencyjnym dla asystentów, które potrzebują jawnej orkiestracji, a nie ukrytej magii frameworka.

Hermes jest przydatnym publicznym przykładem warstwowej pamięci w praktyce. Jego wbudowana pamięć używa MEMORY.md, USER.md i wyszukiwania sesji SQLite FTS5, podczas gdy zewnętrzne pluginy dostawców dodają pamięć grafową, semantyczne pobieranie danych, automatyczne wyodrębnianie faktów i modelowanie użytkownika. Pełna mechanika jest udokumentowana w [Systemie Pamięci Hermesa Agent](https://www.glukhov.org/pl/ai-systems/hermes/hermes-agent-memory-system/ „Głęboki techniczny przewodnik po architekturze pamięci Hermesa Agent — od ograniczonej pamięci rdzenia 2-płikowej do 8 wymiennych zewnętrznych dostawców.”), a osiem wymiennych backendów jest porównywanych w [Porównanie dostawców pamięci agenta](https://www.glukhov.org/pl/ai-systems/memory/agent-memory-providers/ „Porównaj osiem backendów pamięci agenta dla Hermesa, OpenClaw i innych agentów — Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover, Supermemory — zależności, self-hosting i aktywacja.”).

OpenClaw oferuje inne podejście, z przycinaniem sesji, opcjonalną aktywną pamięcią, która działa przed główną odpowiedzią, i opcjonalnym systemem Dreaming dla tła konsolidacji pamięci. Te przykłady są warte uwagi, ponieważ traktują pamięć jako operacyjny podsystem, a nie tylko trik pobierania danych. Dla tego, jak OpenClaw mapuje się na szerszy pięciowarstwowy stos asystenta, zobacz [Przegląd systemu OpenClaw](https://www.glukhov.org/pl/ai-systems/openclaw/ „Badanie case-study OpenClaw — self-hosted system asystenta AI, który integruje lokalne LLM, pobieranie danych, pamięć, routowanie i obserwowalność w spójną lokalną infrastrukturę.”).

Prototypy badawcze wskazują w tym samym kierunku. MemGPT używa hierarchicznych warstw pamięci i przepływu kontrolnego do zarządzania kontekstem, A-MEM używa dynamicznego indeksowania i łączenia inspirowanego Zettelkasten, a Mem0 raportuje lepszą dokładność z znacznie niższym opóźnieniem p95 i kosztem tokenów niż linie bazowe pełnego kontekstu na LoCoMo. Nie musisz kopiować tych systemów w całości, ale ich wspólna lekcja jest jasna. Jakość pamięci pochodzi z selekcji i organizacji, a nie z przechowywania wszystkiego na zawsze.

Kiedy pamięć pomaga, a kiedy szkodzi

Pamięć pomaga, gdy asystent wielokrotnie spotyka stabilne preferencje, trwałe ograniczenia, wielokrotno używane lekcje workflow lub duże zewnętrzne korpusy, które nie mogą zmieścić się w prompcie. Przewodnik OpenAI dotyczący niezawodnych agentów dobrze uświadamia tę różnicę. Kompresja pomaga bieżącemu długotrwałemu uruchomieniu kontynuować, podczas gdy pamięć pomaga przyszłym uruchomieniom ponownie używać lekcji workflow. To jest poprawny model mentalny dla większości asystentów biznesowych.

Pamięć szkodzi, gdy zadanie jest jednorazowe, stan użytkownika często się zmienia, indeks pobierania danych jest szumny, lub system nie może pogodzić konfliktów. Przykład pamięci podróżniczej OpenAI ostrzega, że pamięć sesyjna nie powinna automatycznie stawać się pamięcią globalną, i jawnie stwierdza, że pamięć nie jest granicą bezpieczeństwa. Jeśli twój asystent traktuje każdy wywołany string jako prawdę, zbudowałeś silnik zamieszania, a nie system pamięci.

Selektyna pętla pamięci

Najprostsza, odporna pętla pamięci jest selektywna i stopniowa. Załaduj trwały stan, pobierz wspierający kontekst, odpowiedz, przechwytuj tylko kandydata pamięci, a potem konsoliduj później. Zarówno wzorzec OpenAI oparty na stanie, jak i nowoczesne prace nad pamięcią idą w tym kierunku.

![agent-memory-sequence-diagram](agent-memory-sequence-diagram_w1000.jpg „agent-memory-sequence-diagram”)

Bez tracingu i ewaluacji, zmiany pamięci są trudne do debugowania. Gdy promujesz nowe fakty lub zmieniasz politykę pobierania danych, łącz te zmiany z wzorcami obserwowalności z [Obserwowalność dla systemów LLM](https://www.glukhov.org/pl/observability/observability-for-llm-systems/ „Głęboki, produkcyjny przewodnik po obserwowalności dla systemów LLM, pokrywający metryki LLM, rozproszone śledzenie, logi, profilowanie, testy syntetyczne, SLO i porównanie narzędzi do obserwowalności LLM.”), aby zobaczyć, która warstwa wstrzyknęła co.

Wniosek

Praktyczny stos pamięci dla asystentów to nie „po prostu użyj bazy danych wektorowej”. To pamięć robocza dla bieżącego uruchomienia, strukturalny stan dla trwałej prawdy, pamięć pobierająca dla wspierających dowodów i konserwatywna polityka konsolidacji, która zapomina tak samo świadomie, jak pamięta. Nowoczesne badania i bieżące wytyczne SDK wskazują w tym kierunku.

Dla pełnego stosu asystenta wokół tej warstwy, zacznij od Architektury Asystenta AI. Dla ograniczonej pamięci i pluginów dostawców specyficznych dla Hermesa, podążaj za Systemem Pamięci Hermesa Agent i Porównaniem dostawców pamięci agenta. Gdy asystenci muszą obserwować źródła i działać proaktywnie, a nie czekać na prompty użytkownika, operacyjny model stanu dla pollingu — kursory, claimy, rekordy deduplikacji i logi wykonania — jest opisany w [Agenci Polling w Asystentach AI: 11 Wzorców Implementacji](https://www.glukhov.org/pl/ai-systems/architecture/polling-agents-ai-assistants-implementation-patterns/ „Praktyczny przewodnik po wzorcach agenta polling w asystentach AI — harmonogramy, kolejki, webhoki, trwałe workflow, zarządzanie stanem i kompromisy dla systemów produkcyjnych.”).

Subskrybuj

Otrzymuj nowe wpisy o systemach, infrastrukturze i inżynierii AI.