Habr AI→ оригинал

Как сэкономить 70% токенов Claude через точечный доступ к коду

Разработчик создал инструмент на PHP + SQLite для оптимизации Claude Code при работе с большими проектами. Два скрипта (buildGraph и claudeSearch) строят граф з

Как сэкономить 70% токенов Claude через точечный доступ к коду
Источник: Habr AI. Коллаж: Hamidun News.
◐ Слушать статью

Разработчик написал инструмент, который экономит контекстное окно Claude на 70% при работе с большими проектами. Вместо того чтобы читать файлы целиком, AI-агент получает точечный доступ к нужному коду — ровно то, что требуется для задачи.

Проблема: бесценный контекст тратится впустую

Claude Code знает архитектуру проекта из CLAUDE.md и понимает, какие файлы за что отвечают. Но на практике агент всё равно читает файлы целиком.

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

Типичный сценарий: разработчик просит Claude найти поле в сущности. Агент открывает файл целиком, хотя нужны только первые 20 строк с описанием полей и конструктора. Или проще: нужно понять структуру связей между таблицами базы данных.

Claude читает SQL-файлы целиком, хотя для ответа достаточно было бы только имён таблиц и ключей. Контекстное окно — главный ресурс при работе с AI на больших проектах. На 200K токенов могут уйти 100K на чтение кода, который можно было получить умнее.

Решение: граф зависимостей и точечный доступ

Разработчик написал два PHP-скрипта, которые работают вместе: buildGraph.php — сканирует проект один раз и строит граф зависимостей в SQLite. Парсит код на PHP и JavaScript: вытаскивает классы, методы, функции, импорты, цепочки наследования.

Запуск инкрементальный — при повторном запуске обновляет только файлы, которые изменились. Это занимает 100–200 миллисекунд для среднего проекта. **claudeSearch.

php* — CLI-интерфейс для агентов. Одной командой даёт Claude ровно то, что нужно: Конкретный метод класса с сигнатурой и телом Все поля и конструктор класса Всю цепочку наследования для сущности Все SQL-запросы к конкретной таблице Список всех вызовов функции по всему проекту * Зависимости между модулями Вместо `Read(path/to/huge-file.php)` Claude теперь пишет `search("User", "fields")` и получает 15 строк.

Вместо чтения трёх директорий пишет `search("saveOrder()", "calls")` и видит все места, где используется этот метод.

Поддержка языков и скорость На данный момент инструмент полностью поддерживает PHP и JavaScript.

Поддержка Go уже добавлена. C будет позже. Скорость парсинга критична — граф должен обновляться не медленнее, чем разработчик меняет код. Инкрементальное обновление решает эту проблему: первый проход анализирует весь проект (может занять несколько секунд на большом репо), повторные проходы за 100–200 мс обновляют только изменённые файлы.

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

По расчётам автора, инструмент снижает расход токенов на 70% для типичного среднего проекта. Это не означает, что каждый отдельный запрос экономит 70% — это означает, что за одну сессию разработки контекст используется в 3 раза эффективнее. Вместо того чтобы потратить 150K токенов на чтение и потом 50K на работу, разработчик может потратить 70K на поиск и 80K на работу. Инструмент особенно полезен для CLI-помощников и ботов, которые сами не видят файловую систему. Граф становится для них источником истины о структуре проекта.

Что это значит

Инструмент показывает направление: масштабируемость работы с Claude на больших проектах — это не только архитектурные решения и грамотно написанный CLAUDE.md. Это нужен интеллектуальный доступ к коду. Точечное чтение вместо полного. Граф вместо файловой системы. Когда контекст становится ограничением, нужно читать не смотря на объём кода, а смотря на то, что действительно нужно.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 400+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.
Что вы думаете?
Загружаем комментарии…