1. Длинные сессии
Каждый шаг везёт с собой всё, что было раньше. Именно здесь уходит большая часть денег.
вольный пересказ статьи Lydia Hallie
Оригинал — здесь
Это не перевод, а пересказ: я убрал подробности и почти все технические слова, чтобы осталась суть. Точный полный перевод лежит отдельным файлом, оригинал — по ссылке в шапке.
Раньше инструменты для работы с кодом стоили фиксированную сумму. Купили редактор — и работайте сколько хотите. Починили за вечер один тест или пятьдесят — цена одна и та же.
С Claude Code это не так. Теперь своя цена есть у каждой задачи. И одна и та же задача может стоить в разы дороже — просто потому, что вы по-другому вели сессию.
Хорошая новость: правил тут мало и все они простые. Сначала разберём, как это устроено, — а потом что делать.
Вот главная мысль. Всё остальное из неё вытекает.
У Claude нет памяти между шагами. Он не сидит и не помнит ваш разговор. Каждый раз, когда он делает следующий шаг, вся переписка целиком уезжает на сервер заново — с самого начала.
Представьте консультанта, который после каждой своей фразы всё забывает. Чтобы он продолжил, вы каждый раз заново пересказываете ему всю историю: что за проект, что уже выяснили, какие документы смотрели. Он говорит одну фразу — и снова всё забывает.
Платите вы в основном за эти пересказы. Не за ответ — ответ короткий. За пересказ, который с каждым шагом всё длиннее.
Отсюда сразу два вывода:
Поэтому мусор в переписке — это не «немножко лишнего места». Это лишняя строчка в счёте на каждом шаге и лишнее, о чём модели приходится думать.
К оглавлениюДопустим, вы написали: «почини падающий тест в файле utils.test.ts». Со стороны это одно действие. На самом деле — пять обращений к серверу.
Вместе с ней — служебная инструкция и ваш файл с правилами проекта.
Файл читается и добавляется в переписку. Вся переписка уезжает снова.
Тоже добавляется. Всё уезжает снова.
Правка и её результат добавляются. Всё уезжает снова.
Всё, что тесты напечатали, добавляется в переписку. Всё уезжает снова.
Дальше он говорит «готово» — и на этом сессия заканчивается.
Пять поездок на одну мелкую правку, и в каждой лежит всё, что было до неё. Обычный шаг сильно перекошен: на сервер уходят десятки тысяч слов, а обратно приходит несколько строк.
К оглавлениюТри вещи. Больше знать не нужно.
| От чего зависит | Как влияет |
|---|---|
| Размер модели | Крупная модель дороже мелкой. И она умножает всё остальное: любая ваша неаккуратность на большой модели стоит дороже. |
| Модель читает или пишет | Читать дёшево, писать примерно в пять раз дороже. Но читает она много, а пишет мало — поэтому основные деньги всё равно в чтении. |
| Сервер это уже видел или нет | Если начало переписки не изменилось, сервер узнаёт его и берёт за него в десять раз меньше. Это и есть кеш — скидка 90%. |
Ещё одна настройка влияет на то, сколько модель пишет: уровень усилий. Чем он выше, тем дольше модель обдумывает каждый шаг — и тем больше выходит «дорогих» слов. Переключается командой /effort.
В новой сессии один раз наберите /model и /effort — просто посмотреть, на чём вы работаете. Оба помнят прошлый выбор, и легко неделю просидеть на самой дорогой настройке, выбранной когда-то под другую задачу.
Если заранее понятно, что работа тупая и механическая, размышления можно вообще выключить — на одну сессию. Запускайте Claude Code так:
MAX_THINKING_TOKENS=0 claude
Про кеш стоит понять чуть подробнее — это единственное место, где легко переплатить на ровном месте.
Сервер запоминает начало вашего запроса. Если в следующий раз начало то же самое, он не пересчитывает его, а достаёт готовым — и берёт десятую часть цены.
Условие одно, но жёсткое: совпадать должно именно начало, с самого первого слова. Запрос всегда собирается в одном порядке: сначала описания инструментов, потом служебная инструкция, потом переписка (а ваш файл с правилами проекта — в её начале).
Пока новое дописывается в конец переписки, скидка работает. Как только меняется что-то в начале — скидка пропадает, и всё считается заново по полной цене.
Скидку рушат пять вещей:
Отсюда простое правило: модель и усилия выбирайте в начале сессии. Не потому, что менять их нельзя, а потому что в начале это бесплатно, а в середине — нет.
Сжатие (/compact) — полезная штука, просто делайте его до перерыва, а не после. Пока переписка ещё в кеше, пересказать её дёшево. А если последние несколько шагов ушли не туда, лучше не сжимать, а откатиться назад командой /rewind: она просто отрезает лишние шаги с конца, и всё, что было раньше, остаётся в кеше. Это не стоит ничего.
Часть переписки занята ещё до того, как вы напечатали первое слово: описания инструментов, служебная инструкция, ваш файл с правилами проекта и всё, что подключено на старте. Это уезжает на сервер в каждом запросе.
Наберите /context в новой сессии — увидите, чем она занята ещё до вашей первой строчки. Лишнее убирайте: правила, которые нужны не всегда, переносите из файла проекта в скиллы (они подключаются только когда нужны), а ненужные в этой сессии внешние подключения выключайте через /mcp.
Дальше всё, что добавляется, — это две вещи: файлы, которые Claude прочитал, и то, что напечатали запущенные им команды.
Сколько он прочитает, зависит от того, сколько ему приходится угадывать. Скажете «тесты падают» — он сначала выясняет, какие: ищет по проекту, открывает несколько файлов, смотрит, какой из них тут при чём. Всё это остаётся в переписке до конца сессии, хотя перестало быть нужным через минуту.
Когда говорите про файл, не набирайте путь словами, а поставьте @ и выберите файл из списка. Тогда он прикрепится к сообщению сразу, и Claude не придётся его ни искать, ни открывать. Упомянуть достаточно один раз за сессию: файл и так останется в переписке, а второе упоминание обычно прикрепляет вторую копию.
Второе, что забивает переписку, — вывод команд. Каждый раз, когда Claude запускает тесты, сборку или смотрит историю правок, всё напечатанное падает в переписку так же, как прочитанный файл, и лежит там до конца.
Что интересно: очень большой вывод как раз не страшен. Если напечаталось больше 30 000 символов, Claude Code сам сохранит это в файл, а в переписку положит только начало и путь. Опасен средний размер: прогон тестов, который печатает 400 строчек «тест пройден», в порог не попадает — и эти 400 строчек теперь едут на сервер на каждом шаге до конца сессии.
Две-три команды, которые вы гоняете каждый день, запишите в файл с правилами проекта — сразу с флагами, которые убирают лишний вывод. Одна строчка в файле экономит шаг и сотни строк мусора в каждой следующей сессии.
Вот и всё, что нужно делать. Ничего сложного тут нет.
| Привычка | Что даёт |
|---|---|
Начали новую задачу — наберите /clear | Переписка начинается заново, и контекст прошлой задачи не едет на сервер вместе со следующей. Самая крупная экономия из всех. |
Говорите про файл через @ | Файл сразу в сообщении: не нужны ни поиск, ни отдельный шаг на чтение. |
| Формулируйте конкретно | Чем меньше Claude угадывает, тем меньше он открывает лишнего — а всё лишнее остаётся в переписке до конца. |
| Убирайте лишний вывод команд | Флаги, которые печатают коротко, — прямо в файл с правилами проекта. |
/context в новой сессии | Видно, чем занята сессия на старте, и что из этого можно отключить. |
| Модель и усилия — сразу, а не в середине | В начале сессии переключение бесплатно, в середине — сбрасывает скидку на всю переписку. |
Уходите от компьютера — сначала /compact | Сжать переписку дёшево, пока она в кеше. Через час она из кеша выпадет, и то же самое обойдётся дороже. |
| Грязную работу — сабагенту | Он разберёт лог или прогонит тесты у себя и вернёт только вывод. Весь мусор останется у него. |
| Задачи по расписанию — из отдельной сессии | /loop каждый раз тащит с собой всю переписку той сессии, где вы его завели. Заводите его в новом окне терминала. |
Про сабагента стоит сказать отдельно, потому что это самый недооценённый приём. Сабагент — это отдельный Claude со своей чистой перепиской. Он получает задание, сам всё читает и запускает, а вам возвращает только ответ. Всё, что он при этом прочитал, выбрасывается и в вашу переписку не попадает.
На мелком поручении это лишние расходы: сабагент не знает вашего разговора и часть работы делает заново. Зато на грязной работе — разобрать длинный лог, прогнать все тесты, поискать что-то в истории — он окупается сразу. Часто Claude берёт сабагента сам; если не взял, попросите прямо: «разбери этот лог в сабагенте».
/clear между задачами: каждая начинается с чистого листа. Снизу — всё в одной сессии: столбики растут, потому что каждый шаг везёт с собой всё предыдущее.Если запоминать нечего, кроме четырёх пунктов, — вот они, примерно в порядке того, сколько они стоят:
Каждый шаг везёт с собой всё, что было раньше. Именно здесь уходит большая часть денег.
Ненужные файлы, мусорный вывод команд, остатки прошлой задачи, подключения, которыми вы не пользуетесь. Всё это едет на сервер на каждом шаге.
На это умножается всё остальное. И обе настройки помнятся с прошлого раза, так что проверять их стоит в начале.
Смена модели, усилий или режима в середине разговора — или возвращение после долгой паузы. Переписка пересчитывается по полной цене.
В оригинале эти четыре пункта нарисованы картинкой; здесь они набраны текстом.
К оглавлениюЭтого раздела нет в оригинале — он добавлен в пересказе.
/clear./effort.CLAUDE.md и лежит в папке проекта. Подключается в начале каждой сессии, поэтому едет на сервер в каждом запросе — держите его коротким./clear/compact/rewind/rename/clear./context/model, /effort/mcp/loop