Ограничения частоты запросов
Как работает ограничение частоты запросов, что здесь означает 429 и как создать клиент, который не вызывает такой ответ.
Лимиты обеспечивают справедливое распределение общей мощности вышестоящего сервиса. Они применяются к аккаунту, а не к ключу, поэтому добавление ключей не повышает ваш предел.
Что ограничивается
| Параметр | Принцип действия |
|---|---|
| Одновременные запросы | Запросы аккаунта, находящиеся в обработке. Обычная причина ошибки 429. |
| Запросы в минуту | Частота запросов при длительной нагрузке. |
| Токены в минуту | Суммарная пропускная способность для входных и выходных токенов. |
На безлимитных тарифах действуют ограничения добросовестного использования вместо баланса кредитов: они отменяют плату за токены, но не ограничение на число одновременных запросов.
Правильная обработка 429
- Увеличивайте задержку экспоненциально со случайным разбросом — 1 с, 2 с, 4 с, 8 с, каждый раз добавляя или вычитая случайную долю интервала.
- Ограничивайте число одновременных запросов на стороне клиента с помощью семафора, вместо того чтобы отправлять всё сразу и повторять отклонённые запросы.
- Ставьте пакетные задания в очередь, вместо того чтобы максимально распараллеливать их; пропускная способность ограничена числом токенов в минуту, а не количеством открытых сокетов.
- Рассматривайте
529иначе, чем429— это ограничение мощности вышестоящего сервиса, а не проблема на вашей стороне; обычно оно исчезает в течение нескольких секунд.
import asyncio
sem = asyncio.Semaphore(8) class=class="s">"c"># ceiling on concurrency, tune to your plan
async def ask(client, body):
async with sem:
return await client.post(class="s">"/v1/messages", json=body)
Агентные инструменты, такие как Claude Code, по своей архитектуре активно запускают параллельные запросы. Если при интенсивной работе с агентом вы видите ошибки 429, уменьшите параллелизм инструмента, прежде чем переходить на более высокий тариф.
Снижение нагрузки вместо повторных попыток
- Направляйте простые задачи в
claude-haiku-4-5— меньшие модели завершают работу быстрее и занимают слот на меньшее время. - Включите кэширование промптов: кешированные префиксы сокращают число входных токенов и тем самым снижают нагрузку на лимит токенов в минуту.
- Сокращайте историю диалога; см. Управление контекстом.
- Планируйте пакетную обработку фоновых задач на периоды низкой нагрузки.