Работа с ИИ-агентами вроде Claude Code стоит денег. Если вы просто пишете код и не следите за контекстом, один банальный фикс сожрет десятки тысяч токенов. Причина проста: модель тащит за собой историю всех предыдущих запросов, прочитанные файлы и выводы терминала. Разбираемся, как настроить среду и писать промпты, чтобы не платить за пустой треп.
Что сжирает ваши токены
Начнем с базы. Токены делятся на входящие (input) и исходящие (output). Генерация ответа обходится в пять раз дороже чтения промпта, потому что видеокарта работает на каждый токен по отдельности. Но главная статья расходов кроется в контексте. Каждый прочитанный файл и каждый лог сборки остаются в сессии навсегда. На сороковом шаге вы платите за повторное чтение всех тридцати девяти предыдущих.
Как работает кэш и почему он слетает
Кэширование промптов включено по умолчанию. Если начало вашего запроса совпадает с тем, что сервер уже видел, вы платите за чтение кэша сущие копейки (0.1x от базовой цены). Идеальный сценарий: вы просто добавляете новые команды в конец сессии.
Вот что полностью сбрасывает кэш и заставляет платить за весь контекст заново:
- смена модели через
/modelв середине работы; - изменение уровня усердия командой
/effort; - включение быстрого режима (лучше делать это до начала работы);
- команда
/compactзаменяет длинный диалог коротким пересказом; - таймаут (кэш живет час на подписке и пять минут по API).
⚙️ Настраиваем среду перед стартом
Хватит теории, переходим к настройке.
- Задайте параметры до старта. Сразу решите, какая модель нужна. Для рутины хватит базовой, для сложной архитектуры берите максимум. Если сессия обещает быть примитивной, отключите лишние раздумья модели:
MAX_THINKING_TOKENS=0 claude
- Проверьте стартовый контекст. Вызовите команду
/contextв чистой сессии. Уберите лишнее из файлаCLAUDE.mdи перенесите специфичные для воркфлоу инструкции в skills. Если запущен ненужный MCP-сервер, отключите его командой/mcp. - Заглушите шумные команды. Огромные логи больше 30 тысяч символов Claude Code обрежет сам. Проблема кроется в логах среднего размера. Тестраннеры любят выводить сотни строк с зелеными галочками. Модель запишет все это в историю. Добавьте в
CLAUDE.mdалиасы с флагами тишины:
Run tests with quiet flag: npx vitest run <file> --reporter=dot
Как правильно общаться с моделью
Привычки тоже придется поменять.
Указывайте файлы напрямую через @. Если написать обычный текст, модель сначала сделает вызов инструмента для поиска, потом прочитает файл. Все эти шаги осядут в контексте. Упоминание через @ прикрепляет файл к сообщению до отправки:
Fix the failing test in @utils.test.ts
Используйте субагенты для черновой работы. Если нужно пропарсить огромный лог сборки, отправьте туда агента-помощника. Он получит свой изолированный контекст, сделает работу и вернет в основную сессию только короткий ответ. Весь мусор исчезнет вместе с ним.
Режьте сессии. Не пытайтесь уместить весь рабочий день в один диалог. Закончили логический блок работы: вызывайте /clear. Если часть контекста еще нужна, но история слишком разрослась: пишите /compact перед тем, как отойти от компьютера на час.
Следите за фоновыми задачами. Если используете /loop, запускайте его в отдельном терминале. Иначе каждый виток цикла потащит за собой всю историю основного диалога.
⚠️ Важный нюанс: если последние пару команд пошли не по плану, используйте /rewind. Эта команда отрезает хвост диалога, сохраняя остальной кэш в целости.
Четыре всадника слитого бюджета
Зафиксируем четыре точки потери денег. Вы сливаете бюджет, если ведете бесконечные сессии, таскаете в контексте мусорные логи, гоняете топовую модель для переименования переменных и дергаете настройки на лету. Относитесь к токенам как к оперативной памяти: выделяйте под задачу, используйте по назначению и сразу очищайте.