Vercel AI 网关在账户余额为零时似乎阻止 BYOK 请求
当 AI 网关积分耗尽时,所有请求都会被阻止,包括使用自带密钥(BYOK)的请求,这与文档描述不符。
当 AI 网关积分耗尽(余额为零)时,所有请求都会被阻止——包括那些应使用自带密钥(BYOK)凭据的请求。无论 BYOK 是通过仪表盘集成(已验证的“测试密钥”功能正常工作)还是通过代码中的 providerOptions.byok 配置,都会发生这种情况。
预期行为
当 BYOK 凭据已配置(通过仪表盘或 providerOptions.byok)时,请求应直接使用这些凭据路由到提供商,无需 AI 网关积分。
文档指出:
> “使用您自己的凭据与外部 AI 提供商交互,AI 网关可以代表您进行身份验证,且不增加额外费用。”
这意味着 BYOK 应完全绕过积分系统。
实际行为
所有请求失败并显示:
余额不足。请向账户充值以继续使用 AI 服务。即使:
- 在仪表盘中配置了 BYOK 集成且“测试密钥”通过
- 在请求中显式设置了
providerOptions.byok
复现步骤
- 在 Vercel 仪表盘(AI 网关 → 集成)中配置 BYOK 集成
- 使用“测试密钥”功能验证密钥是否正常 ✓
- 将 AI 网关积分耗尽至 $0
- 使用
createGateway()发起请求:
import { createGateway, generateText } from "ai";
const gateway = createGateway();
// 方法1:依赖仪表盘 BYOK 配置
const response1 = await generateText({
model: gateway("anthropic/claude-3-5-haiku-latest"),
prompt: "Hello",
});
// 方法2:通过 providerOptions 显式 BYOK
const response2 = await generateText({
model: gateway("anthropic/claude-3-5-haiku-latest"),
prompt: "Hello",
providerOptions: {
gateway: {
byok: {
anthropic: [{ apiKey: process.env.ANTHROPIC_API_KEY }],
},
},
},
});两者均失败并显示“余额不足”错误。
验证
API 密钥有效——直接调用提供商工作正常:
import { anthropic } from "@ai-sdk/anthropic";
import { generateText } from "ai";
// 此调用完美运行
const response = await generateText({
model: anthropic("claude-3-5-haiku-latest"),
prompt: "Hello",
});环境
ai包版本:6.0.0-beta.128@ai-sdk/gateway:最新- Node.js:v25.2.1
影响
以下用户:
- 设置 BYOK 以避免 Vercel 积分费用
- 拥有有效提供商 API 密钥且有可用配额
- AI 网关积分耗尽(即使是意外)
……完全无法使用 AI 网关,这与 BYOK 的初衷相悖。
建议修复
当满足以下条件时应跳过积分检查:
- 在仪表盘中为所请求的提供商配置了有效 BYOK 凭据
providerOptions.byok包含所请求提供商的有效凭据
网关仅在使用 Vercel 系统凭据时应要求积分。