Оптимизация контекста для Claude Code на большом проекте (иногда и 50% экономия токенов)
Работаю над большим C++ проектом - реализация сетевого протокола. Использую Claude Code как основной инструмент. Со временем заметил: каждый новый чат начинается с того, что агент долго читает README.md, который разросся до 1000+ строк и 60 КБ.
Проблема
В CLAUDE.md была прописана команда читать README.md в начале каждого диалога, агенту нужно дать контекст проекта. Пока проект был небольшим это работало нормально. Но README рос вместе с проектом и в итоге стал содержать всё: архитектуру, логику DTLS, настройки веб-интерфейса, описание протокола, инструкции по сборке.
И как результат:
Агент тратит тысячи токенов на анализ файла до начала работы
Если задача касается только фронтенда, модель всё равно загружает детали реализации ядра протокола. Лишний контекст снижает точность ответов.
Решение
Вместо одного большого файла использовать иерархию маленьких, в отдельной папке claude-context/:
claude-context/ ├── context-claude.md # общая архитектура и навигация (~90 строк) ├── context-AC-claude.md # Access Controller ├── context-WTP-claude.md # WTP Agent ├── context-WEB-claude.md # Web Interface └── context-TESTS-claude.md # тесты
Главный файл context-claude.md содержит краткое описание проекта и таблицу-навигатор: какой файл читать для какой области. В дочерних файлах описана детализация по модулям, каждый 100-130 строк.
Инструкция в CLAUDE.md теперь выглядит так:
“Start each new conversation by reading claude-context/context-claude.md. For deeper context on specific areas, read the relevant file from that directory.”
Агент читает главный файл (90 строк), понимает область задачи, подгружает только нужный дочерний контекст.
Замер
Чтобы проверить эффект, я поставил Claude одну и ту же задачу в двух разных конфигурациях:
“Добавь тесты для WtpConfigController и WtpRadioController, проверь что если WTP address не строка, то возникает исключение std::runtime_error”
| Параметр | README.md (60 КБ) | Иерархический контекст | Разница | | :------------------- | :---------------- | :--------------------- | :------- | | Токены на сообщения | 36.8k | 17.6k | -53% | | Всего токенов | 56.7k | 37.6k | -34% | | Рост usage за задачу | +11% | +6% | В 2 раза | | Скорость анализа | Заметная пауза | Почти мгновенный старт | |
Важный момент
README.md остался нетронутым - это документация для людей. Файлы в claude-context/ - отдельный артефакт, написанный под AI: плотно, без лирики, с ASCII-схемами и таблицами. Я старался не смешивать два разных назначения в одном файле.
При небольшом проекте в этом подходе смысла нет, накладные расходы на поддержку двух наборов документации не оправдаются.
