Claude Code: работа с coding-агентом2. Как устроен coding-агент
Сколько стоит сессия
Засчитывается, когда отвечены все вопросы квиза
Зачем это нужно
Вы работали с агентом весь день в одной сессии, а к вечеру лимит подписки внезапно кончился — хотя последние вопросы были короткими, в одну строку. Или в конце месяца пришёл счёт за API, и непонятно, какая привычка его раздула. Счёт растёт, но не видно, за что именно вы платите и что менять.
Цифры при этом существуют: провайдер возвращает их в ответ на каждый запрос к модели. Нужно только знать, какие токены бывают и почему одни и те же действия в начале и в конце сессии стоят по-разному.
Как это устроено
Claude Code тарифицируется по токенам API. Каждый запрос к модели состоит из двух частей:
- input tokens — всё, что harness отправляет модели: system prompt, описания tools,
CLAUDE.mdи всю историю разговора, включая результаты tool calls; - output tokens — то, что модель производит в ответ: текст, tool call и thinking. Thinking оплачивается, даже когда Claude Code сворачивает его в интерфейсе.
Output обычно короткий: tool call или пара абзацев. Input огромен, потому что это вся сессия на текущий момент. Документация формулирует это прямо: Claude Code отправляет весь разговор с каждым запросом, а каждый раз, когда Claude использует tools, — ещё один запрос с пачкой их результатов. Поэтому однострочный вопрос в сессии, открытой с утра, тянет за собой оплату всей истории.
Это было бы разорительно без prompt caching. Сессия растёт дописыванием в конец: каждый следующий запрос — это предыдущий плюс немного нового. Провайдер помнит недавно обработанный префикс и, если новый запрос начинается так же, перечитывает историю по ставке cached-токенов. Поэтому у модели не две, а четыре ставки за токен: input, output, запись в кэш (cache write) и чтение из кэша (cache read). Первый запрос сессии пишет префикс в кэш, следующие в основном читают его.
У кэша есть срок жизни (TTL). На странице цен Anthropic цены prompt caching указаны для 5-минутного TTL. Если вы ушли на обед дольше, чем живёт кэш, первое сообщение после перерыва промахивается мимо кэша и заново обрабатывает весь контекст по полной ставке.
Отсюда два вывода, которые и составляют «оптимизацию счёта»:
- Каждый токен, попавший в контекст, оплачивается снова в каждом следующем запросе сессии. Лишний файл, прочитанный в начале, — это осадок, который вы везёте до конца.
- Длинная пауза в длинной сессии стоит дорого, потому что сбрасывает кэш.
/compact тоже не бесплатен: чтобы сжать разговор, модель должна его прочитать, так что сжатие большого контекста — сам по себе большой запрос. /clear начинает новую сессию и не стоит ничего.
Про подписку и API. Планы Pro и Max включают Claude Code, бесплатный план — нет. На подписке вы тратите не доллары, а лимиты плана; на API платите за каждый токен. Для ориентира документация приводит данные по корпоративным внедрениям: в среднем около $13 на разработчика за активный день и $150–250 в месяц, а у 90% пользователей меньше $30 в день. Ваши цифры будут другими: они зависят от модели, размера кодовой базы и привычек.
Практика
Откройте Claude Code в учебном проекте Cadence, задайте два-три вопроса о коде и выполните:
/usage
Посмотрите на блок Session. В строке Usage by model для каждой модели перечислены input, output, cache read и cache write. Сравните input и cache read: в живой сессии из кэша читается в разы больше, чем отправляется заново. Ниже строка Prompt cache (main) показывает долю input tokens из кэша, число промахов и warm или cold — тёплый ли кэш прямо сейчас. Если вы на подписке, долларовая сумма в Session-блоке — оценка по прайс-листу, а не ваш счёт: подписчику важнее полосы лимитов плана на том же экране.
Подводные камни
- Цифры
/usage— оценка. Claude Code считает сумму локально по прайс-листу; с договорными ставками организации она не совпадёт со счётом, пока администратор не задастmodelPricing. - Счётчик у спиннера — не цена. Строка вида
↓ 5.5k tokensво время работы показывает только output текущего turn. История и контекст, которые отправляются вместе с запросом, в него не входят. - Сессия тратит токены, даже когда вы молчите. Фоновые задачи, subagents и scheduled tasks отправляют свои запросы; scheduled task, например, шлёт весь контекст при каждом срабатывании.
Вывод: держать контекст маленьким и по делу полезно не только для качества ответа, но и для кошелька — каждый лишний токен вы оплачиваете в каждом запросе сессии.
Проверь себя
Вы задали агенту вопрос, ушли на совещание на полтора часа и вернулись к той же сессии. Первое же короткое сообщение съело заметно больше лимита, чем обычно. Что, скорее всего, произошло?
Почему документ, который агент прочитал в начале сессии, продолжает стоить денег до самого её конца?
Сессия раздулась, вы закончили задачу и переходите к несвязанной. Какой шаг дешевле всего?
/compact
, чтобы сохранить суть разговора
/clear
, чтобы начать новую сессию
/clear
начинает новую сессию и ничего не стоит.
/compact
сначала читает весь разговор, чтобы его сжать, — это большой запрос. Продолжать в старой сессии значит везти чужую историю в каждом запросе новой задачи.
Вы на подписке Pro. Блок Session в /usage показывает Total cost $3. Что это значит?
Источники
- Anthropic, Manage costs effectively
- Anthropic, Model configuration
- Anthropic, Pricing
- По мотивам AI Coding Crash Course, AI Hero
Текст подготовлен с помощью LLM и может содержать неточности.