如果你用過多個 AI 模型——OpenAI、Anthropic、xAI、DeepSeek、Groq——你大概很熟悉那種感覺:每個 provider 一套 API key、一套 SDK、一套計費入口。切換模型的時候改 API base URL,fallback 邏輯自己寫,token 用量要去四個不同的 dashboard 湊。
Vercel AI Gateway 的設計目標是消滅這個麻煩。
不過,最近有一件事讓這個工具多了一點神秘感。
Vercel 工程師 Vignesh(@_vgnsh)在 4 月初發了這條推文:
"Enable dreaming, go to your gateway's dreaming tab for a surprise :)"
沒有更多說明。只有一個連結,和一個微笑符號。
Vercel AI Gateway 是什麼
在說 Dreaming 之前,先快速回顧一下 Gateway 本身在做什麼。
一個 endpoint,接上所有模型。
你在 Vercel Dashboard 的 AI Gateway 裡建立一個 Gateway instance,拿到一個 API key。從這個 key 往後,你的應用程式可以存取 OpenAI、Anthropic、xAI(Grok)、DeepSeek、Groq、Cohere、Mistral、Perplexity,以及更多 provider——不需要個別管理各家的金鑰。
import { createOpenAI } from '@ai-sdk/openai'
const gateway = createOpenAI({
baseURL: 'https://ai-gateway.vercel.sh/v1',
apiKey: process.env.AI_GATEWAY_API_KEY,
})
// 切換模型只改 model string,不改任何基礎設施
const response = await generateText({
model: gateway('anthropic/claude-sonnet-4-6'),
prompt: '你好,請做一個簡短的自我介紹。',
})
model string 的格式是 provider/model-id——這個字串是 runtime 解析的,不是硬寫死在 SDK 裡的。Vercel 建議先用 curl https://ai-gateway.vercel.sh/v1/models 確認可用的 model ID,不要從記憶猜測。
Gateway 核心功能
Load Balancing 與 Fallback
同一個 model 可以設定多個 provider 作為備援。主 provider 回應慢或失敗,自動切換到備用——對生產環境的穩定性來說這是很現實的需求。
Spending Monitoring
所有模型的 token 用量匯總在同一個地方。不需要再分別登入五個 dashboard 對帳。
Zero Markup on Tokens
Gateway 本身不對 token 收取加成費用。你只付給原始 provider 的費用,Vercel 的 Gateway 層是免費的(有 usage 限制,超過可升級方案)。
與 AI SDK 原生整合
Vercel AI SDK 的 AI_GATEWAY_API_KEY 環境變數在設定後預設就會走 Gateway 路由,不需要額外的 adapter 或設定。
Gateway 架構:請求怎麼流動
你的應用程式只和 Gateway 溝通,Gateway 負責路由、fallback、monitoring——所有 provider 的複雜性被統一在這一層後面。
「Dreaming」是什麼
這是這篇文章沒辦法完整回答的問題。
Vignesh 的推文說:「Enable dreaming,去你的 Gateway 的 dreaming tab 找驚喜。」沒有截圖,沒有解釋,沒有文件。這個功能不在 Vercel 任何公開的 changelog 或 docs 裡——它就是一個藏在 Gateway 介面裡的彩蛋。
從推文的語氣來看,這是一個刻意設計的「讓用戶自己去發現」的體驗。Vercel 的工程師在產品裡留了一道門,門後面是什麼,需要你自己走進去。
有時候技術產品最好的部分不是寫在 docs 裡的那些——而是某個工程師在某個閒暇的夜晚悄悄塞進去的東西。
去找找看
如果你有 Vercel 帳號並且開了 AI Gateway:
- 登入 Vercel Dashboard
- 進入你的 AI Gateway instance
- 找到 Dreaming tab
- Enable it
就這樣。剩下的讓你自己去看。
如果你發現了什麼有趣的東西,歡迎在 X 上 tag @_vgnsh 或者在留言分享。有些驚喜,值得保留一點神秘感。