Граф кода и Context7: агенты, которые проверяют, а не угадывают
Агенты тратят ходы на grep по коду, о котором можно просто спросить, и пишут под API библиотек такими, какими их помнит модель. В NeuroSquad 0.1.230 для этого два плагина: «Граф кода» — карта вашего кода, и Context7 — документация на сегодня.
Посмотрите, как агент работает в незнакомом репозитории. Чтобы ответить «кто вызывает эту функцию?», он ищет имя через grep, открывает файл, ищет снова другим шаблоном, открывает ещё два файла — каждый шаг отдельный ход, каждый прочитанный файл занимает контекст. Потом он пишет код под библиотеку, и API берёт таким, каким его помнит модель по обучающим данным, — а это может быть версия на одну-две старше той, что в вашем package.json.
NeuroSquad 0.1.230 добавляет две карточки-плагина ровно под эти две привычки. «Граф кода» держит граф знаний о коде воркспейса, который агенты спрашивают вместо поиска по файлам. Context7 приносит актуальную документацию для нужной версии библиотеки, которой агент собирается пользоваться. Как и любой плагин, каждый из них — карточка на холсте, и пользоваться ею агенту позволяет стрелка от него.
localHref — из графа, правило очистки — с react.dev через Context7, заметка — для следующего агента. Для скриншота агент работает со сценарной локальной моделью; граф, ответы Context7 и память — настоящее приложение.Карта кода вместо grep
«Граф кода» построен на codebase-memory-mcp — открытом (MIT) движке, который разбирает проект через tree-sitter и сохраняет найденное — функции, классы, переменные, вызовы, импорты, маршруты — в виде графа. Проведите стрелку от агента к карточке, и у агента появятся 12 инструментов: codegraph_search_graph ищет символы по имени или смыслу, codegraph_trace_path идёт по вызывающим и вызываемым, codegraph_get_code_snippet, codegraph_get_architecture, codegraph_query_graph для запросов к графу только на чтение и ещё несколько — вплоть до codegraph_reindex. Вопрос «кто вызывает localHref?» становится одним вызовом, который возвращает четыре функции, доходящие до неё, две из них напрямую, — а не цепочкой grep.
Для скриншотов мы проиндексировали копию нашего же лендинга: 222 файла на TypeScript, 1903 символа, 2179 вызовов. Первая сборка на этой машине заняла 29 секунд вместе с запуском движка; повторная индексация — 6,6 секунды. Карточка показывает эти числа, из чего состоит код, поиск по именам и какой агент вызывал какой инструмент.
Свежий без напоминаний
Граф, отстающий от кода, хуже, чем никакой, поэтому карточка держит его актуальным сама. Она следит за папкой и переиндексирует через несколько секунд после последнего изменения; устаревший граф обновляется и тогда, когда подключённый агент заканчивает ход, и один раз за запуск приложения — вдруг файлы менялись, пока оно было закрыто. Запрос, пришедший во время обновления, сообщает об этом в ответе. С выключенным автообновлением карточка пишет «Файлы изменились» и показывает кнопку «Обновить».
Чего это стоит
Движок — одна самодостаточная программа под каждую платформу. Карточка скачивает её один раз — около 40 МБ, около 300 МБ после распаковки — и до первого запуска сверяет с SHA-256, закреплённым в приложении. Движок работает на вашем компьютере без аккаунта и телеметрии, код не покидает машину. Индекс лежит в папке данных приложения: в репозиторий и в домашнюю папку ничего не пишется — мы сверили обе до и после прогона.
Документация на сегодня, а не из обучения
Context7 от Upstash индексирует документацию множества открытых библиотек и отдаёт фрагменты, подходящие к вопросу. Карточка даёт агенту два его инструмента: context7_resolve_library_id превращает название вроде «react» в идентификатор библиотеки, а context7_query_docs возвращает фрагменты по этой библиотеке и вопросу, каждый со ссылкой на источник. Context7 распространяется как MCP-сервер, которому нужен Node; приложение делает те же два запроса само, так что ставить ничего не нужно и лишний процесс не запускается.
Ответы кешируются на вашем компьютере на 24 часа, поэтому тот же вопрос от второго агента ничего не стоит, а одинаковые одновременные запросы делят одну загрузку. «Проверить запрос» внизу карточки повторяет тот же поиск вручную: библиотека, вопрос, подходящие библиотеки и документация лучшей из них.
Автодокументация — переключатель на карточке, по умолчанию выключенный, — снимает с агента необходимость помнить. Когда промпт называет зависимость проекта — из package.json, requirements.txt, pyproject.toml, Cargo.toml или go.mod, — к ходу агента добавляется короткая подсказка про инструменты документации с объявленной вами версией. Если в промпте есть ещё и слово «context7», добавляется сама документация, если успевает прийти. Промпты не отправляются в Context7 только потому, что в них названа библиотека: так тратилась бы месячная квота, о чём никто не просил.
Ограничения как есть
- 200 запросов в месяц без ключа. Анонимная квота Context7 считается по IP-адресу, поэтому в неё входят и другие инструменты из той же сети. Когда она кончается, карточка говорит об этом, а инструменты не шлют запросов до сброса — зациклившийся агент не сделает хуже, — при этом ответы из кеша работают. Бесплатный ключ Context7 поднимает лимит; он хранится в зашифрованном виде и уходит только в заголовке запроса.
- Что уходит с компьютера. Название библиотеки и вопрос отправляются на серверы Context7. Ваш код — нет, но не пишите в вопросах секреты. Карточка говорит об этом под полем запроса.
Решает стрелка
Оба плагина следуют правилу всех карточек на холсте: стрелка — это доступ. Проведите её, и у агента появятся инструменты — большинство CLI подхватывают их без перезапуска. Уберите — и их нет. Codex, Kimi Code, Cursor и Crush читают список инструментов один раз при запуске, поэтому у них инструменты видны всегда, а пройдёт ли вызов, решает стрелка. Оба плагина работают со всеми агентными CLI в NeuroSquad, которые поддерживают MCP. На скриншоте агент подключён ещё и к «Памяти» из прошлого релиза и сохраняет то, что узнал, для следующего агента.
В WSL и по SSH
С версии 0.1.214 воркспейс может находиться в дистрибутиве WSL или на SSH-хосте. «Графу кода» нужно читать файлы, поэтому там движок запускается рядом с кодом. На Linux для x86-64 или ARM64 карточка при первой индексации копирует туда проверенный архив — около 40 МБ, а не распакованный движок, — ещё раз сверяет хеш на той стороне и распаковывает его в собственную папку приложения на той машине; там же хранится индекс. Домашняя папка и репозиторий там не затрагиваются, а при выходе из приложения движок останавливается. Для хоста на macOS карточка пишет «Для этого хоста нет сборки движка».
Папка WSL на диске Windows отслеживается как обычно. На собственном диске дистрибутива и по SSH дешёвых событий файловой системы нет, поэтому граф обновляется в конце хода подключённого агента и по запросу. «Памяти» и Context7 на той машине ничего не нужно: они работают в приложении на вашем компьютере и доходят до агента в WSL или на SSH-хосте по стрелке, как любой другой инструмент. Автодокументация читает манифесты проекта на той машине.
У каждого плагина своя страница — «Граф кода», Context7 и «Память» — и руководство в документации: «Граф кода» и Context7. Полный список изменений — в журнале изменений 0.1.230.



