Mnemosyne dla agenta Hermes: Szybki start z lokalną pamięcią
Lokalna pamięć Hermes z kontrolowanymi zapisami.
Mnemosyne to lokalny dostawca pamięci dla Hermes Agent, przechowujący pamięć roboczą, ustrukturyzowane fakty, dane czasowe oraz historię epizodyczną w lokalnym SQLite — bez hostowanej usługi, bez obowiązkowych połączeń z siecią i z niezwykłą kontrolą nad zapisem.
Jego najbardziej przydatną właściwością nie jest surowa jakość odtwarzania. Jest nią zakres kontroli, jaką udostępnia nad ścieżką zapisu: automatyczny zapis rozmowy może być ograniczony według roli lub całkowicie wyłączony, logowanie wyników narzędzi jest domyślnie wyłączone, operacje jawnego zapamiętania i zapomnienia pozostają dostępne niezależnie od konfiguracji, a nowsze wersje dodają opcjonalne tłumienie samopowtórzenia (self-echo) wokół granic kompresji kontekstu. To połączenie czyni go rozsądnym wyborem, gdy chcesz mieć trwałą pamięć, nie zamieniając przy tym automatycznie każdej rozmowy na trwałą wiedzę.
Dyscyplina ścieżki zapisu ma znaczenie, ponieważ pamięć agentów ma dobrze udokumentowany tryb awarii: własne wnioskowanie modelu może zostać uchwycone, później odzyskane tak, jakby było obserwacją, i użyte do uzasadnienia jeszcze silniejszej wersji samej siebie. Pętle wzmacniania własnego w pamięci agentów AI szczegółowo omawia ten tryb awarii; ten przewodnik koncentruje się na konkretnych ustawieniach Mnemosyne, które ograniczają go w praktyce. Aby dowiedzieć się, jak Mnemosyne pozycjonuje się względem innych backendów pamięci Hermes, zobacz Porównanie dostawców pamięci agentów.

