Files
DBAdmin/inbox/Andrej Karpathy Asked for a Tool. 48 Hours Later, Graphify Went Viral..md
T
2026-07-31 08:25:06 +00:00

94 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Andrej Karpathy Asked for a Tool. 48 Hours Later, Graphify Went Viral."
source: "https://www.towardsdeeplearning.com/andrej-karpathy-asked-for-a-tool-48-hours-later-graphify-went-viral-10d8ead5f50e?gi=b86cdc65a433&source=home_for_you---------2-98--------------------0dafcc76_5f3c_4bc6_bff8_35a939ffb2db-------15-------"
author:
- "[[Sumit Pandey]]"
published: 2026-07-27
created: 2026-07-31
description: "Andrej Karpathy Asked for a Tool. 48 Hours Later, Graphify Went Viral. Its called Graphify, and it turns any folder of code, docs, and images into a queryable knowledge graph: no vector database …"
tags:
- "clippings"
---
## Nazywa się Graphify i zamienia dowolny folder z kodem, dokumentacją i obrazami w zapytanialny graf wiedzy: bez bazy wektorowej, bez konfiguracji, tylko jedno polecenie.
3 kwietnia 2026 roku Andrej Karpathy opublikował post o czymś, co nazwał " *LLM Knowledge Bases",* a w ciągu kilku godzin wywołało to popularność w społeczności AI. Główna idea była zaskakująco prosta: zamiast używać RAG do pobierania fragmentów z surowych plików za każdym razem, gdy zadajesz pytanie, niech LLM kompiluje te pliki w uporządkowany, powiązany markdown wiki, który trwa przez sesje, gromadzi wiedzę w czasie i sprawia, że każde przyszłe zapytanie jest tańsze.
![](https://miro.medium.com/v2/resize:fit:1400/format:webp/1*kZgsErlnbJ71b8kDR_QlLA.png)
> **Jeśli nie możesz przeczytać artykułu dalej z powodu paywalll, kliknij** [**tutaj**](https://www.towardsdeeplearning.com/andrej-karpathy-asked-for-a-tool-48-hours-later-graphify-went-viral-10d8ead5f50e?sk=1aacd6ad148238d2e3377516d3b8a77a)
Karpathy opisał wrzucenie papierów, zrzutów ekranu, repozytoriów i artykułów do folderu, a następnie wskazanie na niego LLM, aby stworzyć wiki z podsumowaniami, linkami zwrotnymi, mapami koncepcyjnymi i plikiem indeksowym, po którym model mógł samodzielnie się poruszać. Brak osadzeń wektorowych, brak zaawansowanego pipeline'u wyszukiwania, tylko pliki markdown, które się składają. Tweet stał się viralem, następujący gist na GitHubie stał się viralem, a nagle wszyscy zaczęli mówić o zebranej wiedzy jako zamienniku za odzyskiwanie.`/raw`
Moja pierwsza reakcja to zainteresowanie zmieszane z lekką frustracją, bo krążyłem wokół podobnych pomysłów pracując z Claude Code przy większych repozytoriach i napotykając ten sam mur, na który napotykają wszyscy: model odkrywa Twój kod od zera na każdej sesji, a okno kontekstowe wypełnia się na długo zanim model zrozumie architekturę. Rama Karpathy'ego zadziałała, ale jego konfiguracja była, przyznając samą siebie*, "chaotyczną kolekcją skryptów",* a ja nie zamierzałem składać własnego kompilatora wiki od podstaw.
> A potem, 48 godzin później, ktoś faktycznie ją wysłał.
## Czym jest Graphify (a czym nie jest)
Programista o nazwisku Safi Shamsi wydał [Graphify](https://github.com/safishamsi/graphify), narzędzie open-source, które operacyjnie wykorzystuje wzór Karpathy dla baz kodu. Kierujesz go na dowolny folder, a on analizuje wszystko w środku: kod w 19 językach, PDF-y, markdown, obrazy w tym zdjęcia na tablicy suchościeralnej i diagramy za pomocą Claude Vision, a także tworzy pełny graf wiedzy z wykrywaniem społeczności, interaktywną wizualizację HTML, skarbiec Obsidian z inteligentnymi linkami zwrotnymi oraz wiki, gdzie każdy agent może zacząć i nawigować bez parsowania JSON. Instalacja to jedna linia:`index.md`
```hs
pip install graphifyy && graphify install
```
Następnie wpisujesz w Claude Code (lub Codex, OpenCode, OpenClaw) i kierujesz go do katalogu projektu. To, co wychodzi, trafia do folderu: do interaktywnej eksploracji, podświetlania węzłów bogów i zaskakujących połączeń, jako trwały graf do zapytań oraz do inkrementalnej pamięci podręcznej, aby przyszłe aktualizacje nie przetworzyły wszystkiego ponownie.`/graphify` `graphify-out/` `graph.html` `GRAPH_REPORT.md` `graph.json`
> Czym Graphify nie jest: nie jest systemem RAG, nie jest bazą wektorową i nie jest wrapperem chatbota. Jest to etap kompilacji, dokładnie taki, jaki opisał Karpathy, który przekształca chaotyczny katalog w ustrukturyzowany artefakt wiedzy, nad którym każdy agent LLM może rozumować bez czytania każdego pliku.
## Liczba 71,5x: najpierw sceptycyzm, potem matematyka
Główne twierdzenie to 71,5 razy mniej tokenów na zapytanie niż czytanie surowych plików. Brzmiało to zbyt dobrze, więc sprawdziłem, jak benchmarki są faktycznie zorganizowane.
Na małą skalę (6 plików Pythona modelujących warstwę transportową HTTP) kompresja jest marginalna i nieco nieistotna: te pliki już mieszczą się w oknie kontekstowym, a prawdziwą wartością jest przejrzystość strukturalna: widzisz, że,, i są węzłami boskimi projektu, a także klastry społecznościowe, które grupują powiązane moduły. To przydatne, ale nie jest to 71-krotna poprawa.`Client` `AsyncClient` `Response` `Request`
Przy 52 plikach, co stanowi mieszankę kodu, prac naukowych i obrazów, redukcja tokenów faktycznie sięga 71 razy i więcej. Repozytorium wysyła przepracowane przykłady z surowymi wejściami i rzeczywistymi wynikami, więc możesz samodzielnie zweryfikować liczby, co jest rodzajem przejrzystości, której chciałbym, aby więcej projektów open source przyjęło. Powód, dla którego skalowanie kompresji jest prosty: graf destyluje wszystko na węzły, krawędzie, podsumowania społeczności oraz raport, który LLM może przetworzyć w ułamku tokenów potrzebnych do odczytania surowej treści.
To ma największe znaczenie w procesach pracy agentów. Jeśli masz kilku agentów piszących kod równolegle lub prowadzisz długą sesję Claude Code obejmującą kilka commitów, podawanie 52 surowych plików do kontekstu na każdej turze jest marnotrawstwem. Dostarczanie raportu grafowego, który zawiera te same informacje strukturalne w 1/71 tokenów, to zasadniczo inny profil kosztowy.
## Pod maską: Bez magii, tylko dobra inżynieria
Architektura jest odświeżająco przejrzysta. Pliki kodu przechodzą przez parasowanie AST w drzewie (tree-sitter) w 19 językach: Python, JavaScript, TypeScript, Go, Rust, Java, C, C++, Ruby, C#, Kotlin, Scala, PHP, Swift, Lua, Zig, PowerShell, Elixir i Objective-C. Kursuje całkowicie lokalnie; Żadna zawartość pliku nie opuszcza twojego komputera do kodu. Dokumenty i obrazy są przesyłane przez istniejące API modelu platformy do ekstrakcji semantycznej: Claude, jeśli jesteś w Claude Code, GPT-4, jeśli jesteś w Codex.
NetworkX buduje graf, algorytm Leiden za pomocą graspologic obsługuje wykrywanie społeczności, a vis.js renderuje interaktywną wizualizację. Nie jest potrzebny Neo4j, nie ma zewnętrznego serwera, wszystko działa lokalnie. Każda krawędź na wykresie jest oznaczona poziomem pewności:,, lub, więc zawsze wiesz, co znaleziono w materiale źródłowym, a co model zgadł na podstawie kontekstu.`EXTRACTED` `INFERRED` `AMBIGUOUS`
System stopniowej aktualizacji to miejsce, gdzie jakość inżynierii jest widoczna. Tryb działa w terminalu w tle i utrzymuje wykres aktualny podczas zmian w bazie kodu: zapisy pliku kodu wywołują natychmiastowe przebudowywanie AST bez wywołania LLM, podczas gdy zmiany dokumentów i obrazów wymagają ponownego uruchomienia semantycznego przejścia. Git hooks () odbudowuje graf po każdym commitcie i każdej zmianie gałęzi, a jeśli odbudowa się nie powiedzie, hook wychodzi z poziomu niezerowego, więc git pokazuje błąd zamiast cicho kontynuować na przestarzałym grafie. Ten ostatni szczegół brzmi błahko, ale poprzednie zachowanie polegało na wyjściu z zera przy awarii, co oznaczało, że wykres mógł się bez ostrzeżenia przestać wyświechtać dokładnie taki cichy błąd, który podważa zaufanie do narzędzi deweloperskich.`--watch` `--update` `graphify hook install`
## Jak to wygląda w praktyce: uruchamianie tego na własnym repozytorium
Czytanie benchmarków to jedno, więc uruchomiłem Graphify na prawdziwym projekcie, żeby zobaczyć, jak faktycznie wygląda efekt. Repozytorium to generator kodów QR, który stworzyłem z Claude Code: łącznie 27 plików, mieszanka 18 plików kodu z,, i konfiguracjami, 4 dokumentami w tym,, i, oraz 5 obrazami z interfejsem UI, logo Toward Deep Learning oraz kilkoma testowymi PNG.`src/` `test/` `AGENTS.md` `CLAUDE.md` `FLOW.md`
Rurociąg przebiegał w czterech etapach. Najpierw zeskanował folder i wszystko sklasyfikował. Następnie lokalnie przeanalizował wszystkie 18 plików kodu za pomocą tree-sitter AST, bez udziału LLM, całkowicie darmowy: ten przebieg sam w sobie wyodrębnił każdą funkcję, klasę, import i relację wywołań, generując 162 węzły i 240 krawędzi (np. ). Po trzecie, uruchomił 6 równoległych subagentów Claude'a do odczytania dokumentacji i obrazów: to była część LLM, około 193 tys. tokenów. Agenci Vision spojrzeli na zrzuty ekranu interfejsu i faktycznie zrozumieli je jako elementy interfejsu, łącząc "logo dropzone udostępnia dane z panelem podglądu QR" i rozpoznając, że "korekcja błędów H" w interfejsie jest uzasadnieniem odznaki dekodowania-weryfikacji. Agent dokumentacyjny wyciągnął koncepcje architektoniczne z i: takie rzeczy jak "Scan Verification Gate", "Darken-and-Retry Loop" oraz "Yellow Pitfall". Po czwarte, połączył wszystko w jeden graf: 229 węzłów, 296 krawędzi, przeprowadził wykrywanie społeczności Leiden i znalazł 26 społeczności, obliczył węzły bogów i mosty międzyspołecznościowe, a każdą krawędź oznaczył jako,, lub.`src_main → calls → selectPalette()` `AGENTS.md` `FLOW.md` `EXTRACTED` `INFERRED` `AMBIGUOUS`
Interaktywna wizualizacja grafu (poniżej) to to, co trafia do. Możesz kliknąć dowolny węzeł, aby zobaczyć jego typ, społeczność, plik źródłowy, stopień i sąsiadów. Pasek boczny wymienia wszystkie 26 społeczności z liczbą węzłów, które można włączać i wyłączać, aby wyizolować klastry.`graphify-out/graph.html`
![](https://miro.medium.com/v2/resize:fit:1400/format:webp/1*bT1OxddVRBq3pmjANeXK-g.png)
Zrzut ekranu z mojego własnego repozytorium.
Co zostawił na dysku obok wizualizacji: jako graf do zapytań, który przechodzi, z raportem audytowym obejmującym węzły boga, niespodzianki i sugerowane pytania, a do tego późniejszy tylko przetwarza pliki, które się zmieniły.`graph.json` `graphify query` `GRAPH_REPORT.md` `cache/` `manifest.json` `--update`
Ale to, co naprawdę mnie zaskoczyło, to to, co pokazał wykres, a co nie było oczywiste po samym uruchomieniu lub przeczytaniu kodu. Środek ciężkości repozytorium okazał się być nauką o kolorach, a nie kodowaniem QR: gęstym rdzeniem grafu jest matematyka kontrastu, palety i ekstrakcji kolorów, podczas gdy kodowanie QR to tylko dwie zależności biblioteki na obrzeżach.,, oraz są węzłami strukturalnymi, a bramka weryfikacji skanów jest centralna dla architektury, co jest dokładnie tym, czego wymaga, ale czego nie poznasz bez porównania specyfikacji i implementacji. Testy są podłączone bezpośrednio do modułów, które testują, zamiast unosić się na bok, co jest dobrą architekturą widoczną. Koncepcje i tworzą własną wyspę: specyfikacja odpowiada kodowi pod względem znaczenia, ale nic strukturalnie nie łączy obu tych rzeczy, i właśnie tam poszło 19 wiszących krawędzi. A zrzuty ekranu UI kodują deklaracje produktowe takie jak "nigdy nie opuszcza przeglądarki" i "korekcja błędów H" jako węzły grafu powiązane z elementami UI, które uzasadniają: to model wizji robiący coś, czego nigdy bym nie pomyślał zrobić ręcznie.`ls` `src_main` `src_palette` `src_verify` `AGENTS.md` `AGENTS.md` `FLOW.md`
Po zakończeniu gry umiejętność również rejestrowała, więc w każdej przyszłej sesji Claude Code mogę uruchomić i uzyskać odpowiedź z grafu, zamiast czytać cały repozytorium od nowa. To jest zasada skompilowanej wiedzy: zapłać opłatę za ekstrakcję raz, potem zapytaj za darmo.`/graphify` `graphify query "why does the download button start disabled?"`
## Szczere zastrzeżenia
Graphify to wersja 0.3.1 i działa szybko, więc można się spodziewać nierównych krawędzi. Jakość ekstrakcji semantycznej zależy całkowicie od Twojego LLM. Claude Vision dobrze radzi sobie z diagramami i zdjęciami na tablicy, ale jakość będzie się różnić w zależności od innych modeli, a jeśli Twój projekt mocno opiera się na dokumentacji wizualnej, dokładność wykresu jest tak dobra, jak model wizualny, który analizuje te obrazy.
Liczba kompresji 71,5x zależy od korpusu. Jeśli Twój projekt to dziesięć plików Pythona z czystym README, prawdopodobnie nie potrzebujesz grafu wiedzy: musisz przeczytać README. Narzędzie to najlepiej sprawdza się w repozytoriach średnich i dużych, gdzie złożoność strukturalna przewyższa to, co programista (lub LLM) może pomieścić w pamięci roboczej, a mieszanka kodu, dokumentacji i artykułów naukowych tworzy połączenia międzydomenowe, które trudno odkryć przez liniowe czytanie plików.
Poprawki bezpieczeństwa dla SSRF i YAML injection w wizualizacji HTML pojawiły się w najnowszej wersji. Projekt jest młody, aktywnie utrzymywany i przechodzi przeglądy kodu społecznościowego, ale jeśli kierujesz go na wrażliwe bazy kodu, powinieneś samodzielnie przejrzeć powierzchnię zabezpieczeń, zamiast zakładać, że została ona wzmocniona na skalę produkcyjną.
I najważniejsze zastrzeżenie: wykres wiedzy mówi, co się z czym łączy, ale nie wyjaśnia, dlaczego architekt podjął konkretny kompromis, jakie ograniczenia ukształtowały projekt ani jakie nieudane próby doprowadziły do obecnego podejścia. Ten kontekst wciąż żyje w głowach zespołu, w dyskusjach pull requestów i w wiadomościach commit. Graphify daje mapę strukturalną; Wiedza instytucjonalna nadal jest na Tobie.
## Dlaczego to ma znaczenie poza samym narzędziem
Najbardziej interesuje mnie szerszy wzór. Karpathy określił przejście od " *tokenów zużywanych na generowanie kodu* " do " *tokenów wydawanych na kompilację wiedzy",* a Graphify jest pierwszym wiarygodnym narzędziem, które operacjonalizuje tę zmianę dla baz kodu. Fakt, że gra została wysłana 48 godzin po oryginalnym tweetu, ma już 1500 gwiazdek i port.NET, a jest instalowana jako umiejętność na wielu platformach programistycznych agentów, pokazuje, że popyt czekał, aż ktoś zbuduje podaż.
Przechodzimy od "AI czyta twój kod" do "AI rozumie twój kod", a to są zasadniczo różne możliwości. Odczyt jest liniowy: model przetwarza pliki pojedynczo i utrzymuje to, co może, w kontekście. Zrozumienie jest strukturalne: model wie, które moduły zależą od kogo, gdzie znajdują się węzły boga, które społeczności skupiają się razem oraz jak wyglądają zaskakujące połączenia międzydomenowe.
Czy Graphify stanie się standardem długoterminowym, pozostaje niepewne, i szczerze mówiąc, byłoby zaskakujące, gdyby ta przestrzeń pozostała tak prosta przez długi czas. Wydaje się jasne, że wzorzec kompilacji kodu w trwałe, zapytywalne reprezentacje wiedzy pozostanie na stałe, ponieważ alternatywa polega na ponownym wprowadzaniu surowych plików do kontekstu na każdej sesji, mając nadzieję, że model zapamięta to, czego się ostatnio nauczył: już osiągnął swój sufit.
Repozytorium jest otwarte, posiada licencję MIT i naprawdę zajmuje pięć minut, żeby spróbować: [github.com/safishamsi/graphify](https://github.com/safishamsi/graphify). Skieruj go na swój najbardziej niechlujny projekt i zobacz, jakie powiązania znajdzie. W najgorszym wypadku dowiesz się czegoś o własnym kodzie, czego wcześniej nie znałeś.
*Jeśli uznałeś to za pomocne, śledź* [*Toward Deep Learning*](https://www.towardsdeeplearning.com/), *aby poznać więcej narzędzi i pomysłów, które faktycznie zmieniają świat.*