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 系統憑據時應要求積分。