返回文章列表
后端架构限流多租户可靠性成本治理

速率限制实战:按用户、按模型、按工具三层限流怎么落地

Agent 系统的限流不能只在入口打一层 429。本文给出三层限流框架:用户层防滥用、模型层控成本、工具层防级联故障,并解释令牌桶/漏桶在不同层的适配方式、配额治理、灰度调参与观测指标,帮助你避免“流量一上来全线抖动”。

2026年3月5日
Synthly 团队
预计阅读 15 分钟
三层限流示意图:用户请求层、模型推理层与工具调用层的配额控制

📷 Photo by Tima Miroshnichenko via Pexels

一、限流不是“拦截器”,而是资源分配策略

很多系统把限流做成单点中间件:

  • 请求超了就 429

这在传统 API 里有用,但在 Agent 场景不足够。原因是一次请求会引发内部 fan-out:

  • 多次模型推理
  • 多个工具调用
  • 多轮重试

所以限流应该回答的是:

  • 谁优先使用资源?
  • 哪个层面先降级?
  • 哪些任务必须保底?

二、三层限流框架:入口、模型、工具

1)用户层(入口)

目标:防刷、防滥用、隔离租户噪音

常见维度:

  • userId
  • tenantId
  • apiKey

策略建议:令牌桶 + 短窗突发容忍

2)模型层(推理资源)

目标:控制成本与并发,避免 GPU/模型服务雪崩

常见维度:

  • modelName
  • tokens per minute
  • 并发数

策略建议:并发上限 + token 配额 + 降级模型

3)工具层(下游)

目标:保护第三方 API 与内部关键服务

常见维度:

  • toolName
  • endpoint
  • provider quota

策略建议:漏桶平滑 + 熔断联动 + 回退路径


三、失败反馈设计:让限流“可理解、可恢复”

三层限流的返回语义不应一样:

  • 用户层:too_many_requests + 重试时间
  • 模型层:queued_or_downgraded + 预计等待
  • 工具层:partial_result + 后续补偿计划

用户真正需要的是“下一步怎么做”,而不是只看到错误码。


四、多租户治理:公平与商业优先级并存

建议采用分池策略:

  • 全局共享池(公共容量)
  • 租户保底池(保证基本可用)
  • 高优先级池(SLA 客户)

并给每层设置预算天花板:

  • 每租户分钟请求数
  • 每租户模型 token 上限
  • 每工具调用上限

这样能避免头部租户瞬时流量吞噬全部资源。


五、灰度调参与观测:限流系统要可运营

最低限度监控指标:

  • rate_limit_reject_count{layer=*}
  • queue_wait_seconds{layer=model}
  • tool_throttle_count{tool=*}
  • downgrade_trigger_count

并采用灰度策略:

  • 先按 5% 租户开启新阈值
  • 观察拒绝率与完成率联动
  • 再逐步扩大覆盖

没有观测与灰度,限流很容易从“保护系统”变成“误伤业务”。


六、落地清单:一周内可执行版本

  • 入口层按用户/租户限流
  • 模型层加入并发与 token 配额
  • 工具层加漏桶与熔断联动
  • 限流错误码统一化
  • 指标看板按层拆分

当三层限流跑通后,你的系统才真正具备“可控扩容”的能力。

延展阅读: