Jak przestać karmić LLM-y i nauczyć agentów rozumieć Twój kod
Znana sytuacja: podłączasz agenta AI do projektu, a on zaczyna „halucynować" lub wielokrotnie czytać te same pliki, pochłaniając Twój budżet tokenów. Nawet zaawansowane narzędzia takie jak Cursor czasami tracą ślad połączeń między modułami, gdy projekt rośnie do tysięcy plików. Niedawno natknąłem się na Memtrace — projekt, który próbuje rozwiązać ten problem fundamentalnie, zamieniając codebase w żywy graf wiedzy.
Dlaczego agenci potrzebują „pamięci strukturalnej"
Większość nowoczesnych asystentów AI działa na zasadzie RAG (Retrieval-Augmented Generation). Wyszukują fragmenty kodu według słów kluczowych lub podobieństwa wektorowego. Problem polega na tym, że kod to nie tylko tekst — to złożona hierarchia wywołań, importów i zależności. Jeśli agent nie widzi pełnego obrazu, może refaktoryzować funkcję w sposób, który łamie testy w sąsiednim mikroserwisie, o istnieniu którego agent nawet nie wiedział.
Memtrace tworzy to, co deweloperzy nazywają „dwukierunkowym grafem wiedzy". Nie tylko indeksuje tekst — rozumie strukturę: która funkcja wywołuje którą, które interfejsy są implementowane i jak to wszystko zmieniało się w czasie.
Co potrafi to narzędzie
Główną cechą projektu jest szybkość i lokalność. Podczas gdy podobne narzędzia wydają dziesiątki dolarów na wywołania API i godziny na indeksowanie, Memtrace robi to w sekundy na Twojej maszynie.
Indeksowanie bez LLM
Deweloperzy użyli Rust i Tree-sitter. Dzięki temu możliwe jest parsowanie 15 000 plików w około 1,5 sekundy. Jednocześnie koszty API wynoszą zero, ponieważ sieci neuronowe nie są używane do budowania grafu — tylko deterministyczna analiza statyczna. Cały proces odbywa się lokalnie, więc Twój kod nie trafia na cudze serwery.
Rozumienie kontekstu przez MCP
Narzędzie obsługuje Model Context Protocol (MCP). Oznacza to, że można je „podłączyć" do Claude Code, Cursor, Windsurf lub VS Code dosłownie jednym poleceniem. Agent uzyskuje dostęp do ponad 25 narzędzi: od znajdowania „martwego" kodu po analizę blast radius dla zmian.
Oś czasu zmian
Memtrace przechowuje historię wersji dla każdego symbolu. Agent może zapytać: „Co zmieniło się w ostatnim tygodniu?" lub „Które funkcje stały się zbyt złożone po ostatnim merge'u?" System używa sześciu algorytmów ewaluacyjnych, w tym analizy nowości i intensywności zmian, aby wyróżnić najważniejsze rzeczy dla agenta.
Porównanie z alternatywami
W README znajduje się interesująca tabela benchmarkowa. Na przykład Mem0 lub Graphiti polegają na wywołaniach LLM do ekstrakcji encji podczas indeksowania. To jest wolne i kosztowne. Memtrace wygląda przy tym jak samochód wyścigowy:
| Operacja | Memtrace | Alternatywy (Mem0/GitNexus) |
|---|---|---|
| Indeksowanie 15 000 plików | 1,5 sek. | 30 min do 2 godzin |
| Koszty API | $0 | $10–50 |
| Zużycie pamięci | 26 MB | ~1 GB |
Oczywiście warto zauważyć, że Memtrace jest wąsko skupiony na kodzie, podczas gdy inne systemy mogą pracować z dowolnymi rozmowami. Ale w przypadku zadań deweloperskich taka specjalizacja jest ogromnym plusem.
Wnętrze techniczne
Pod maską projekt ma całkiem poważny stack. Oprócz Rust używa Tantivy do wyszukiwania pełnotekstowego (BM25) i osadzania wektorów do wyszukiwania semantycznego. To wszystko jest łączone przez Reciprocal Rank Fusion (RRF), aby dostarczać najbardziej trafne wyniki.
Obsługa języków jest ciekawie zaimplementowana. Oprócz standardowego zestawu (TypeScript, Python, Go, Rust), Memtrace rozumie kod infrastruktury: Terraform, GitHub Actions, a nawet polityki RLS w PostgreSQL. Widzi połączenia między schematem bazy danych a kodem ORM w aplikacji.
Jak używać tego w praktyce
Wyobraź sobie, że musisz wprowadzić zmiany w klasie bazowej w ogromnym monorepo. Zazwyczaj uruchamiasz wyszukiwanie w całym projekcie i masz nadzieję, że niczego nie przeoczyłeś.
Z Memtrace agent może wykonać polecenie get_impact i natychmiast zobaczyć drzewo zależności. Powie: „Jeśli zmienisz to pole, te trzy endpointy i jeden worker w innym module się popsuja." Eliminuje to „ślepe" refaktoryzacje.
Aby zacząć, wystarczy zainstalować pakiet globalnie:
npm install -g memtrace
Po tym narzędzie automatycznie skonfiguruje niezbędne ustawienia dla Claude lub Cursor. Jeśli jesteś paranoikiem w kwestii prywatności, możesz wyłączyć telemetrię jedną zmienną środowiskową MEMTRACE_TELEMETRY=off.
Kto powinien wypróbować
Projekt jest obecnie w prywatnej becie, ale dostęp jest stopniowo otwierany w grupach. Moim zdaniem Memtrace będzie najbardziej przydatny dla tych, którzy:
- Pracują z dużymi codebase'ami, gdzie trudno jest utrzymać wszystkie połączenia w głowie.
- Aktywnie używają agentów AI i chcą zmniejszyć wydatki na tokeny.
- Obawiają się wysyłania kodu źródłowego do usług chmurowych na potrzeby indeksowania.
Jedynym zastrzeżeniem jest to, że licencja jest własnościowa (EULA), choć obiecują zachować darmowy dostęp dla indywidualnych deweloperów. Jeśli nie możesz się doczekać, aby „włożyć ręce" w „pamięć strukturalną" dla swoich agentów, warto sprawdzić ich Discord lub złożyć prośbę na stronie internetowej.
Jak dotąd projekt wygląda na bardzo energiczną próbę uczynienia programowania z asystencją AI bardziej przewidywalnym i tańszym. Przynajmniej szybkość indeksowania 1,5 sekundy to coś, czego brakowało nam od dawna.
Powiązane projekty