# Graphify

> Живая карта структуры вашего кода. Подключённые агенты задают ей структурные вопросы вместо grep, а каждый запрос подсвечивается на карте в момент, когда он идёт.

Source: https://docs.neurosquad.ai/ru/plugins/graphify

Вопросы вроде «как запрос доходит до базы данных?» или «что сломается, если поменять `parseConfig`?»
обычно стоят агенту длинной цепочки grep и чтения файлов. Плагин **Graphify** превращает
воркспейс в граф знаний с помощью [graphify](https://github.com/Graphify-Labs/graphify) —
открытого инструмента Graphify-Labs: файлы, функции, классы, вызовы, импорты, разделы Markdown и
комментарии `NOTE:` / `WHY:`, сгруппированные в подсистемы. Подключённый агент спрашивает граф
словами или по имени символа и за один вызов получает нужную часть графа — с файлом и строкой для
каждого результата.

Карточка рисует граф картой, и каждый запрос агента проигрывается на ней вживую: видно, что агент
спросил, с каких узлов начал, как расходился поиск и что нашёл.

## Как пользоваться

1. В меню добавления карточек выберите **Плагин…**, откройте **Graphify** на вкладке **Плагины** и
нажмите **Добавить на канвас**.
2. Нажмите **Установить** на карточке (один раз на компьютер). NeuroSquad скачивает
[uv](https://github.com/astral-sh/uv) 0.12.22 с GitHub и сверяет его с контрольной суммой,
зашитой в приложение; uv ставит собственный Python 3.12, затем устанавливает graphify 0.9.74 с
PyPI, где каждый пакет закреплён по хешу (`--require-hashes`, только готовые бинарные пакеты).
Около 250 МБ, всё в папке данных приложения. Ваши собственные настройки Python, uv и pip не
используются и не меняются.
3. Затем карточка сама строит граф **всего воркспейса**. Видно, сколько файлов уже прочитано,
сколько всего и сколько примерно осталось.
4. Проведите [стрелку](https://docs.neurosquad.ai/ru/canvas/arrows) от агента к карточке.

Теперь у агента есть инструменты графа. Большинство CLI подхватывают их без перезапуска; уберите
стрелку — и они пропадут.

## Что может агент

| Инструмент | На что отвечает |
| --- | --- |
| `graphify_query` | Вопрос словами или именами символов → нужный подграф (символы, файлы со строками, связи вызовов и импортов) |
| `graphify_neighbors` | Всё, что символ вызывает, кто его вызывает, что он импортирует и кто импортирует его, с файлом и строкой каждого использования |
| `graphify_path` | Кратчайшая цепочка вызовов и импортов между двумя местами |
| `graphify_affected` | Радиус изменения: всё, что зависит от символа или файла, транзитивно |
| `graphify_node` | Где находится символ, его тип и подсистема |
| `graphify_community` | Все участники одной подсистемы |
| `graphify_god_nodes` | Самые связанные символы — ядро кодовой базы |
| `graphify_stats` | Размер графа и сколько связей прочитано прямо из кода |
| `graphify_reindex` | Обновить граф сейчас, после только что сделанных правок |

Пока первая сборка идёт, инструменты отвечают, сколько осталось («граф ещё строится: 37%, 170 из
461 файла…»), — агент продолжает обычным поиском и спрашивает снова позже.

## Как агентов направляют к графу

Агент, у которого есть инструмент графа, пользуется им не всегда: модели привыкли к grep. Graphify
добавляет три лёгких слоя, ни один из которых ничего не блокирует:

- **Описания инструментов** говорят, когда граф лучше («используйте до grep, если вопрос о
структуре»), а когда по-прежнему нужен текстовый поиск (строковые литералы, сообщения в логах,
значения конфигов). В Claude Code `graphify_query`, `graphify_neighbors` и `graphify_affected`
загружены всегда, а не спрятаны за поиском инструментов.
- **Заметка в первом ходе.** Первый ход сессии со стрелкой несёт одну короткую фактическую
заметку: что такое граф, какой инструмент на какой вопрос отвечает и когда grep всё ещё уместен.
Следующие ходы получают однострочное напоминание, если запрос про структуру кода (и каждый пятый
ход в любом случае). Когда вы убираете стрелку, следующий ход получает одну заметку о том, что
инструментов больше нет. Claude Code, Codex и Qwen Code получают её через хук промпта; OpenCode,
Kilo Code, pi, omp и Gemini CLI — через плагин, расширение или мост хуков NeuroSquad. Остальные
CLI получают только инструменты.
- **Подсказка перед текстовым поиском (Claude Code).** Когда агент собирается выполнить `Grep`,
`Glob` или команду `grep` / `rg` / `find` по тому, что похоже на имя символа, он получает одну
строку контекста с отсылкой к `graphify_neighbors` и `graphify_query`. Поиск всё равно
выполняется как просили: решение о разрешении не принимается, ваши правила allow и deny и запросы
подтверждения работают как раньше. Подсказка молчит две минуты после обращения агента к графу и
приходит не чаще раза в 45 секунд и раза в четыре поиска.

Выключите **Направлять агентов к графу** в настройках карточки, чтобы оставить только инструменты.

## Карта

- **Файлы** — точки, размер которых зависит от содержимого, а цвет — от подсистемы. Приблизьте
карту (или нажмите **Показать символы**), чтобы увидеть функции и классы вокруг каждого файла.
- **Запросы вживую.** Когда агент спрашивает граф, его стартовые узлы расходятся кругами, поиск
распространяется шаг за шагом вдоль пройденных связей, а панель результатов показывает находки с
файлом и строкой. Нажмите на результат, чтобы навести на него карту, или откройте файл в
редакторе.
- **Лента** внизу: недавние запросы и кто их задал. Нажмите на запрос, чтобы проиграть его снова.
- **Поиск** по графу — в поле в углу; совпадения подсвечиваются так же.
- **Нажмите на узел**, чтобы увидеть его детали и связи; **Вписать карту** возвращает всё в кадр.
- **Разверните** карточку, чтобы посмотреть карту крупно.

Перетаскивайте карту мышью, масштабируйте колесом; анимации карты ставятся на паузу, пока вы
масштабируете канвас или карточка вне экрана.

## Всегда актуален

С включённым **Автообновлением** (по умолчанию) карточка замечает изменённые файлы и обновляет граф
примерно через 4 секунды после последнего изменения. Ещё она обновляется после хода подключённого
агента и один раз при открытии приложения. graphify хранит кеш каждого прочитанного файла, так что
при обновлении перечитывается только изменённое. Выключите, чтобы обновлять вручную кнопкой
**Обновить**.

## Настройки

Кнопка настроек в шапке карточки:

- **Автообновление** и **Направлять агентов к графу** (см. выше).
- **Языки**: исключить из графа целые языки.
- **Дополнительно игнорировать**: шаблоны по одному на строку, синтаксис `.gitignore`. Файлы
`.gitignore` и `.graphifyignore` проекта учитываются всегда.
- **Включать файлы из .gitignore**: для сгенерированного кода, которому место в графе.

Изменение того, что индексируется, перестраивает граф.

## Воркспейсы в WSL и по SSH

- **WSL**: graphify работает в Windows и читает файлы дистрибутива через их путь в Windows. Для
проекта на диске Windows (`/mnt/c/…`) карточка следит за файлами как обычно; для проекта на
собственном диске дистрибутива она обновляется после хода подключённого агента и по кнопке
**Обновить**.
- **SSH**: не поддерживается, карточка так и говорит. Используйте плагин
[Граф кода](https://docs.neurosquad.ai/ru/plugins/code-graph) — он запускает свой движок на SSH-хосте.

## Graphify или Граф кода?

Оба индексируют код, но хорошо отвечают на разные вопросы — их можно использовать вместе.

| | Граф кода | Graphify |
| --- | --- | --- |
| Сильная сторона | Точная навигация: вызывающие и вызываемые, фрагменты кода, Cypher только для чтения, смысловой поиск | Вопросы словами → нужный подграф, как всё связано, что затронет изменение |
| Дополнительно | Маршруты, пакеты | Подсистемы, разделы Markdown, комментарии `NOTE:` / `WHY:` |
| На карточке | Статистика индекса и поиск | Живая карта с анимацией каждого запроса |
| WSL / SSH | Работает внутри WSL и на SSH-хостах | WSL через пути Windows; SSH нет |

> Граф строится по папке воркспейса. Агент, работающий в изолированном worktree, всё равно
> обращается к графу основной папки.

## Приватность и хранение

Всё работает на вашем компьютере. Graphify читает только код (никаких документов, изображений и
прочего, для чего понадобилась бы языковая модель), языковые модели не используются, ключи API в
него не передаются. У graphify нет телеметрии, а его необязательный журнал запросов выключен.
Движок лежит в папке данных приложения, каждый граф — в `graphify/projects/<папка>-<хеш>/` там же.
В ваш проект и домашнюю папку ничего не пишется. Удаление последней карточки папки удаляет её граф.

graphify создан Graphify-Labs и распространяется по лицензии Apache License 2.0.

## Решение проблем

- **Установка не проходит через прокси.** uv берёт `HTTPS_PROXY` / `HTTP_PROXY` из окружения
приложения; задайте переменную до запуска NeuroSquad и снова нажмите **Установить**.
- **Установка падает с «no matching distribution».** Для одного из пакетов нет готовой бинарной
сборки под вашу систему; из исходников graphify не собирается. Карточка показывает сообщение uv.
- **«Граф ещё строится».** Первая сборка очень большого воркспейса занимает время; карточка
показывает прогресс. Агенты на свои вопросы получают тот же прогресс.
- **Агент продолжает пользоваться grep.** Проверьте, что стрелка на месте, что **Направлять агентов
к графу** включено и что CLI агента из тех, кто получает подсказки (остальных карточка помечает
«только инструменты»). Можно и попросить прямо: «найди через graphify…».
- **Карта пустая или в ней не хватает файлов.** Проверьте **Языки** и **Дополнительно
игнорировать** в настройках, а также `.gitignore` проекта.
- **Карточка пишет, что SSH не поддерживается.** Для SSH-воркспейсов используйте плагин «Граф
кода».
