>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Bezpieczeństwo
C

Jak sprawić, by agent AI pracował z ogromną bazą starszego kodu bez utraty kontekstu i pieniędzy

16 677 gwiazdki

Brzmi znajomo? Prosisz Claude'a lub ChatGPT, żeby rozgryzł logikę starego projektu, a on zaczyna „halucynować" albo po prostu pochłania cały limit tokenów, próbując przeczytać setki plików za pomocą zwykłego grepa. Nawet nowoczesne agenty jak Claude Code często zachowują się jak ślepe kocięta, jeśli chodzi o głębokie powiązania między serwisami czy złożone łańcuchy wywołań.

Pewnego dnia natknąłem się na repozytorium codebase-emory-mcp. To serwer MCP (Model Context Protocol), który przekształca Twój kod w ustrukturyzowany graf wiedzy. Zamiast karmić sieć neuronową surowym tekstem, narzędzie buduje mapę funkcji, klas i zależności, którą AI rozumie w pół słowa.

Na czym polega problem zwykłego wyszukiwania

Kiedy agent AI próbuje zrozumieć Twój kod, zwykle robi to metodą siłową. Uruchamia wyszukiwanie ciągów znaków, otwiera pliki jeden po drugim i próbuje wszystko zapamiętać. Problem polega na tym, że okno kontekstowe nie jest nieskończone. Jeśli projekt jest duży, agent szybko zapomina początek łańcucha wywołań lub zaczyna mylić podobne metody w różnych modułach.

Deweloperzy z DeusData twierdzą, że imponujące liczby: użycie ich grafu zmniejsza zużycie tokenów 120-krotnie. Tam gdzie zwykły agent musi przetworzyć 400 000 tokenów, to narzędzie potrzebuje tylko trzech do czterech tysięcy. To nie tylko kwestia oszczędności na wywołaniach API — przede wszystkim chodzi o dokładność odpowiedzi.

Co potrafi ten silnik

Projekt jest napisany w „czystym" C i używa SQLite do przechowywania danych. To daje niesamowitą szybkość. Indeksowanie jądra Linux (to 28 milionów linii kodu) zajmuje tylko trzy minuty. Typowy projekt Django czy React zostaje „połknięty" w kilka sekund.

Oto kilka rzeczy, które zwróciły moją uwagę:

  • Rozumienie architektury. Narzędzie widzi nie tylko tekst, ale strukturę. Rozróżnia endpointy API, rozumie, która funkcja wywołuje którą, a nawet znajduje „martwy" kod, którego nikt nie używa.
  • Wsparcie dla 66 języków. Dzięki tree-sitter silnik rozumie prawie wszystko — od Pythona i TypeScripta po Rusta i COBOL. Co więcej, dla C, C++ i Go potrafi wnioskować typy w stylu LSP.
  • Wizualizacja. Zawiera (opcjonalny) wizualizator grafu 3D. Możesz dosłownie obracać projekt w przeglądarce przy localhost:9749 i zobaczyć, jak moduły są ze sobą połączone.
  • Integracja z agentami. Jednym poleceniem install narzędzie konfiguruje się dla Claude Code, Zed, Aider i tuzina innych popularnych narzędzi.

Wizualizacja grafu wiedzy projektu
Ten właśnie graf 3D, który możesz obracać w przeglądarce

Jak to działa pod maską

Ciekawe jest to, że autorzy postanowili nie osadzać własnego LLM do tłumaczenia zapytań na polecenia bazy danych. Zasadnie uznali: skoro już rozmawiasz z inteligentnym agentem (jak Claude 3.5 Sonnet), niech on zajmie się tłumaczeniem.

Pytasz: „Kto wywołuje metodę ProcessOrder?”. Agent rozumie intencję i wywołuje narzędzie trace_call_path. Silnik przechodzi przez graf w milisekundach i zwraca ustrukturyzowaną odpowiedź. W rezultacie AI widzi wyraźny łańcuch zamiast próbować odgadnąć go z pośrednich wskazówek.

SQLite w trybie WAL służy do przechowywania, a dane są kompresowane algorytmem LZ4. Pozwala to trzymać indeks nawet bardzo dużych projektów bezpośrednio w pamięci podczas pracy bez nadmiernego obciążania dysku.

Praktyczne korzyści dla deweloperów

Najbardziej oczywisty przypadek użycia to wdrożenie się do nowego projektu lub refaktoryzacja starego. Zamiast ręcznie budować diagramy w głowie, dajesz agentowi dostęp do codebase-memory-mcp.

Na przykład możesz zapytać: „Znajdź wszystkie endpointy, które przyjmują UserID, ale nie sprawdzają praw dostępu". Narzędzie znajdzie powiązania między trasami HTTP a metodami walidacji, które zwykłe wyszukiwanie tekstu by przeoczyło.

Inną świetną funkcją jest detect_changes. Analizuje Twój obecny diff git i pokazuje „promień rażenia": które funkcje i moduły dotkną Twoje zmiany. To świetne zabezpieczenie przed commitowaniem.

Jak wypróbować

Instalacja jest prosta jak tylko się da — bez Dockera ani dodatkowych zależności. Dla macOS i Linux wystarczy jedno polecenie terminala:

curl -fsSL https://raw.githubusercontent.com/DeusData/codebase-memory-mcp/main/install.sh | bash

Jeśli chcesz wizualizację od razu, dodaj flagę --ui. Po instalacji po prostu uruchom ponownie agenta AI i powiedz mu: „Zaindeksuj ten projekt".

Czy warto

Projekt wygląda bardzo obiecująco. To, co szczególnie mi się podoba, to fakt, że to nie kolejna usługa chmurowa, ale lokalne narzędzie. Cały Twój kod pozostaje na Twojej maszynie — żadne dane nie są wysyłane na zewnętrzne serwery do indeksowania.

Oczywiście są pewne niuanse. Jakość analizy dla niektórych języków jak Haskell jest wciąż niższa niż dla mainstreamowego Pythona czy Go. Ale lista wspieranych technologii i szybkość przetwarzania więcej niż rekompensują te niedociągnięcia.

Jeśli aktywnie używasz AI w codziennej pracy deweloperskiej i masz wrażenie, że zaczyna „zacinać" się na złożonych zadaniach, to narzędzie może być tym brakującym ogniwem. Przynajmniej możliwość zobaczenia projektu jako grafu 3D zdecydowanie warta jest dziesięciu minut instalacji.

Powiązane projekty