Claude Agent SDK: как проверить расход пятичасового лимита
Сравните расход пятичасового лимита в приложениях на Claude Agent SDK, claude -p и интерактивном Claude Code. Проверьте метки клиентов и события использования, оцените ограничения неофициальных обходных решений и перенесите автоматические задания на оплату через API или API-кредиты Max и Team.
Содержание

Если приложение на Claude Agent SDK или claude -p быстро исчерпывает пятичасовой лимит, сравните ту же задачу в интерактивном Claude Code. В отдельных тестах сообщества расход составлял примерно 1.6×–2.97× от расхода в контрольном запуске, но единого коэффициента эти замеры не устанавливают. Для регулярных автоматических заданий оплата через API позволяет учитывать расходы по токенам на отдельном балансе.
По состоянию на 2026-10-27 обсуждение #97074 в репозитории Anthropic остаётся открытым. Опубликованные замеры указывают на разницу в расходе между клиентами с разными метками entrypoint. Они не объясняют, задумана ли эта разница Anthropic или это дефект.
Что показали сравнительные тесты
Несколько авторов сообщили, что при сопоставимой нагрузке claude -p и приложения на Agent SDK расходуют большую долю пятичасового лимита. Версии, модели, соотношение типов токенов и сравниваемые клиенты в этих экспериментах различаются.
В таблице effort — уровень усилий модели при рассуждении.
| Отчёт | Условия теста | Результат по данным автора |
|---|---|---|
| qvarker, 25 сентября | Max; Claude Code 2.1.282; claude-opus-5; effort: high | Расход в неинтерактивном режиме — около 1.8× от расхода в интерактивном терминале |
| kler, 17 октября | Team; Claude Code 2.1.300; claude-opus-5-5; effort: high | sdk-ts: 2.97×; sdk-cli: 2.83× относительно тестового запуска с меткой claude-vscode |
| Отчёт Theo о T3 Code, 25 октября | Один аккаунт Max; одинаковая нагрузка; интерактивный терминал, T3 Code и claude -p | Расход через SDK и claude -p — примерно 1.6×–1.7× от расхода в терминале после учёта кеширования в отчёте |
| frostfire575, 26 октября | Windows 11; Claude Code 2.1.310; claude-opus-5-5; effort: low | Расход на взвешенный токен через claude -p — около 2.4× от расхода в интерактивном терминале |
Наибольшее значение требует оговорки: тестовый код kler эмулировал метку расширения VS Code. Самим интерфейсом расширения он не управлял. Результат показывает различие, связанное с меткой, только в условиях этого эксперимента.
Взвешенные токены — расчётный показатель автора: токены разных типов учитываются с разными коэффициентами. Суммы в долларах в отчёте qvarker — оценка выполненной работы по тарифам API, а не доплата за подписку. Чем меньше такой работы приходится на 1% лимита, тем быстрее он расходуется.
Недельный лимит нужно проверять отдельно. В каждом запуске у Theo недельный счётчик расхода вырос на два процентных пункта. У frostfire575 он изменился лишь с 0% до 1%, чего недостаточно для вывода. Это свидетельствует об одинаковом недельном расходе в эксперименте Theo, но не гарантирует такой результат для всех аккаунтов.
Что означают sdk-cli и sdk-ts
Метка entrypoint передаёт заявленные сведения о клиенте. По ней нельзя восстановить формулу учёта лимита на серверах Anthropic.
В опубликованном пакете @anthropic-ai/claude-agent-sdk версии 0.3.311 файл sdk.mjs содержит такое значение по умолчанию:
if(!c.CLAUDE_CODE_ENTRYPOINT)c.CLAUDE_CODE_ENTRYPOINT="sdk-ts"
Если переменная окружения не задана, SDK этой версии устанавливает sdk-ts. В журналах сеансов, опубликованных сообществом, обычные запуски claude -p записаны с меткой sdk-cli, а интерактивный терминал — с cli.
В сетевом сравнении qvarker запросы различались значением cc_entrypoint внутри системного блока x-anthropic-billing-header. Автор также заметил различия в User-Agent и одном beta-флаге.
Это наблюдение автора за содержимым запросов. Оно не описывает официальный интерфейс управления оплатой и не доказывает, что все различия вызваны одним полем.
В списке изменений Claude Code 2.1.311 не заявлено исправление этой разницы в расходе. Из этого нельзя сделать вывод, менялось ли поведение сервера.
Как проверить расход в своей конфигурации
Перед изменением настроек зафиксируйте фактический клиент, способ аутентификации и нагрузку.
Проверьте аутентификацию и условия сравнения
Проверьте окружение процесса Claude, который запускает ваше приложение. Согласно справочнику аутентификации, в режиме -p API-ключ может использоваться вместо входа по подписке.
Запишите путь к исполняемому файлу, версии CLI и пакета SDK, тариф, точный ID модели и настройку effort. Приложение может запускать другой исполняемый файл, чем ваша оболочка.
Для сравнения:
- Используйте один аккаунт, одинаковое состояние проекта, список промптов, инструменты и настройки кеша.
- Приостановите остальную активность этого аккаунта.
- Начинайте каждый тест с нового сеанса. Оба запуска должны поместиться в одно пятичасовое окно.
- Остановите сравнение, если окно сбросится или запросы перейдут на платное использование сверх лимита.
Возьмите типичную задачу, например краткое описание одних и тех же исходных файлов. Входные, выходные, прочитанные из кеша и записанные в кеш токены считайте отдельно. Одинаковая длина ответов сама по себе не означает одинаковый объём работы.
Получите показания и записанную метку клиента
Сохраняйте событие с данными о лимитах целиком: набор полей зависит от версии.
Для следующей проверки в Bash нужны jq и уже выполненный вход по подписке. Запрос расходует лимит. Он проверяет получение диагностических данных и аутентификацию; по ответу из одного слова нельзя измерить коэффициент расхода.
set -o pipefail
claude --version
claude auth status | jq '{authMethod}'
claude -p "Reply with exactly OK." \
--model claude-sonnet-5-5 \
--max-turns 1 \
--disallowedTools "*" \
--output-format stream-json --verbose |
jq -c '
if .type == "rate_limit_event" then
{type, session_id, rate_limit_info}
elif .type == "result" then
{type, subtype, is_error, session_id,
usage, modelUsage, total_cost_usd, result}
else empty end
'
Эти флаги и команда проверки аутентификации описаны в справочнике CLI. Успешный ответ должен содержать запись result с subtype: "success" и is_error: false.
Авторы отчётов считывали показания в своих сборках по этому пути:
rate_limit_event.rate_limit_info.unifiedWindows.five_hour.utilization
При этом unifiedWindows отсутствует в публичном типе события SDK 0.3.311. В нём объявлены, например, rateLimitType и utilization. Отсутствие поля или события не означает нулевой расход. Если поток не даёт пригодных показаний, проверяйте страницу Usage с данными об использовании аккаунта.
Берите показания из одного интерфейса и в одной шкале. Событие и отдельный ответ SDK на запрос текущего расхода имеют разные схемы данных. Их числовые поля не взаимозаменяемы.
Найдите журнал сеанса по полученному session_id. Согласно документации по сеансам, журналы лежат в ~/.claude/projects/<encoded-cwd>/<session-id>.jsonl. Если задана собственная CLAUDE_CONFIG_DIR, корневая папка меняется.
Чтобы вывести только записанную метку клиента, выполните в Bash:
read -r -p "Transcript path: " CLAUDE_TRANSCRIPT
jq -r 'select(.entrypoint? | type == "string") | .entrypoint' \
"$CLAUDE_TRANSCRIPT" | sort -u
Пустой результат означает, что поле недоступно. Это не подтверждает интерактивный режим сеанса.
Для сравнения запустите интерактивный Claude Code напрямую из чистой оболочки. qvarker сообщил, что сервер tmux унаследовал CLAUDE_CODE_ENTRYPOINT и передал её последующим сеансам в терминале. Поэтому сверяйтесь с журналом: интерфейс приложения сам по себе не определяет метку.
Сравните расход на одинаковый объём работы
Сравнивайте, на сколько процентных пунктов вырос счётчик при сопоставимой нагрузке. Времени работы и числа промптов для этого недостаточно.
У frostfire575 интерактивный терминал использовал 1.43 миллиона взвешенных токенов, а счётчик вырос на пять пунктов. Неинтерактивный запуск использовал 1.32 миллиона токенов по той же методике, а счётчик вырос на одиннадцать пунктов. По опубликованным данным:
Headless / terminal = (11 / 1.32) / (5 / 1.43) = 2.38
Этот расчёт объясняет приведённый в отчёте результат 2.4×. Он использует показатель взвешенных токенов автора и относится только к этому сравнению.
Изменение на один пункт слишком мало для полезного сравнения коротких запусков. При необходимости повторите обычную работу в обратном порядке. Избегайте сброса окна и одновременной активности других сеансов.
Для оценки стоимости берите итоговые результаты новых сеансов. Не складывайте накопительные записи результатов из возобновлённых сеансов. В документации по учёту расходов поясняется разница между учётом токенов и фактической оплатой. Ни total_cost_usd, ни modelUsage не служат счётчиком лимита подписки.
Если при одинаковом кешировании или без параллельной активности разница исчезла, сначала проверьте эти причины.
Стоит ли менять CLAUDE_CODE_ENTRYPOINT?
Смена метки клиента остаётся экспериментом без официальной поддержки.
26 октября qvarker и oviano сообщили, что при использовании названий своих инструментов расход снизился. В их сравнениях расход с исходной меткой sdk-cli составлял примерно 1.9×–2.4× от расхода с собственной меткой.
Эти отчёты не подтверждают, что Anthropic одобрила такой способ изменить расход лимита. Собственное название меняет передаваемую метку клиента. В опубликованных тестах это сопровождалось изменением расхода, но Anthropic не подтвердила серверную формулу учёта. Правила обработки метки могут измениться; допустимость этой практики остаётся неясной.
Не выдавайте своё приложение за cli или claude-vscode, чтобы получить правила учёта другого клиента. Эти метки обозначают другие клиенты.
Связанный pull request #25597 для T3 Code оставался открытым и не был объединён с основной веткой при проверке 2026-10-27. Он не подтверждает, что исправление уже вышло или Anthropic его одобрила.
Для работы вручную проверьте интерактивный терминальный клиент. Для автоматизации со структурированным вводом и выводом рассмотрите оплату через API.
Что расходует Agent SDK: лимит подписки или баланс API?
Способ аутентификации определяет, расходует ли задание лимит подписки или средства на API.
В обновлении правил оплаты от 7 октября Anthropic подтверждает: Agent SDK, claude -p и сторонние приложения по-прежнему могут расходовать лимиты подписки. Самостоятельно запущенные задания SDK и claude -p также могут использовать ежемесячные API-кредиты Max и Team. Для этого нужны подходящий тариф и API-ключ связанной организации Console.
Разделяйте эти способы оплаты:
| Способ подключения | Что расходует задание |
|---|---|
| Вход через подписку Claude | Лимиты подписки, включая пятичасовое окно |
| Подключённая оплата сверх лимита — extra usage, также usage credits | Отдельно оплачиваемая работа после исчерпания включённого лимита |
| API-ключ Anthropic | Доступные API-кредиты или оплаченный баланс организации Console |
| Независимый API-шлюз | Баланс и правила оплаты этого провайдера |
При оплате через API задание не зависит от пятичасового лимита подписки. Ограничения частоты запросов к API, лимиты расходов и доступный остаток средств продолжают действовать.
По состоянию на 2026-10-27 программа ежемесячных API-кредитов предусматривает такие суммы:
| Подходящий тариф | Ежемесячные API-кредиты |
|---|---|
| Max 5x | $100 USD |
| Max 20x | $200 USD |
| Team Standard | $20 USD за место |
| Team Premium | $100 USD за место |
API-кредиты Team объединяются в один баланс не более $500 USD. Pro в программе не участвует. Новые подписчики могут получить кредиты через семь дней на подходящем тарифе.
Чтобы получить кредиты, откройте Settings > Billing в Max или Organization settings > Billing в Team. В разделе API credits выберите Link organization. Нужны соответствующие права владельца подписки или организации, а также разрешения на управление оплатой в Console. Создайте API-ключ именно в связанной организации.
Программа не покрывает интерактивные сеансы Claude Code, оплату сверх лимита и запуски через Claude Code GitHub Action, расширения IDE или приложение Claude для компьютера. Добавление -p не отменяет этих исключений.
Согласно документации Platform, неиспользованные кредиты сгорают без переноса на следующий период. Сначала расходуются кредиты из тарифа, затем купленные средства. После исчерпания кредитов работа может продолжиться за счёт купленных средств или оплаты по счёту, если она предусмотрена. Иначе запросы останавливаются. Автоматического перехода к лимиту подписки нет.
Как проверить оплату через API перед переносом заданий
Перед переносом очереди запустите одно задание с API-ключом и проверьте его расход в Console.
Используйте Bash, настроенный на прямое подключение к Anthropic. Сначала проверьте значения ANTHROPIC_BASE_URL, ANTHROPIC_AUTH_TOKEN и настройки облачного провайдера. Они могут выбирать другой адрес или источник учётных данных.
Создайте API-ключ в нужной организации Console. Введите его без отображения в терминале:
read -rs ANTHROPIC_API_KEY && export ANTHROPIC_API_KEY
claude --bare -p \
--model claude-sonnet-5-5 \
--tools "" \
--max-turns 1 \
--max-budget-usd 1.00 \
--output-format json \
"Reply with exactly OK."
По документации по программному запуску, --bare пропускает OAuth-данные подписки и автоматически найденные пользовательские дополнения. Поэтому он подходит для этой проверки API. При сравнении лимита подписки он изменил бы способ аутентификации.
Ожидаемый результат — успешный JSON-ответ с текстом модели. Затем проверьте расход и баланс нужной организации в Console. Одна только оценка стоимости в CLI не доказывает, что запрос оплачен API-кредитами тарифа.
При ошибке аутентификации проверьте ключ и активного провайдера. Если средства закончились, проверьте оплату в Console. Если API сообщает об ограничении частоты запросов или расходов, разберитесь именно с этим ограничением. Остаток лимита подписки его не отменяет.
CLI использует оценку стоимости для порога $1.00. Один запрос может превысить его, поэтому задайте подходящий лимит расходов и в Console.
Для оценки бюджета возьмём актуальные тарифы Anthropic на claude-sonnet-5-5. Миллион входных токенов без кеширования стоит $2, миллион выходных — $10. По тарифам на 2026-10-27 оценка расходов на миллион входных и 100,000 выходных токенов составляет:
(1 × $2) + (0.1 × $10) = $3
Расчёт предполагает стандартные синхронные запросы с глобальной маршрутизацией, без кеша и серверных инструментов с отдельной оплатой. Налоги в него не входят. При повторном использовании контекста считайте запись в кеш и чтение из кеша по отдельным тарифам.
Другой вариант — независимый API-шлюз. На 2026-10-27 в актуальном каталоге BetterToken были указаны claude-sonnet-5-5 и claude-opus-5-5. В руководстве по подключению Claude Code используются ваш собственный ключ BetterToken и базовый адрес https://bettertoken.ai без /v1. Для своей нагрузки сравните актуальные цены и проверьте совместимость с нужными инструментами. API-кредиты, включённые в тариф Anthropic, на этот отдельный способ оплаты не переносятся.