База знаний

Graphify — превращаем папку с файлами в граф знаний для ИИ-агентов

Open-source инструмент Graphify, который из любой папки (код, доки, PDF, Markdown, картинки) собирает queryable knowledge graph. Разбираем, как это работает, как ставить, и как связать с собственным контентным графом сайта.

Опубликовано Обновлено

Практический справочник по Graphify — open-source-инструменту, который из любой папки (код, документация, PDF, Markdown, картинки, даже видео) строит queryable knowledge graph и отдаёт его агентам как сжатый контекст вместо «прочитать все файлы заново».

📌
Суть: один раз дороже — потом много раз дешевле. Graphify делает разбор корпуса один раз, складывает результат в персистентный граф на диске, а дальше каждый запрос агента ходит по графу, а не перечитывает файлы. Авторы заявляют до 71.5× меньше токенов на запрос на смешанных корпусах.[1]

Что это такое

Graphify — это open-source skill (MIT) для AI-ассистентов, который превращает любую папку с файлами в queryable knowledge graph. Под капотом: Tree-sitter для AST по коду, LLM-извлечение концептов из текстов, vision-модели для диаграмм, кластеризация (Leiden) для смысловых сообществ.[1]

Репозиторий: github.com/safishamsi/graphify. Основной интерфейс — Claude Code skill /graphify, но интеграции есть и для Codex, OpenCode, Cursor и других MCP-совместимых ассистентов.[1]

💡
Не путайте с одноимёнными продуктами. Есть отдельный коммерческий сервис «Graphify» для визуализации Notion-воркспейса как графа (getgraphify.com) — это другой продукт, хотя название совпадает. В этом справочнике речь именно про open-source graphify.net / safishamsi/graphify.

Зачем это нужно

Проблема: контекст не масштабируется

Классический подход к работе агента с большим корпусом — закидывать в контекст сырые файлы и надеяться. На маленьком репо это работает, на большом ломается: токены растут линейно, понимание — сублинейно. Чем больше файлов, тем хуже агент держит общую картину.

Идея Karpathy → продукт

Graphify вырос из публично описанного Андреем Карпати личного workflow: «складываю PDF, скриншоты, твиты в одну папку, потом LLM собирает из этого вики, навигирую через Obsidian». Карпати тогда же бросил вызов: «здесь напрашивается продукт вместо набора костыльных скриптов». Через несколько дней Сафи Шамси выкатил Graphify, и он быстро стал популярным как раз потому, что закрывает именно этот сценарий.[2]

Что вы получаете на выходе

  • graph.json — queryable граф (узлы, рёбра, метаданные).
  • graph.html — интерактивная визуализация в браузере.
  • GRAPH_REPORT.md — читаемый человеком аудит-отчёт с «god nodes» и кластерами.[1]

Каждое ребро размечено как EXTRACTED, INFERRED или AMBIGUOUS — вы видите, что пришло прямо из источника, а что дорисовала модель.[3]


Архитектура: как это работает

Notion image

Ключевой архитектурный приём — стоимость переносится «влево»: тяжёлый разбор делается один раз, при первом проходе. Дальше агент общается с графом, а не с файлами. На повторных запросах разница в токенах драматическая.[4]


Что Graphify умеет читать

  • Код: Python, JS/TS, Go, Java, Rust и ещё ~22 языка через Tree-sitter — ASTs, граф вызовов, docstrings.[1]
  • Документация: Markdown, plain text, README, заметки.
  • Документы: PDF, статьи, research papers.
  • Картинки и диаграммы: схемы, whiteboard-фотки — через vision-модели.[1]
  • Транскрипты: записи встреч, расшифровки видео.[5]

Люди уже пробуют не только репозитории кода, но и Obsidian-волты, корпусы статей, SQL-схемы, личные архивы.[5]


Установка и запуск

💡
Минимальные требования: Python 3.10+. Тип запуска: локально, ничего никуда не отправляется по умолчанию (приватность графа — отдельная важная история, см. ниже).

Базовый сценарий через Claude Code

  1. Установить skill (один раз).
  2. Перейти в папку, которую хотите оцифровать.
  3. В Claude Code выполнить:
/graphify .
  1. Дождаться построения графа (зависит от размера корпуса).
  2. Дальше спрашивать в обычном диалоге — агент будет ходить по графу, а не перечитывать файлы.[3]

Полезные команды

  • /graphify — построить граф для текущей папки.
  • /graphify query <вопрос> — запрос к графу.
  • /graphify path <от> <до> — найти смысловой путь между узлами.
  • /graphify explain <узел> — объяснить, что это за концепт и где он встречается.[1]

Обновление

При добавлении новых файлов используется --update: граф мёрджится, а не перестраивается с нуля. Это важно для живых корпусов — статей, базы знаний, рабочих архивов.[3]


Безопасность и приватность

⚠️
Внимание на skill.md. Skill ставится в ~/.claude/skills/ и по сути является промптом, который выполняется в вашей среде. Это нормальная модель Claude skills, но это и поверхность атаки: prompt injection через skill.md теоретически возможен. Ставьте только из доверенного источника, проверяйте обновления.[6]

