跳到主要内容

限流与预算

A2A Agent 调用与模型请求共用同一个调用方 API Key 边界。你在调用方 API Key 上配置的限流和预算,也会作用于该 Key 发起的 A2A 调用,不需要为 A2A 单独配置一套规则。本页说明哪些控制项会生效、AISIX 如何在 A2A 路径上执行这些控制,以及如何验证行为。

完整的限流字段和计数器存储选项请参见限流。托管部署中的预算配置请参见预算

网关会治理哪些请求

网关会对 /a2a/<agent> 上的每个 JSON-RPC 调用执行限流和预算检查。/a2a/<agent>/.well-known/agent-card.json 的 Agent card 发现请求不会被限流,因此即使调用方已触发限流,也仍然可以获取其 Key 允许访问的 Agent card,只是要等窗口重置后才能再次调用 Agent。

当某个 A2A 调用因限流或预算被拒绝时,网关会在联系上游 Agent 之前返回错误,并且仍会把这次被拒绝的调用记录为用量事件

由于 A2A 调用不会解析到模型,模型作用域的限流策略不会作用于它。调用方 API Key 上的请求级限制会生效,包括 Key 内联的 rate_limit,以及 API Key、团队或成员作用域的策略。

哪些限流会生效

调用方 API Key 的 rate_limit 对象可以包含请求速率、Token 速率和并发限制。在 A2A 路径上:

限制是否作用于 A2A 调用说明
rpsrpmrphrpd每个 /a2a/<agent> 调用会在对应窗口中计为一次请求。
concurrency每个进行中的 A2A 调用会占用一个并发许可,直到调用返回。
tpmtpd不消耗Token 速率窗口统计模型 Token。A2A 调用没有 Token 成本,因此不会消耗 Token 窗口;但如果该 Key 的模型流量已经耗尽 Token 窗口,同一个 Key 的 A2A 调用仍会被阻断。

因此,如果要直接限制 A2A 调用量,应使用请求速率限制(rpsrpmrphrpd)或 concurrency。只配置 Token 限制并不能限制 A2A 调用数量;不过,当同一调用方 Key 的模型流量已经把 Token 窗口耗尽时,该 Key 的 A2A 调用会在窗口重置前收到 HTTP 429

配置限流

在调用方 API Key 上配置限流即可。更新操作会替换整个资源,因此请同时带上现有 Key 哈希、模型访问权限和 Agent 访问权限。下面示例将某个调用方限制为每分钟 1 次 A2A 调用:

export AISIX_ADMIN_KEY="YOUR_ADMIN_KEY"

curl -sS -X PUT "http://127.0.0.1:3001/admin/v1/apikeys/YOUR_API_KEY_ID" \
-H "Authorization: Bearer ${AISIX_ADMIN_KEY}" \
-H "Content-Type: application/json" \
-d '{
"key_hash": "'"${AISIX_API_KEY_HASH}"'",
"allowed_models": [],
"allowed_agents": ["invoice-processor"],
"rate_limit": {
"rpm": 1
}
}'

验证

使用该调用方 API Key 在同一分钟内调用两次 /a2a/invoice-processor

预期结果: 第一次调用成功;同一分钟内的第二次调用会在 AISIX 联系上游 Agent 之前被 HTTP 429 拒绝。Agent card 获取仍然可用,因为 card 发现请求不会被限流。

在托管部署中应用预算

预算由 AISIX Cloud 托管部署执行。当覆盖某个调用方 API Key 的预算已耗尽时,网关会在联系上游 Agent 之前,以 budget_exceeded 错误拒绝该 Key 的 A2A 调用。这个检查与模型路径使用相同的预算机制。

A2A 调用没有 Token 成本,因此本身不会增加基于 Token 的花费。但如果该调用方的模型流量已经耗尽预算,同一个调用方 API Key 的 A2A 调用也会被阻断,因为二者共用同一个 Key 和预算边界。预算目标、拒绝响应和缓存行为请参见预算

自托管部署

预算执行依赖 AISIX Cloud 控制面。自托管网关中,请使用调用方 API Key 的限流来治理 A2A 调用量。

在 AISIX Cloud 中管理限流和预算

在 AISIX Cloud 中,这些控制项通过 Dashboard 的调用方 API Key 表单配置,而不是通过 Admin API:

  1. 打开暴露 A2A Agent 的环境,进入 API keys
  2. 创建或编辑 A2A 客户端使用的调用方 API Key。在该 Key 的表单中配置 Agent 访问权限,并在 Key 卡片上的相关区域设置限流和预算。
  3. Rate limits 区域设置每秒、每分钟、每小时或每天的请求限制,以及并发限制。这些限制同时作用于该 Key 的 A2A 调用和模型请求。Token 限制统计模型 Token,A2A 调用不会增加 Token 计数。
  4. 在同一个 Key 上添加预算,或在 Budgets 页面配置组织级、环境级预算。一旦该 Key 的预算耗尽,网关也会阻断其 A2A 调用。

Agent 访问权限、限流和预算都挂在同一个调用方 API Key 上,因此可以在一个位置完成该 Key 的 A2A 治理配置。更多信息请参见 AISIX Cloud

下一步

  • 可观测性:查看 A2A 调用产生的用量事件和指标,包括被拒绝的调用。
  • 按 Key 控制 Agent 访问:限定每个 Key 可访问的 Agent。
  • 限流:查看完整的限流字段和计数器存储选项。
  • 预算:在托管部署中配置预算。