Во что обходится очень длинный контекст

Контекст в миллион токенов звучит как разрешение ни в чём себе не отказывать. На практике за него платят не только деньгами.

4 мин · · Обновлено · оплата · модели

Модели Claude и GPT в каталоге — claude-opus-5-5, claude-sonnet-5, gpt-5.6-sol и gpt-5.6-luna — держат контекст в 1 000 000 токенов; у glm-5.3 и glm-5.3-flash — 128K (актуальный список — GET https://api.zukko.pro/v1/models). Это большое окно, и соблазн использовать его целиком — просто закинуть в промпт весь репозиторий или всю переписку — понятен. Но цена растёт не только в деньгах, и разбираться в этом стоит до того, как контекст вырос сам собой.

Прямая стоимость: линейная зависимость от размера

Входные токены оплачиваются за каждый токен, который вы отправили, независимо от того, использовала ли модель всю эту информацию или нет. Промпт на 400 000 токенов стоит в четыре раза больше промпта на 100 000, даже если модели для ответа реально понадобилась только последняя тысяча строк. В агентских циклах, где на каждом шаге снова отправляется вся накопленная история, это умножается на число шагов — контекст растёт, и каждый следующий вызов дороже предыдущего просто потому, что тащит за собой всё, что было раньше. Учтите и особенность тарификации: у вендоров чтение из кэша промптов стоит ~10% цены входа, а в Zukko кэшированные токены оплачиваются по обычной входной цене — для агентов с большим повторяющимся контекстом реальная разница с официальным прайсом меньше, чем при сравнении «в лоб».

Проверить фактическую стоимость конкретного запроса можно из заголовка ответа:

bash
curl -i https://api.zukko.pro/v1/messages \
  -H "Authorization: Bearer fetch_ваш_ключ" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"claude-opus-5-5","max_tokens":500,"messages":[...]}' \
  | grep -i x-zukko-cost-micros

А заранее оценить размер контекста, прежде чем отправлять его целиком, помогает бесплатный подсчёт токенов:

bash
curl https://api.zukko.pro/v1/messages/count_tokens \
  -H "Authorization: Bearer fetch_ваш_ключ" \
  -H "Content-Type: application/json" \
  -H "anthropic-version: 2023-06-01" \
  -d '{"model":"claude-opus-5-5","messages":[{"role":"user","content":"<весь контекст>"}]}'

Лимиты ключа сгорают быстрее

Если на ключе задан дневной или месячный лимит расхода в долларах — настраивается в кабинете на странице ключа, — длинный контекст съедает этот лимит заметно быстрее, чем короткие запросы. Агент, который на каждом шаге пересылает по 200–300 тысяч токенов, может упереться в key_daily_limit_reached в середине рабочего дня просто потому, что лимит был рассчитан на среднюю нагрузку, а не на плотную работу с большими файлами.

Здесь же стоит вспомнить про key_monthly_limit_reached — та же логика, но на горизонте месяца, и восстанавливается не сразу.

Кэш спасает не всегда

Кэш ответов включается заголовком X-Zukko-Cache: true (temperature: 0 тоже включает кэш, но только у моделей, которые его принимают, — модели Claude могут отклонить temperature, отличный от 1), и повторный идентичный запрос от того же пользователя возвращается мгновенно и бесплатно с X-Zukko-Cache: hit в ответе. Для чата кэш живёт до 7 суток. Ключевое слово — идентичный: если в длинном контексте меняется хоть один токен (а в агентском цикле он меняется почти всегда — добавляется новый шаг истории), кэш не сработает. Рассчитывать на кэш как на решение проблемы дорогого длинного контекста в динамических сценариях не стоит — он спасает при повторяющихся статичных запросах, а не при растущей истории диалога.

Риск обрыва ответа и лимитов на скорость

Большой контекст увеличивает время обработки запроса. Если клиент или сеть настроены на короткий таймаут, длинный запрос может оборваться на середине — это почти всегда таймаут клиента, а не ограничение по токенам, и решается увеличением таймаута HTTP-клиента и адекватным max_tokens, а не сменой модели. Отдельно от этого: общего rate limit на шлюзе нет — 429 от Zukko означает только key_daily_limit_reached или key_monthly_limit_reached, а прочие 429 приходят от провайдера модели.

Разбивка на шаги вместо одного гигантского запроса

Возможность отправить миллион токенов не означает, что задачу стоит решать одним вызовом. Если нужно проанализировать большой репозиторий или длинный документ, часто дешевле и надёжнее разбить работу на несколько шагов с меньшим контекстом на каждом: сначала пройтись по оглавлению или списку файлов, выбрать релевантные части, и только их отправить на детальный разбор. Итоговая сумма токенов может оказаться сопоставимой, но пропадает риск платить за один неудачный гигантский запрос целиком, если что-то пошло не так на середине обработки — оборвался ответ или модель неправильно поняла задачу. Каждый из меньших шагов можно предварительно проверить через count_tokens и решить, нужен ли он вообще, прежде чем собирать всё в одну простыню.

Что делать на практике

Не тащите файлы целиком, если нужен фрагмент. Особенно в агентских инструментах чтения файлов: полный файл на 5000 строк ради одной функции — это тысячи лишних входных токенов на каждом шаге.

Обрезайте историю диалога. Часто первые сообщения сессии уже не нужны для текущего шага, но продолжают пересылаться просто по инерции реализации.

Считайте токены заранее для дорогих запросов. /v1/messages/count_tokens бесплатен именно для того, чтобы не платить за сюрприз.

Разносите модели по задачам. Для шагов, где не нужен по-настоящему миллионный контекст, glm-5.3-flash ($0.04/$0.04 за 1M) или gpt-5.6-luna ($0.10/$0.10) отработают дешевле, чем гонять всё через claude-opus-5-5 ($0.30/$0.30).

Смотрите на лимиты ключа реалистично. Если знаете, что работа предполагает большие контексты, настраивайте дневной/месячный лимит с запасом, а не по средней прикидке — иначе агент упрётся в key_daily_limit_reached в неподходящий момент.

Миллион токенов контекста — это возможность решать задачи, которые раньше требовали ручного разбиения на части, а не приглашение отправлять всё подряд без разбора. Цена, лимиты ключа и стабильность соединения одинаково реагируют на размер запроса, и все три стоит держать в голове одновременно.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.