Dlaczego Claude Code ponownie odczytuje cały projekt i jak to naprawić
MarkdownClaude Code nie indeksuje kodu i za każdym razem odczytuje projekt od początku, zużywając tokeny. Dowiedz się, jak zapewnić mu trwałą pamięć kodu przez MCP i ograniczyć zużycie.
Przeczytaj cały artykuł
Najważniejsze informacje
Claude Code nie przechowuje indeksu kodu. W każdej sesji ponownie przeszukuje projekt i odczytuje pliki od początku, przez co tokeny są zużywane na rozpoznanie projektu zamiast na pracę. Możesz to naprawić za pomocą pamięci kodu: zainstaluj serwer indeksujący przez MCP, a Claude będzie mógł korzystać z gotowej mapy projektu zamiast ponownie czytać całość.
Dokumentacja Ailoot: API, klucze i połączenie.
Dlaczego Claude Code za każdym razem ponownie odczytuje projekt od początku?
Najważniejsze informacje
Claude Code nie ma wbudowanego indeksu kodu. Przeszukuje projekt za pomocą trzech narzędzi: znajduje pliki według wzorca, wyszukuje ciągi znaków w tekście i odczytuje całe pliki. To tak zwane wyszukiwanie agentowe: model decyduje, gdzie zajrzeć, i powtarza ten proces przy każdym nowym zadaniu. Nie pamięta poprzedniej sesji, więc każda kolejna zaczyna się od początku.
Wiele osób uważa, że to błąd. W rzeczywistości Claude Code został tak zaprojektowany: nie ma własnego indeksu projektu. Gdy prosisz go o naprawę czegoś, nie ma pod ręką gotowej mapy kodu — ponownie poznaje projekt: znajduje odpowiednie pliki, wyszukuje potrzebne ciągi znaków i wczytuje pliki do pamięci.
To podejście ma realne zalety. Kod jest zawsze aktualny — nie ma indeksu, który zdążył się zdezaktualizować. Nie trzeba niczego konfigurować. Kod nie jest wysyłany do żadnej bazy danych.
Jest jednak też wada: każde nowe zadanie oznacza kolejne wyszukiwanie i odczytywanie plików. Tokeny są ponownie zużywane na ustalanie, gdzie co się znajduje, mimo że Claude już to zrobił w poprzedniej sesji. Im większy projekt, tym więcej kosztuje to rozpoznanie. Właśnie dlatego może się wydawać, że agent „czyta wszystko”.
Ile tokenów naprawdę na to idzie?
Najważniejsze informacje
Jeszcze zanim Claude Code ponownie odczyta kod, wysyła w każdym żądaniu około 33 000 tokenów danych systemowych. W rzeczywistej konfiguracji do pracy łączna liczba sięga 75 000–85 000 tokenów, zanim wpiszesz choćby jedno słowo. Do tego dochodzi ponowne odczytywanie plików, a według oficjalnej dokumentacji to właśnie odczytywanie plików zużywa najwięcej kontekstu.
Koszty pojawiają się jeszcze przed wysłaniem żądania. Pokazuje to prosty niezależny pomiar: Claude Code wysyła około 33 000 tokenów promptu systemowego i opisów narzędzi, zanim odczyta pierwszy znak Twojej wiadomości. Dla porównania OpenCode zaczyna od około 7 000.
Potem dochodzi ponowne odczytywanie. Każde wyszukiwanie plików i każdy odczyt dodają tokeny do kontekstu. Oficjalna dokumentacja Claude Code mówi wprost: odczytywanie plików dominuje w zużyciu kontekstu. Analiza pliku auth.ts o objętości 2 400 tokenów oznacza, że Claude widzi te 2 400 tokenów; to samo dotyczy każdego pliku otwieranego podczas rozpoznania projektu.
Dla naszych odbiorców przekłada się to na pieniądze i limity. Największą obawą osób rozpoczynających przygodę z vibe codingiem jest: „Zapłaciłem, a limity skończyły się na darmo”. Jeśli przy każdym zadaniu agent skanuje projekt i ponownie odczytuje pliki od początku, kontekst zużywa się dwa razy szybciej: najpierw na narzut systemowy, potem na rozpoznanie projektu. W poradniku „Na co idą tokeny Claude Code” opisałem pełną mapę tego, gdzie dokładnie zużywane są tokeny Claude Code — ponowne odczytywanie projektu to jeden z dziewięciu omówionych tam wzorców.
Czym jest trwała pamięć kodu?
Najważniejsze informacje
Pamięć kodu to gotowa mapa projektu, z której agent może korzystać zamiast ponownie odczytywać pliki. Osobne narzędzie skanuje kod raz, tworzy strukturę funkcji, plików i powiązań, a następnie zapisuje ją na dysku. Później, gdy zapytasz „gdzie obsługiwane są płatności?”, Claude otrzyma odpowiedź z mapy w ramach jednego zapytania, zamiast przeglądać każdy plik.
Pamięć kodu rozwiązuje dokładnie ten problem, przez który Claude ponownie odczytuje projekt. Pomysł jest prosty: raz zeskanować cały kod, utworzyć na jego podstawie mapę i mieć ją pod ręką. Dzięki temu agent nie musi za każdym razem zaczynać wyszukiwania od początku — pyta mapę.
Technicznie działa to tak: osobne narzędzie skanuje projekt i rozkłada go na elementy: istniejące funkcje i klasy, to, kto kogo wywołuje, oraz powiązania między plikami. Ta struktura jest zapisywana na dysku. Gdy Claude chce zrozumieć, gdzie znajduje się logika płatności albo co się zepsuje po edycji funkcji, zadaje mapie jedno konkretne pytanie zamiast czytać dziesiątki plików.
Mapa jest podłączana przez MCP — standardowy sposób dodawania zewnętrznych narzędzi do Claude Code (sposób podłączania innych serwerów opisałem w poradniku „Serwery MCP dla Claude Code”). Narzędzie pamięci kodu dodaje własne polecenia wyszukiwania w mapie, a Claude korzysta z nich samodzielnie, gdy potrzebuje zorientować się w projekcie.
W praktyce różnica polega na tym, czy „czytasz cały folder, żeby znaleźć jedną funkcję”, czy „pytasz mapę, gdzie jest ta funkcja”. Pierwsze rozwiązanie kosztuje dziesiątki tysięcy tokenów, drugie — setki.
Dwa podejścia do pamięci kodu — czym się różnią?
Najważniejsze informacje
Są dwa przydatne narzędzia, a oba są bezpłatne na licencji MIT. Serena zapewnia agentowi nawigację po kodzie podobną do inteligentnego środowiska programistycznego i sprawdza się przy precyzyjnych edycjach. claude-context wyszukuje według znaczenia za pomocą embeddings, ale wymaga zewnętrznej bazy danych i klucza. Różnią się tym, co zapamiętują.
Narzędzia pamięci kodu różnią się tym, co tworzą na podstawie projektu. Najłatwiej wyobrazić to sobie tak: jedno daje agentowi precyzję pracy chirurga przy edycji, a drugie wyszukuje według znaczenia.
| Porównywana cecha | Serena | claude-context |
|---|---|---|
| Typ pamięci | Nawigacja po kodzie za pomocą silnika środowiska programistycznego | Wyszukiwanie według znaczenia za pomocą embeddings |
| Co znajduje | Definicje, rzeczywiste miejsca wywołań, edycje według symbolu | Kod na podstawie opisu: „gdzie jest logika płatności” |
| Zewnętrzne zależności | Menedżer pakietów uv; dla TypeScript i JavaScript także Node 20+ i npm | Zewnętrzna baza danych + klucz + Node 20+ |
| Instalacja | Jedno polecenie | Polecenie z trzema ustawieniami |
| Oszczędność tokenów | Nie podaje dokładnego odsetka | Około 40% przy tej samej jakości |
| Gwiazdki na GitHubie | 26,468 | 12,138 |
| Mocna strona | Ostrożna refaktoryzacja w całym codebase | Znajdowanie potrzebnych rzeczy bez znajomości dokładnych nazw |
| Słaba strona | Mniej języków, brak wyszukiwania według znaczenia | Rozbudowana konfiguracja, wymaga usługi w chmurze |
Liczby gwiazdek na GitHubie pochodzą z 15 lipca 2026 roku (według GitHub API). Oba narzędzia są bezpłatne i open source, działają z Claude Code i łączą się z nim jako serwery MCP.
Krótkie podsumowanie dla osób niebędących programistami. Serena to precyzyjne ręce chirurga: używaj jej, gdy edytujesz tę samą część projektu w wielu miejscach i liczy się dokładność. claude-context to wyszukiwanie według znaczenia: znajduje kod na podstawie opisu, ale wymaga konfiguracji chmurowej bazy danych i klucza.
Kiedy wybrać Serenę lub claude-context?
Najważniejsze informacje
Serena przydaje się, gdy ważne są precyzyjne edycje: zmiana nazwy funkcji w całym projekcie, zastąpienie jej treści lub znalezienie wszystkich rzeczywistych miejsc jej wywołania. Korzysta z tego samego silnika co inteligentne środowiska programistyczne i edytuje kod według znaczenia, a nie dopasowania tekstu. Wybierz claude-context, jeśli chcesz wyszukiwać kod na podstawie opisu i nie przeszkadza Ci konfiguracja zewnętrznej bazy danych oraz klucza.
Te dwa narzędzia nie rywalizują o jedną nagrodę. Zapamiętują różne rzeczy, więc wybór zależy od zadania.
Wybierz Serenę, jeśli często przeprowadzasz refaktoryzację. Zapewnia agentowi nawigację po kodzie podobną do inteligentnego środowiska programistycznego: znajduje definicję funkcji i wszystkie jej rzeczywiste miejsca wywołania, a następnie ostrożnie zmienia nazwę funkcji lub zastępuje jej treść w całym projekcie. Autor opisuje tę zaletę tak:
Potężny zestaw narzędzi do pracy z kodem przez MCP: wyszukiwanie semantyczne i edycja — środowisko programistyczne dla Twojego agenta.
Serena nie podaje dokładnego odsetka oszczędności i nie będę przypisywać jej zmyślonej wartości. Korzyść jest inna: gdy zwykłe wyszukiwanie zwraca czterdzieści wyników, w tym komentarze i ciągi znaków, po czym Claude odczytuje cztery całe pliki, Serena odpowiada za pomocą kilku precyzyjnych zapytań. Oznacza to mniej wywołań i mniej fałszywych dopasowań, a tym samym mniejsze ryzyko, że agent edytuje niewłaściwą rzecz.
Wybierz claude-context, jeśli potrzebujesz wyszukiwania według znaczenia i nie zniechęca Cię konfiguracja. Narzędzie zamienia kod na wektory (liczbowe odciski znaczenia) i wyszukuje na podstawie opisu: „znajdź, gdzie jest nasza logika płatności”, nawet jeśli nie znasz nazw funkcji. Ceną takiego wyszukiwania jest dodatkowa konfiguracja.
Średnio claude-context obniża zużycie tokenów o około 40%, zachowując tę samą jakość wyszukiwania.
claude-context wymaga zewnętrznej wektorowej bazy danych, klucza dostawcy embeddings i aktualnej wersji Node. Spośród tych dwóch narzędzi jego konfiguracja jest bardziej złożona, dlatego początkującym polecam zacząć od czegoś innego.
Co możesz zrobić bezpośrednio w Claude Code, bez narzędzi firm trzecich?
Najważniejsze informacje
Wbudowane polecenia rozwiązują połowę problemu. /context dokładnie pokazuje, co zużywa kontekst. /compact skraca historię, /clear resetuje ją przed nowym zadaniem, a /doctor znajduje zbędne elementy i sugeruje ich uporządkowanie. Krótki plik CLAUDE.md zamiast zbyt obszernego pozwala oszczędzać tysiące tokenów w każdej wiadomości.
Zanim zainstalujesz narzędzia firm trzecich, wykorzystaj w pełni to, co Claude Code już oferuje. Te polecenia są bezpłatne i działają od razu.
/context—pokazuje na żywo zestawienie elementów zajmujących okno: prompt systemowy, CLAUDE.md, pamięć, narzędzia i pliki. Polecenie/mcppokazuje koszt każdego podłączonego serwera, a/memory— co zostało wczytane podczas uruchamiania./compact—kompresuje historię rozmowy do krótkiego podsumowania i pozwala kontynuować to samo zadanie. Możesz wskazać, co zachować, dopisując to do polecenia/compact./clear—usuwa całą historię. Oficjalne zalecenie mówi, by uruchamiać je po przejściu do niezwiązanego zadania, żeby poprzednia rozmowa nie wypierała potrzebnych plików./doctor(nazywane także/checkup, wprowadzone 8 lipca 2026 roku)—diagnozuje konfigurację i sugeruje poprawki: usuwa duplikaty w CLAUDE.md, wyszukuje nieużywane narzędzia i serwery oraz wykrywa powolne handlery.
Osobna uwaga o CLAUDE.md. Ten plik jest wczytywany do kontekstu na początku każdej sesji i uwzględniany w każdej wiadomości. Jeśli jest zbyt obszerny, cały czas za niego płacisz. Oficjalne zalecenie to mniej niż 200 wierszy, a szczegóły referencyjne warto przenieść do skills ładowanych na żądanie. W osobnym poradniku „Jak skonfigurować CLAUDE.md” opisałem, jak prawidłowo przygotować ten plik.
Jeszcze jedną wbudowaną możliwością są subagenci. Mają własny, odrębny kontekst, więc możesz zlecić im intensywne czytanie i rozpoznanie projektu bez rozbudowywania głównego okna. Anthropic przedstawia tę ogólną zasadę w swojej analizie technicznej.
Dobre zarządzanie kontekstem polega na znalezieniu najmniejszego możliwego zestawu tokenów bogatych w informacje, który pozwala uzyskać pożądany wynik.
Czy dodatkowy serwer MCP jeszcze bardziej powiększy kontekst?
Najważniejsze informacje
To uzasadniona obawa, ale odpowiedź brzmi: nie. Od 2026 roku Claude Code domyślnie nie wczytuje do kontekstu pełnych opisów narzędzi MCP — odracza ich ładowanie i wczytuje tylko to, co jest potrzebne. Podczas uruchamiania do kontekstu dodawane są wyłącznie nazwy. Indeks kodu generuje więc znikomy narzut systemowy, oszczędzając tysiące tokenów, które w przeciwnym razie zostałyby zużyte na ponowne odczytywanie plików.
Rozumowanie, że „kolejny serwer oznacza większy narzut kontekstu”, kiedyś było słuszne, ale Claude Code się zmienił. Opisy narzędzi MCP są teraz domyślnie ładowane z opóźnieniem: podczas uruchamiania do kontekstu trafiają tylko nazwy serwerów, a pełne opisy są wczytywane, gdy zadanie wymaga konkretnego narzędzia. Dokumentacja mówi o tym wprost.
Wyszukiwanie narzędzi ogranicza zużycie kontekstu MCP, odraczając opisy narzędzi do chwili, gdy Claude ich potrzebuje. Na początku sesji wczytywane są tylko nazwy narzędzi, więc dodawanie serwerów MCP prawie nie wpływa na okno kontekstu.
Bilans pamięci kodu jest prosty. Niewielki, stały narzut związany z nazwami narzędzi kontra tysiące zaoszczędzonych tokenów, ponieważ agent nie musi ponownie odczytywać plików. Zdecydowanie bardziej opłaca się korzystać z indeksu.
Warto szczerze wspomnieć o kilku ograniczeniach, żeby nie oczekiwać cudów. Indeks trzeba od czasu do czasu odbudować — mapa przedstawia kod z chwili skanowania i po dużych zmianach wymaga aktualizacji (zależy to od narzędzia: niektóre aktualizują ją automatycznie, inne wymagają uruchomienia polecenia). Duże deklaracje, takie jak „120 razy mniej tokenów”, opisują najlepszy wynik dla wybranych zapytań, a nie to, czego można oczekiwać przy każdym zadaniu. Rzeczywiste oszczędności są skromniejsze, ale wciąż zauważalne. Jeśli chcesz dowiedzieć się więcej o unikaniu limitów, przeczytaj osobną analizę „Jak nie zużywać limitów Claude Code”.
Od czego zacząć już dziś?
Najważniejsze informacje
Zacznij od czegoś bezpłatnego i szybkiego. Uruchom /doctor, aby usunąć zbędne elementy. Skróć CLAUDE.md do 200 wierszy. Te kroki zmniejszają to, co Claude zabiera do każdego zadania, i zaczynają oszczędzać tokeny oraz limity.
Po odrzuceniu wszystkiego, co zbędne, plan na dziś jest prosty:
- Uruchom
/doctori uporządkuj wskazane elementy: duplikaty w CLAUDE.md oraz nieużywane narzędzia. - Skróć CLAUDE.md do 200 wierszy i przenieś materiały referencyjne do skills.
Potem wybierz narzędzie odpowiednie do swoich potrzeb: jeśli często przeprowadzasz refaktoryzację, dodaj Serenę do precyzyjnych edycji; jeśli potrzebujesz wyszukiwania według znaczenia, skonfiguruj claude-context. Pamięć kodu i uporządkowany kontekst rozwiązują już dziś główny problem.
Źródła
Jeśli chcesz uzyskać dostęp do modeli AI przez Ailoot, zajrzyj na stronę Ailoot.
Więcej szczegółów
Pytania i odpowiedzi
Kiedy wybrać nawigację po symbolach zamiast wyszukiwania kodu według znaczenia?
Nawigacja po symbolach typu Serena służy definicjom, miejscom wywołań i precyzyjnemu refaktoringowi. Wyszukiwanie znaczeniowe, np. claude-context, pomaga, gdy znasz potrzebne zachowanie, ale nie nazwę symbolu; wymaga dodatkowej bazy i konfiguracji embeddingów.
Czy po zmianach mogę nadal ufać mapie kodu?
Sprawdź odświeżenie indeksu. Mapa odzwierciedla przeskanowany kod, a sposób aktualizacji zależy od narzędzia. Używaj jej do lokalizacji odpowiedniego kodu, a potem sprawdź aktualne pliki przed zmianą.