C
ChaoBro

Codegraph: Локальный граф знаний для Claude Code — меньше токенов, меньше вызовов инструментов

Codegraph: Локальный граф знаний для Claude Code — меньше токенов, меньше вызовов инструментов

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

Подход Codegraph прямолинеен — заранее построить структуру проекта в граф знаний, сохранить локально, и Claude запрашивает его напрямую, вместо повторного чтения каждый раз.

Основная идея

Традиционный рабочий процесс Claude Code:

  1. Получить вопрос
  2. Прочитать структуру директорий
  3. Решить, какие файлы читать на основе директорий
  4. Искать ссылки на конкретные символы
  5. Повторять итерации

Codegraph превращает это в:

  1. Построить индекс при инициализации проекта (делается один раз)
  2. Claude напрямую запрашивает граф, получая связи файлов и ссылки на символы
  3. Пропускает повторное сканирование и поиск

Один недавний коммит интересен: «refactor: Remove semantic search and vector embedding functionality.» Автор удалил семантический поиск и векторные эмбеддинги, перейдя к чисто структурированному графу знаний. Этот выбор стоит обдумать.

Семантический поиск звучит модно, но в кодовых сценариях не очень практичен. Связи в коде детерминированы — функция A вызывает функцию B, класс C наследует от класса D. Эти связи не нуждаются в «семантическом сходстве» для определения — просто запроси граф напрямую. Удаление векторного поиска снижает сложность, стоимость поддержки и потребление токенов.

Измеренные результаты

Документация проекта заявляет:

  • Меньше токенов: не нужно повторно передавать содержимое файлов модели
  • Меньше вызовов инструментов: запросы к графу дают результат за один раз, без многокругового поиска
  • 100% локально: все данные индекса хранятся локально, без внешних сервисов

256 коммитов, последний 18 часов назад. Недавно добавляется поддержка workspace crate resolution для Rust resolver, что говорит о расширении покрытия языков. В настоящее время поддерживается более одного языка (CLAUDE.md упоминает поддержку Svelte).

Сценарии применения

Особенно подходит:

  • Большие кодовые базы (тысячи файлов и более)
  • Сценарии, требующие частого кросс-файлового анализа в Claude Code
  • Команды, чувствительные к стоимости API-вызовов

Менее необходимо:

  • Маленькие проекты (десятки-сотни файлов — нативные вызовы инструментов Claude Code достаточно быстры)
  • Проекты с экстремально частыми изменениями структуры (индекс нужно перестраивать)

По сравнению с альтернативами

У Cline есть собственный механизм управления контекстом, но он общий — не специфически оптимизирован для структуры кода. Дифференциация Codegraph именно здесь — он делает одну вещь: превращает структуру кода в граф, ускоряя запросы агента.

Правильный ли это подход? Думаю, общее направление верное. Понимание кода — это понимание связей, а не «семантики». Графы знаний естественно подходят для выражения связей — более разумно для кодовых сценариев, чем для общего текста.

1300+ звёзд, 11 открытых issue, 29 PR. Проект в активной разработке, но ещё не достиг стадии стабильного релиза. Если хочешь использовать — попробуй сначала на маленьком проекте.

Основные источники: