Jak zapewnić agentom AI pamięć długoterminową za pomocą Obsidian
W zeszłym tygodniu złapałem się na tym, że po raz trzeci w tym miesiącu wyjaśniałem agentowi strukturę naszej usługi uwierzytelniania. Okno kontekstowe Claude Code jest wystarczająco duże, ale każda sesja w końcu się kończy. Nowe uruchomienie terminala — i konsola znów nic nie wie o decyzjach architektonicznych, ustaleniach zespołu czy zadaniach sprintu.
Niedawno natknąłem się na projekt obsidian- autorstwa dewelopera Brenno Ferrari. Autor przyjął bezpośrednie podejście: jeśli agent potrzebuje pamięci długoterminowej, dlaczego nie zrobić z niej regularnego sejfu Obsidian?
Co zawiera szablon
Projekt to gotowa struktura notatek, zestaw hooków TypeScript i wstępnie zbudowane polecenia CLI. Szablon działa out of the box z Claude Code, Codex CLI, Gemini CLI i innymi systemami, które potrafią odczytywać reguły z plików instrukcji.
Idea jest taka, że agent samodzielnie odczytuje i aktualizuje pliki Markdown. Gdy rozpoczyna się sesja, hook odczytuje globalne cele z pliku brain/North Star.md, pobiera listę aktywnych zadań i przekazuje ten wycinek do okna kontekstowego. Gdy informujesz agenta o podjętej decyzji lub odbytej rozmowie, organizuje on dane w foldery i łączy je z nazwiskami kolegów lub projektami.
Jak działa kontrola zużycia tokenów
Głównym problemem z systemami takimi jak ten jest zużycie tokenów. Jeśli włożysz całą bazę wiedzy do kontekstu przy każdym żądaniu, limity wypalą się w ciągu kilku godzin.
W obsidian- jest to obsługiwane przez wielowarstwowy schemat ładowania:
- Po uruchomieniu sesji odczytywany jest bazowy wycinek: cele, otwarte zadania, ostatnie commity i lista plików sejfu. Zajmuje to około 20 000 tokenów.
- Do wyszukiwania semantycznego używane jest narzędzie QMD. Buduje ono osadzenia wektorowe lokalnie i znajduje odpowiednie fragmenty, gdy agent potrzebuje konkretnych informacji.
- Podczas wysyłania wiadomości skrypt określa typ danych (incydent, spotkanie, decyzja architektoniczna) i przekazuje agentowi krótką wskazówkę routingu.
- Po zapisaniu plików uruchamiany jest walidator, który sprawdza poprawność linków wiki i parametrów YAML.
Jak wygląda dzień pracy
Rano uruchamiasz polecenie /om-standup. Agent odczytuje świeże zmiany w git, sprawdza zadania na liście i wyświetla krótkie podsumowanie.
Po spotkaniach lub dyskusjach na Slacku nie ma potrzeby ręcznego wypełniania struktur dokumentów. Wystarczy przekazać surowy tekst agentowi:
/om-dump Обсудили с Сарой рефакторинг авторизации. Решили отложить миграцию на Redis до второго квартала. Сара похвалила архитектуру API.
W odpowiedzi system automatycznie wykonuje cztery rzeczy naraz:
- Aktualizuje plik historii spotkań w
org/people/Sarah Chen.md. - Tworzy wpis decyzji w folderze decyzji.
- Rejestruje pochwałę w szablonie zaświadczenia
perf/Brag Doc.md. - Dodaje nowe zadanie do aktywnej karty projektu.
Pod koniec dnia polecenie /om-wrap-up sprawdza osierocone notatki bez odniesień i aktualizuje indeksy.
Uruchamianie zadań w tle przez sub-agentów
Przy ciężkich operacjach w szablonie skonfigurowani są wyspecjalizowani sub-agenci. Uruchamiają się w izolowanych oknach kontekstowych, aby nie zaśmiecać głównej historii rozmowy.
Repozytorium zawiera kilku wstępnie skonfigurowanych agentów:
- slack-
- cross-linker wyszukuje zerwane linki wiki i zapomniane notatki w całym sejfie.
- brag-
- people-
Budowanie i uruchamianie
Możesz wdrożyć sejf za pomocą menedżera szablonów ShardMind lub po prostu klonując repozytorium.
npm install -g shardmind
mkdir my-vault && cd my-vault
shardmind install github:breferrari/obsidian-mind
Polecenie konfiguracji poprosi o podanie imienia, nazwy firmy i głównych celów. Potem wystarczy wykonać kilka prostych kroków:
- Otwórz utworzony folder jako sejf w Obsidian.
- Włącz wtyczkę Obsidian CLI w ustawieniach aplikacji (wymaga Obsidian 1.12+).
- Uruchom agenta CLI bezpośrednio z katalogu sejfu.
Pełnoprawne wyszukiwanie wymaga również instalacji narzędzia QMD do wyszukiwania wektorowego:
npm install -g @tobilu/qmd
node --experimental-strip-types .scripts/qmd-bootstrap.ts
Bez QMD system będzie nadal działać przez grep i wbudowane wyszukiwanie Obsidian, choć dokładność odpowiedzi na abstrakcyjne pytania nieznacznie się zmniejszy.
Dla kogo jest ten projekt
Szablon będzie przydatny dla deweloperów, którzy aktywnie korzystają z agentów AI opartych na CLI i już prowadzą lub planują prowadzić notatki w Obsidian. Główna wartość tkwi w dobrze przemyślanych regułach łączenia dokumentów ze sobą.
Jedną rzeczą do odnotowania jest zależność od Node.js w wersji 22+ z flagą --experimental-strip-types do uruchamiania skryptów TypeScript bez kompilacji. Jeśli ta flaga zostanie zmieniona w przyszłych wydaniach Node.js, trzeba będzie zaktualizować ustawienia hooków. Mimo to projekt stanowi doskonałą gotową podstawę i eliminuje potrzebę budowania tego rodzaju szkieletu od zera.
Powiązane projekty