首页 / 文档 / 速率限制

速率限制

限流机制、429 在这里的含义,以及如何构建不会触发该状态码的客户端。

限制旨在确保公平使用共享的上游容量。限制按账户生效,而非按密钥生效,因此增加密钥不会提高你的上限。

限制项

维度行为
并发请求数每个账户正在处理的请求数。这通常是出现 429 的原因。
每分钟请求数持续调用速率。
每分钟 token 数输入和输出的合计吞吐量。

无限量套餐采用公平使用限制,而非额度余额机制——它们免除按 token 收费,但不会取消并发上限。

正确处理 429

  1. 采用带随机抖动的指数退避——1 秒、2 秒、4 秒、8 秒,每次都随机增加或减少一小部分时间。
  2. 在客户端使用信号量限制并发,而不是一次性发出所有请求,再重试被拒绝的请求。
  3. 将批量任务排队处理,而不是尽可能提高并行度;吞吐量受每分钟 token 数限制,而非你打开的套接字数量。
  4. 将 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 错误,请先降低工具的并行度,再考虑升级套餐。

减轻压力,而非重试