Mnemosyne w jednej minucie
Typowy dostawca pamięci wykonuje pewną wersję przechwytywania, ekstrakcji, przechowywania, odzyskiwania, a następnie wstrzykiwania do przyszłego promptu. Mnemosyne dodaje kilka odrębnych warstw wokół tej podstawowej pętli: pamięć roboczą, semantyczne i leksykalne odtwarzanie, ustrukturyzowane fakty, informacje czasowe, powiązania encji, pamięć epizodyczną, konsolidację, kanoniczne fakty oraz weryfikację pamięci. Przechowywanie odbywa się w lokalnym SQLite z FTS5 i opcjonalnym odtwarzaniem wektorowym, co czyni go znacznie bardziej przejrystym niż produkt pamięci oparty wyłącznie na chmurze i bardziej wydajnym niż zwykły plik MEMORY.md.
Bardzo krótko, w odniesieniu do reszty ekosystemu dostawców Hermes: Holographic jest prostszy i celowo zorientowany na magazyn faktów; Hindsight kładzie nacisk na hybrydowe odtwarzanie, grafy wiedzy i refleksję; Honcho kładzie nacisk na modelowanie par i użytkowników z rozumowaniem dialektycznym; Mem0 kładzie nacisk na automatyczną, opartą na LLM ekstrakcję faktów; a Mnemosyne łączy lokalne przechowywanie SQLite, hybrydowe odtwarzanie, konsolidację, ustrukturyzowane fakty i niezwykłą precyzję kontroli retencji. Pełne rozbicie, w tym wymagania infrastrukturalne i uwagi dotyczące samohostingu dla każdego dostawcy, znajduje się w artykule Porównanie dostawców pamięci agentów.
Aktualne wersje
Na wrzesień 2026 roku stabilna wersja na PyPI to mnemosyne-memory 3.15.1, z gałęzią 4.0 dostępną jako wersja przedpremierowa. W przypadku produkcyjnej instalacji Hermes, zacznij od wersji stabilnej, chyba że konkretnie potrzebujesz poprawki lub funkcji z wersji 4.0 i jesteś gotów przetestować migrację bazy danych i zmiany w zachowaniu. Sprawdź zainstalowaną wersję za pomocą:
hermes mnemosyne version
Instalacja Mnemosyne w Hermes
Najpierw aktywnuj własne środowisko wirtualne Hermes, jeśli użyłeś standardowej lokalnej instalacji:
source ~/.hermes/hermes-agent/venv/bin/activate
Dla lokalnego wsparcia embeddów, zainstaluj pakiet rdzenia z dodatkowym modułem embeddings oraz wrapperem wtyczki Hermes:
python -m pip install \
"mnemosyne-memory[embeddings]" \
mnemosyne-hermes
Następnie zarejestruj wtyczkę:
mnemosyne-hermes install
Jeśli zastępujesz istniejącą rejestrację wtyczki:
mnemosyne-hermes install --force
Aktywuj dostawcę i zrestartuj bramkę:
hermes config set memory.provider mnemosyne
hermes gateway restart
Zweryfikuj za pomocą:
hermes memory status
Oczekiwany output wygląda podobnie do:
Provider: mnemosyne
Plugin: installed
Status: available
Instalacje Docker i serwerów ciągłych
Jeśli Hermes działa wewnątrz ciągłego wdrożenia Docker lub opartego na obrazach, zainstaluj go w bocznym środowisku wirtualnym na zamontowanym katalogu głównym Hermes, zamiast w odtwarzalnym środowisku Python kontenera, aby wtyczka przetrwała przebudowy obrazu:
export HERMES_HOME=/opt/data
VENV="$HERMES_HOME/.mnemosyne/venv"
python3 -m venv "$VENV"
"$VENV/bin/python" -m pip install --upgrade "mnemosyne-memory[embeddings]" mnemosyne-hermes
"$VENV/bin/mnemosyne-hermes" install --mode wrapper --python "$VENV/bin/python"
hermes config set memory.provider mnemosyne
Boczne środowisko wirtualne musi używać tej samej głównej/wersji drobnej Pythona, co uruchomiona bramka Hermes — nie wskazuj na niepowiązane python3 z PATH. Po tej operacji zrestartuj faktyczny kontener lub usługę i zweryfikuj za pomocą "$VENV/bin/mnemosyne-hermes" status oraz hermes memory status.
Nie wyłączaj całego zestawu narzędzi pamięci Hermes
Utrzymuj dwa pojęcia w osobności: własną, wbudowaną pamięć Hermes (MEMORY.md / USER.md, szczegółowo opisana w System pamięci Hermes Agent) i zewnętrznego dostawcę (Mnemosyne). Nie uruchamiaj przypadkiem hermes tools disable memory przy konfiguracji zewnętrznego dostawcy — w zależności od wersji Hermes, to polecenie może też ukryć narzędzia zewnętrznych dostawców pamięci. Użyj zamiast tego konfiguracji dostawcy, jak pokazano poniżej.
Podstawowy status i inspekcja
hermes memory status
hermes mnemosyne stats
hermes mnemosyne stats --global
hermes mnemosyne inspect "query"
Wyeksportuj przenośną kopię zapasową:
hermes mnemosyne export \
--output ~/mnemosyne-backup.json
Baza danych obsługująca system normalnie znajduje się pod ~/.hermes/mnemosyne/data/mnemosyne.db. Ponieważ jest to SQLite, inspekcja i kopia zapasowa są proste dzięki standardowym narzędziom. Dla pozostałych poleceń bramki, sesji i diagnostyki wymienionych w tym przewodniku, Ściągawka CLI Hermes Agent jest szybszym odnośnikiem niż grzebanie w output --help.
Domyślna polityka retencji zasługuje na uwagę
Pierwszą kontrolą wartą zrozumienia jest sync_roles. Domyślne ustawienia bieżącego Mnemosyne są już bardziej konserwatywne niż w wcześniejszych wersjach — automatyczna synchronizacja Hermes domyślnie dotyczy tylko tur użytkownika, a nie obu tur użytkownika i asystenta — ale dla ścisłej, wyłącznie jawnej retencji, całkowite wyłączenie automatycznego zapisu tur jest wartym wysiłku krokiem. Edytuj ~/.hermes/config.yaml:
memory:
provider: mnemosyne
mnemosyne:
sync_roles: []
Pusta lista oznacza, że zwykłe tury rozmowy nie są automatycznie zapisywane przez sync_turn(). Jawne operacje mnemosyne_remember nadal działają niezależnie od tego — normalna rozmowa przestaje automatycznie wpływać do pamięci, podczas gdy jawne „zapamiętaj to” nadal dociera do Mnemosyne.
Wyłącz automatyczne logowanie wyników narzędzi
Mnemosyne może również logować wykonania narzędzi jako pamięć. Dla konserwatywnej konfiguracji, pozostaw to wyłączone w ~/.hermes/.env:
MNEMOSYNE_LOG_TOOLS=0
Jest to już domyślnie wyłączone, ale ustawienie tego jawnie dokumentuje politykę, zamiast polegać na założeniu o domyślach. Zrestartuj Hermes później:
hermes gateway restart
Z sync_roles: [] i MNEMOSYNE_LOG_TOOLS=0 razem, obie główne automatyczne ścieżki zapisu — automatyczny zapis rozmowy i automatyczny zapis wyników narzędzi — są wyłączone.
Zachowaj automatyczne odtwarzanie
Wyłączanie automatycznego zapisu nie wymaga wyłączania odtwarzania. Przydatna polityka utrzymuje automatyczną retencję wyłączoną, podczas gdy automatyczne odtwarzanie, jawne zapamiętanie i jawne zapomnienie pozostają włączone — pamięć powinna być łatwa do odczytu, a trudna do zapisu, co jest blisko odwrotności domyślnego „przechwyć wszystko i posortuj później”.
Dodaj trwałą instrukcję dla agenta
Konfiguracja dostawcy blokuje automatyczne przechwytywanie na poziomie dostawcy, ale model nadal może zdecydować się na wywołanie jawnego narzędzia zapisu z własnej inicjatywy. Dodaj jawną politykę do SOUL.md:
## Polityka pamięci długoterminowej
Mnemosyne jest dostawcą pamięci długoterminowej.
Nie zapisuj niczego do Mnemosyne, chyba że użytkownik wyraźnie prosi Cię o
zapamiętanie, zapisanie, zachowanie lub przechowanie tej informacji.
Jeśli informacja wydaje się przydatna dla przyszłych sesji, ale użytkownik nie
wyraźnie poprosił o jej zapamiętanie, poproś o pozwolenie przed wywołaniem
mnemosyne_remember lub innego narzędzia zapisu Mnemosyne.
Nie twórz trwałej pamięci z własnego rozumowania, założeń, podsumowań,
interpretacji, wniosków lub wywnioskowanych preferencji.
Nie twórz trwałej pamięci z outputu narzędzi, chyba że użytkownik wyraźnie
poprosi o zapamiętanie tego wyniku.
Przechowując zatwierdzoną pamięć, zachowuj to, co użytkownik faktycznie stwierdził.
Nie przyozdabiaj jej wywnioskowanym kontekstem lub wnioskami.
Odczytywanie i odtwarzanie pamięci Mnemosyne jest dozwolone bez proszenia o
pozwolenie.
Zrestartuj bramkę i rozpocznij nową sesję później:
hermes gateway restart
/new
Jest to polityka egzekwowana przez model, a nie sztywna granica uprawnień — uzupełnia ona konfigurację poziomu dostawcy powyżej, a nie zastępuje jej.
Co z memory.write_approval?
Hermes obsługuje memory.write_approval: true dla zapisów wbudowanych MEMORY.md / USER.md, a Mnemosyne implementuje własne, specyficzne dla dostawcy stadium dla jawnych zapisów w nowszych wersjach. Jest to obiecujące, ale jest architektoniczne zastrzeżenie, które warto traktować poważnie: Hermes nie udostępnia jeszcze jednego, jednorodnego, neutralnego względem dostawcy kontraktu akceptacji dla wszystkich zewnętrznych dostawców pamięci, a implementacja oczekujących/zastosowywania Mnemosyne jest specyficzna dla dostawcy, a nie częścią wspólnego standardu. Nie zakładaj, że akceptacja działa poprawnie tylko dlatego, że klucz konfiguracji jest obecny — przetestuj go w odniesieniu do Twoich dokładnych wersji Hermes i Mnemosyne. Do czasu dojrzenia akceptacji niezależnej od dostawcy, połączenie sync_roles: [], MNEMOSYNE_LOG_TOOLS=0 i polityki SOUL.md dla jawnych zapisów powyżej daje Ci niezawodną bazę, z osobno testowaną ścieżką akceptacji, jeśli zamierzasz na niej polegać.
Włącz tłumienie samopowtórzenia (self-echo)
Bieżący Mnemosyne oferuje również opcjonalne tłumienie samopowtórzenia:
MNEMOSYNE_SELF_ECHO_ENABLED=1
Umieść to w ~/.hermes/.env, a następnie zrestartuj:
hermes gateway restart
Tłumienie samopowtórzenia ma na celu konkretnie granice kompresji kontekstu — jego celem jest redukcja przypadków, w których pamięć właśnie utworzona przez dostawcę jest natychmiast podawana z powrotem do agenta tak, jakby była niezależnym kontekstem. Jest to celowo na zasadzie „najlepszego wysiłku” i nie zastępuje filtrowania zapisu: kontrole zapisu zatrzymują podejrzaną pamięć przed wejściem w ogóle, podczas gdy kontrole samopowtórzenia zatrzymują świeży output dostawcy przed odbiciem się prosto z powrotem. Oba mają znaczenie i żaden nie zastępuje drugiego.
Konserwatywna konfiguracja Mnemosyne
Łącząc elementy ze sobą, początkowa konfiguracja dla samohostowanego, osobistego inżynierskiego agenta wygląda tak. W ~/.hermes/config.yaml:
memory:
provider: mnemosyne
mnemosyne:
sync_roles: []
W ~/.hermes/.env:
MNEMOSYNE_LOG_TOOLS=0
MNEMOSYNE_SELF_ECHO_ENABLED=1
I w SOUL.md, w minimum:
Przechowuj pamięć długoterminową tylko, gdy użytkownik wyraźnie o to prosi.
Nie promuj wniosków generowanych przez model ani outputu narzędzi do trwałej pamięci
bez wyraźnego pozwolenia.
Test, czy zwykła rozmowa nie jest przechowywana
Sprawdź najpierw bazową liczbę:
hermes mnemosyne stats
Rozpocznij nową sesję Hermes i powiedz zwykłe stwierdzenie faktów, nie prosząc agenta o zapamiętanie go, na przykład:
PurpleOtter uses port 48123.
Później wyszukaj to:
hermes mnemosyne inspect "PurpleOtter"
Oczekiwane: Results for 'PurpleOtter': 0. Sprawdź również ponownie hermes mnemosyne stats — liczba pamięci roboczej nie powinna się zwiększyć z powodu tej zwykłej tury.
Test jawnej pamięci
Teraz powiedz ten sam rodzaj stwierdzenia, ale wyraźnie poproś o retencję:
Remember that BlueKoala uses port 17321.
Sprawdź to, a następnie rozpocznij nową sesję i poproś o jego powrót:
hermes mnemosyne inspect "BlueKoala"
/new
What port does BlueKoala use?
Hermes powinien poprawnie odtworzyć wartość — ta para testów izoluje politykę ścieżki zapisu (nic nie wejdzie bez pytania) od mechanizmu odtwarzania (co wejdzie, wraca niezawodnie).
Test logowania narzędzi
Z ustawionym MNEMOSYNE_LOG_TOOLS=0, poproś Hermes o uruchomienie charakterystycznego, unikalnego polecenia:
Use the terminal tool to run:
echo tool-canary-834729
Następnie wyszukaj łańcuch kania:
hermes mnemosyne inspect "tool-canary-834729"
Oczekiwane: 0 results. To znacznie silniejszy test niż po prostu zaufanie, że zmienna środowiskowa jest honorowana wszędzie.
Inspekcja bazy danych
Ponieważ przechowywanie opiera się na SQLite, wewnętrzny schemat jest bezpośrednio inspekcjonowalny:
sqlite3 ~/.hermes/mnemosyne/data/mnemosyne.db '.tables'
W zależności od wersji, możesz zobaczyć tabele takie jak working_memory, episodic_memory, facts, consolidated_facts, gists, graph_edges, memoria_facts oraz memory_embeddings. Ma to znaczenie podczas testowania usuwania — system pamięci może pomyślnie usunąć wiersz pamięci roboczej, pozostawiając po drodze wyprowadzony fakt, gista lub obiekt grafu. Mnemosyne miało realne błędy w tym obszarze dotyczące osieroconych rekordów wyprowadzonych, a nowsze wersje zaostrzyły zarówno usuwanie, jak i diagnostykę w sposób odpowiedni. Preferuj obsługiwane przez dostawcę ścieżki usuwania i doctor/repair nad ręcznym usuwaniem wierszy SQLite, chyba że w pełni rozumiesz bieżący schemat.
Usuwanie pamięci roboczej zakresu sesji
Jedna subtelność: pamięci robocze Mnemosyne mogą mieć zakres sesji, więc wiersz z scope = session może być niewidoczny dla niezależnego usuwania działającego w sesji default. Podczas debugowania, inspekcjonuj zakres bezpośrednio:
SELECT id, session_id, scope, content
FROM working_memory;
Dostawca lub API potrzebuje poprawnego zakresu sesji, aby mutować rekordy lokalne sesji — kolejny powód, dla którego należy preferować obsługiwane narzędzia administracyjne nad surowe edycje SQL.
Konsolidacja: nie spiesz się z sleep()
Mnemosyne może konsolidować pamięć roboczą w reprezentacje o dłuższym życiu, co jest przydatne, ale jest to operacja mutująca. Przed włączeniem agresywnej automatycznej konsolidacji, inspekcjonuj, co faktycznie jest przechwytywane, zweryfikuj, czy zwykłe tury nie wchodzą do pamięci nieoczekiwanie, zweryfikuj usuwanie od początku do końca i zrób kopię zapasową bazy danych. Następnie eksperymentuj z:
hermes mnemosyne sleep
Ostatnie zmiany w Mnemosyne uczyniły obsługę konfliktów bardziej konserwatywną — sama semantyczna podobieństwo nie dowodzi już, że jedna pamięć powinna unieważnić drugą, co jest dokładnie kierunkiem, w którym system trwałej pamięci agenta powinien się rozwijać, jak opisano w Pętle wzmacniania własnego w pamięci agentów AI.
Kopia zapasowa przed aktualizacjami
Utwórz przenośny eksport przed każdą znaczącą zmianą:
hermes mnemosyne export \
--output ~/mnemosyne-backup.json
W przypadku ważnych instalacji, skopiuj również lokalną bazę danych lub katalog danych przed dużymi aktualizacjami. Mnemosyne 4.x to obecnie linia przedpremierowa, więc aktualizacja wersji głównej wymaga więcej ostrożności niż rutynowa aktualizacja łatka.
Ostateczna zalecana konfiguracja
W przypadku długotrwałej instalacji Hermes, gdzie dokładność pamięci jest ważniejsza niż zapamiętywanie wszystkiego, trwała konfiguracja to: lokalne przechowywanie Mnemosyne włączone, automatyczne odtwarzanie włączone, automatyczny zapis rozmowy wyłączony, automatyczny zapis wiadomości asystenta wyłączony, logowanie wyników narzędzi wyłączone, jawne zapamiętanie i zapomnienie włączone, tłumienie samopowtórzenia włączone, wyszukiwanie w sesji włączone, a przegląd przez człowieka dla wrażliwych zapisów pożądana, gdy ścieżka akceptacji zostanie przetestowana. To sprawia, że Mnemosyne funkcjonuje głównie jako skrupulatnie dobrany magazyn pamięci długoterminowej, a nie archiwum transkrypcji — celem nie jest sprawienie, aby Hermes pamiętał wszystko, co kiedykolwiek powiedział, ale aby pamiętał te rzeczy, które nadal będą prawdziwe, gdy zacznie się następna sesja. Jeśli uruchamiasz kilka profili z różnymi dostawcami lub politykami retencji, Produkcyjna konfiguracja Hermes Agent opisuje poziom profilowy, aby utrzymać je spójne. Jeśli wolisz uruchamiać pamięć jako osobną usługę Docker z grafem wiedzy i operacją reflect, Hindsight dla Hermes Agent to zewnętrzny, oparty na Dockerze przewodnik dostawcy.