Что хорошо в дизайне Graphify:

  • Граф остаётся локально на диске — повторные запросы не отправляют сырые файлы наружу.[4]
  • Строгая валидация входов: только http/https URLs, лимиты размера и таймаутов, защита от path traversal, HTML-escape лейблов узлов.[1]

Что нужно держать в голове:

  • Первичный проход всё-таки использует LLM — то есть какие-то фрагменты текста уходят в модель на этапе извлечения концептов. Если у вас sensitive-данные, выбирайте провайдера и режим осознанно.
  • EXTRACTED / INFERRED / AMBIGUOUS маркировка рёбер — не косметика, а реальный инструмент: всегда проверяйте, что часть графа не «дофантазирована».

Когда брать, а когда нет

СценарийПодходит ли GraphifyПочему
Большой репозиторий кода (500+ файлов)✅ ДаГлавный кейс продукта, экономия токенов максимальная
Личный архив (Obsidian, заметки, PDF)✅ ДаПрямо реализует workflow, который описывал Karpathy
Контентная база сайта (статьи + блог + KB)✅ ДаСтроит смысловые связи поверх отдельных текстов
Корпус research papers по теме✅ ДаОсобенно хорошо с pdf-парсингом и кластеризацией
Маленький проект на 30 файлов⚠️ Скорее нетОбычное чтение файлов будет проще и сопоставимо по цене
Sensitive-данные без on-prem LLM❌ ОсторожноИзвлечение концептов — это всё-таки LLM-проход

Связка с собственным контентным графом сайта

Это часть, ради которой Graphify особенно интересен в логике pimenov.ai.

Текущее состояние

На сайте уже есть собственный контентный граф: статьи, блог, база знаний, услуги связаны через теги, graph tags и внутренние ссылки. Граф используется для подсветки маршрутов и для подсказок «куда пойти дальше». Подробнее этот контур описан в материалах «Я перестал придумывать темы сам: как граф сайта начал планировать контент за меня» и «Граф проектирует развитие контента, ИИ помогает выполнять».

Что добавляет Graphify

Контентный граф сайта строится по ручной разметке (теги, связи, описания). Graphify даёт второй слой — автоматически извлечённый смысловой граф по содержимому. Это два разных взгляда на один и тот же корпус:

  • Сайтовый граф: «как я хочу, чтобы это было связано».
  • Graphify-граф: «как это связано на самом деле, по тексту».

Расхождения между ними — самая ценная информация: они показывают, где в архиве есть скрытые связи, которые ещё не вынесены в навигацию.

Практический контур

Notion image

Что это даёт на практике:

  1. Карта дыр. Если в Graphify-графе устойчиво всплывает концепт, который у вас не оформлен как отдельный материал — это кандидат в новую публикацию.
  2. Скрытые мосты. Graphify часто видит связи между статьёй и материалом базы знаний, которые вы не размечали руками. Это новые внутренние ссылки.
  3. Проверка кластеров. Если ваши «рубрики» совпадают с кластерами Leiden-кластеризации — структура архива в порядке. Если нет — пора пересобирать навигацию.
  4. Контекст для агента. Контент-агент получает не «весь архив сразу», а сжатый граф с понятными узлами и связями — экономия токенов и лучшая релевантность.

Ограничения и грабли

  • Качество извлечения зависит от модели. Чем дешевле модель на этапе экстракции — тем больше «AMBIGUOUS» рёбер. Не экономьте на первом проходе.
  • Граф не обновляется сам. Вы добавили 20 новых статей — нужно гонять --update. Это можно автоматизировать, но это надо сделать.
  • Без структуры мусор остаётся мусором. Если корпус хаотичный (разные форматы заголовков, нет дат, нет тегов), граф будет шумным. Чем чище входная модель данных — тем полезнее результат.
  • Не серебряная пуля для маленьких задач. На небольших корпусах overhead на построение графа не окупается.
⚖️
Trade-off. Graphify платит токенами и временем один раз вперёд, чтобы сэкономить их потом. Это прекрасно ложится на «живые архивы», которые читают агенты много раз. И плохо ложится на одноразовые задачи.

Чеклист «как внедрить за вечер»

Выбрать корпус (репо, Obsidian-волт, экспорт статей сайта).
Прибраться в нём: единые форматы заголовков, метаданные, даты.
Поставить Graphify (pip / Claude Code skill).
Прогнать /graphify . на чистой копии.
Открыть graph.html и GRAPH_REPORT.md глазами — это самый важный шаг.
Найти 3 сюрприза в графе — «god nodes», неожиданные кластеры, висячие узлы.
Решить, что из этого превращать в действия: новые материалы, ссылки, рубрики.
Настроить регулярное обновление (--update) под ритм работы с архивом.

Ссылки


По теме

Если у вас уже есть живой архив — корпус статей, репозиторий или Obsidian-волт — Graphify даёт самый дешёвый способ посмотреть на него глазами агента и увидеть, какие связи там есть на самом деле, а не только те, что вы успели разметить руками.