anthropic

Вывод в Claude Code стоит примерно впятеро дороже ввода

Promtime

anthropic

Anthropic опубликовала разбор стоимости сессий Claude Code: токены вывода стоят примерно в пять раз дороже токенов ввода, потому что декодирование идёт по одному токену за раз и дольше занимает GPU. Материал вышел в блоге Claude и разбирает, из чего складывается каждый ход диалога.

Коротко

  • Запрос проходит две фазы: на префилле модель читает системный промпт, CLAUDE.md, сообщение и всё добавленное в диалог, на декодировании пишет размышления, вызовы инструментов и видимый текст.
  • Чтение из кэша промпта обходится в 0,1 от цены ввода, запись стоит до двух раз дороже обычного ввода, при этом запись происходит один раз, а дешёвые чтения повторяются каждый ход.
  • Команда /rewind срезает последние ходы с конца и ничего не стоит, потому что предыдущее остаётся в кэше, тогда как /compact переписывает диалог целиком и всегда требует расхода токенов.

Почему это важно. Практическая ценность разбора в том, что он переводит подписочные лимиты в понятную механику: лимиты вычитают те же самые запросы, которые по API оплачиваются напрямую. Судя по описанию, самые дорогие решения принимаются не при формулировке промпта, а при переключении модели или уровня усилий посреди длинного диалога. Для команд это выглядит как аргумент за короткие сессии и за дисциплину в CLAUDE.md.

Одна правка теста разошлась на пять запросов, и каждый нёс весь диалог

Разбор построен на одном примере: просьбе исправить падающий тест в utils.test.ts. Первый запрос собирается из системного промпта с определениями инструментов, CLAUDE.md и сообщения пользователя, кэш пуст, поэтому всё это префиллится и записывается в кэш. Дальше модель отвечает вызовом Read для этого файла.

Claude Code дочитывает второй файл, применяет правку и запускает npm test, дописывая каждый результат в конец диалога и отправляя его целиком заново. На одну небольшую правку уходит пять запросов, и каждый содержит всю историю до этого момента. Шестого запроса нет: тесты проходят, модель отвечает коротким итогом.

Типичный ход перекошен: на вход уходят десятки тысяч токенов, наружу возвращаются несколько сотен. Счёт за ход складывается из чтений кэша по истории, полной цены ввода на всё новое и цены вывода на ответ. На подписке цены не видны, но лимиты вычитают те же запросы.

Чтение кэша стоит 0,1 от цены ввода, а смена модели или /effort сбрасывает его целиком

Кэш промпта устроен просто: если запрос начинается ровно с тех же токенов, что сервер уже видел, состояние общего начала загружается вместо повторного вычисления, а префиллится только новый хвост. Claude Code управляет этим кэшем на каждом запросе, включать ничего не нужно, но сломать кэш можно.

Совпадение считается с самого начала запроса, а порядок всегда один: определения инструментов, системный промпт, затем диалог с CLAUDE.md в начале. Смена модели через /model, уровня /effort или включение быстрого режима меняет ключ кэша, и весь диалог префиллится заново по полной цене, причём после включения быстрого режима по его тарифам. У каждой модели свой кэш, включая opusplan, который меняет модель при каждом входе в режим планирования.

Команда /compact заменяет диалог более коротким пересказом, и совпадений в нём не остаётся, хотя системный промпт впереди сохраняется. Кэш живёт час на подписке и пять минут при работе по ключу API, переменная ENABLE_PROMPT_CACHING_1H=1 доводит второй случай до часа, а возобновление старой сессии почти всегда означает полный префилл.

После 30 000 знаков вывод команды уходит в файл, всё более короткое остаётся в контексте

Часть контекста заполнена до первого сообщения: определения инструментов, системный промпт, CLAUDE.md и всё загружаемое при старте. Команда /context показывает этот объём, лишний MCP-сервер отключается через /mcp, а сценарные инструкции Anthropic советует держать в навыках, которые загружаются только при использовании.

Всё остальное добавляют результаты инструментов, и каждый уходит на сервер заново на каждом следующем ходе. Упоминание файла через @ прикрепляет его к сообщению до отправки, так что вызов Read не тратится, а повторное упоминание того же файла обычно добавляет вторую копию.

Вывод команд копится так же: после 30 000 знаков Claude Code записывает его в файл и оставляет в диалоге превью и путь, порог задаётся через BASH_MAX_OUTPUT_LENGTH. Сложнее с тем, что короче: четыреста строк пройденных тестов остаются в каждом оставшемся ходе.

Ещё один способ разгрузить контекст даёт субагент: он получает собственное окно с системным промптом, инструментами и CLAUDE.md, но без диалога основной сессии, и возвращает наружу только ответ. Остальное отбрасывается, зато субагенту иногда приходится перечитывать то, что основная сессия уже видела.

Что дальше. Anthropic называет дешёвые моменты для переключения модели или уровня усилий: начало сессии и время сразу после /clear, тогда как середина длинного диалога обходится дорого. Для заведомо механической работы запуск MAX_THINKING_TOKENS=0 claude отключает размышления на одну сессию, кроме Fable 5. Возврат автокомпакта на отметку 200k через /autocompact 200k требует Claude Code версии 2.1.221 и новее.

Комментарии

Пока никто не написал. Будьте первым.

Присоединяйтесь к разговору

Войдите через Google, чтобы оставить комментарий. Имя и аватар подставятся из вашего профиля Google, а комментарий появится после модерации.

Из Google мы используем только имя и аватар. Почту не сохраняем.