四十八個德瑞克

OpenRouter:讓 AI 代理部署更穩健,避免陷阱與效能差異。

OpenRouter 路由分發到多家供應商節點的示意圖

本文為 So you want to use OpenRouter? — Mo Moustafa 之繁體中文翻譯整理,原文版權歸原作者所有。

表面上看起來似乎很簡單,但很遺憾,往下挖每一層都是痛苦。

我經營的 Olly 是一個存在於 iMessage 裡的 AI 助手,透過 OpenRouter 使用開源模型。到目前為止,Olly 已處理超過 1,800 萬則訊息,其中約三分之一是透過 OpenRouter 使用開放模型。這樣的流量足以讓我們至少碰上每一種邊緣案例一次。以下是我希望自己一開始就知道的事情。

先快速說明幾個詞彙:模型(model)指的是權重;供應商(provider)則是 OpenRouter 將請求路由過去的服務商。他們在自己的 GPU 上託管模型,採用自行選擇的精度與「專有」最佳化,也使用各自的 XML/工具解析器——因此,每家也都有一份「專有」的錯誤清單。當你呼叫 deepseek/deepseek-v4-flash 時,實際上可能會用到約 20 家你大多沒聽過的公司。紙面上它們是同一個模型,實際表現卻大不相同。

好,以下是你應該留意的一些陷阱。

1. 同一個模型的基準測試結果可能差異極大

OpenRouter 會針對同一模型執行各供應商基準測試:GPQA Diamond,以及 TAU-Bench Airline(工具呼叫任務)。以下是今天 DeepSeek V4 Flash 0731 的排行榜;每家供應商提供的都是完全相同的權重:

DeepSeek V4 Flash 0731,每個點代表一家供應商,2026-09-07
70%
75%
80%
85%
90%
55%
60%
65%
70%
75%
80%
GPQA Diamond(知識)
TAU-Bench Airline(工具呼叫)
DeepSeek:GPQA 90.2%,TAU 81.3%
第一方
NextBit:GPQA 89.9%,TAU 76.6%
Alibaba Cloud Int.:GPQA 89.4%,TAU 76.8%
SiliconFlow:GPQA 90.0%,TAU 75.4%
NovitaAI:GPQA 89.3%,TAU 76.0%
Ionstream:GPQA 87.2%,TAU 78.0%
GMICloud:GPQA 89.0%,TAU 75.8%
Reka AI:GPQA 89.1%,TAU 75.4%
Parasail:GPQA 89.0%,TAU 75.4%
Baidu Qianfan:GPQA 89.6%,TAU 74.8%
Cloudflare:GPQA 88.4%,TAU 75.0%
CoreWeave:GPQA 87.1%,TAU 76.0%
DeepInfra:GPQA 89.2%,TAU 73.9%
StreamLake:GPQA 87.8%,TAU 74.9%
Phala:GPQA 88.2%,TAU 74.5%
Inceptron:GPQA 87.9%,TAU 74.1%
AtlasCloud:GPQA 88.3%,TAU 73.6%
Together:GPQA 86.9%,TAU 75.0%
Decart:GPQA 87.9%,TAU 73.3%
Venice:GPQA 86.8%,TAU 74.2%
AkashML:GPQA 88.5%,TAU 72.5%
Morph:GPQA 85.8%,TAU 74.9%
Wafer:GPQA 84.1%,TAU 76.0%
Ambient:GPQA 86.4%,TAU 73.5%
Relace:GPQA 87.2%,TAU 71.7%
Io Net:GPQA 84.1%,TAU 74.5%
Makora:GPQA 86.9%,TAU 71.7%
Mancer:GPQA 85.5%,TAU 70.8%
Sail Research:GPQA 70.8%,TAU 75.2%
OpenInference:GPQA 70.5%,TAU 70.8%
Nebius:GPQA 75.6%,TAU 65.3%
DigitalOcean:GPQA 75.3%,TAU 58.4%
OpenRouter 的 deepseek/deepseek-v4-flash-0731 各供應商排行榜,2026-09-07。採 32 天滾動平均;將游標移到點上可查看名稱。

第一方 DeepSeek:GPQA 90%、TAU 81%。DigitalOcean 使用相同權重,卻只有 75% 和 58%。多數託管商在工具呼叫上比第一方低 5 至 7 個百分點,另有四家在知識測試上直接崩跌。對代理而言,TAU 才是重要指標,而 20 個百分點的差距絕不是雜訊。(七月時更糟:Fireworks 的 TAU 只有 46%,落後 30 個百分點。)

在信任某家供應商之前,先查看最接近你實際工作負載的基準測試;切換模型時也要重新檢查,因為同一批供應商在 GLM-5.3 上的表現完全不同。

2. 視覺模型可能遇上「看不見」的供應商

我注意到圖片任務出現一些奇怪的非確定性行為,因此把相同的三張小圖片(一個字母、單一純色、彩色背景上的單字)送到兩個開放視覺模型的每一家託管商:

Qwen3.5 122B,2026-07-31
字母 K
純紅色
紫色背景上的單字
DeepInfra
✗ 誤讀為 R/I
✗ 說是藍色
✗ 回答「funny,淺藍色」
Alibaba



AtlasCloud



Novita



SiliconFlow



MiniMax M3,2026-07-31
字母
單字
顏色
Venice
✗「未提供圖片」
✗ 同上
✗ 同上
Together
✗「未提供圖片」
✗ 同上
✗ 同上
其他供應商(包括第一方)


✗ 全部辨識成錯誤色調
各託管商結果記錄於 2026-07-31。MiniMax 的顏色辨識在所有供應商(包括第一方)都失敗,因此這是模型本身,而非供應商的問題。

DeepInfra 的 Qwen 端點把 K 看成 R、把紅色說成藍色,還把「umbrella」描述成「funny」;同一權重在另外四家託管商上卻全部答對。Venice 和 Together 完全看不到 MiniMax 圖片。模型頁面聲稱支援圖片輸入,但其中兩家供應商其實不支援;更糟的是,它們還會假裝一切正常並回傳 200 OK。

3. 對某些供應商而言,effort 旋鈕只是裝飾

所有地方都接受 reasoning.effort,但它是否真的有效,取決於模型與供應商。我固定使用每一家提供 DeepSeek V4 Flash 0731 的供應商,從生產環境機器以 low、high、max 三種設定傳送相同提示詞,每種各執行三次。以下是輸出的推理 token 數:

DeepSeek V4 Flash 0731 經由 OpenRouter,2026-09-07:effort 真的有效嗎?
0
500
1000
1500
2000
alibaba
atlas-cloud
baseten
cloudflare
coreweave
deepinfra
digitalocean
gmicloud
mancer
morph
nextbit
novita
open-inference
parasail
phala
reka
relace
sail-research
siliconflow
streamlake
together
venice
wafer
每次呼叫的推理 token 數;相同提示詞、固定供應商,每種 effort 各呼叫 3 次。● low ● high ● max
DeepSeek V4 Flash 0731:多數供應商會遵守設定,但請看看 digitalocean、gmi-cloud、mancer 和 venice。

請針對每一家供應商追蹤你的 effort 設定實際產生了多少推理 token。

4. 量化篩選並不能替你換來品質

OpenRouter 允許依供應商宣稱的精度進行篩選,例如 quantizations: ["fp8"](而非 fp4)。直覺上,位元越少,模型就越笨。我曾在 DeepSeek 上使用這個篩選條件一個月,之後把各供應商基準排行榜與各家自行宣告的精度並排比較:

DeepSeek V4 Flash 0731:依宣告量化方式區分的 GPQA Diamond
fp4(5 家)
Reka AI:89.1%
Inceptron:87.9%
AtlasCloud:88.3%
Relace:87.2%
Sail Research:70.8%
fp8(11 家)
Baseten:88.0%
NextBit:89.9%
SiliconFlow:90.0%
NovitaAI:89.3%
GMICloud:89.0%
Parasail:89.0%
Baidu Qianfan:89.6%
CoreWeave:87.1%
DeepInfra:89.2%
StreamLake:87.8%
OpenInference:70.5%
bf16(1 家)
Morph:85.8%
未知(10 家)
Fireworks:88.9%
DeepSeek:90.2%
Alibaba Cloud Int.:89.4%
Cloudflare:88.4%
Phala:88.2%
Together:86.9%
Venice:86.8%
Wafer:84.1%
Makora:86.9%
DigitalOcean:75.3%
45%
55%
65%
75%
85%
95%
DeepSeek V4 Flash 0731:依宣告量化方式區分的 TAU-Bench Airline
fp4(5 家)
Reka AI:75.4%
Inceptron:74.1%
AtlasCloud:73.6%
Relace:71.7%
Sail Research:75.2%
fp8(10 家)
NextBit:76.6%
SiliconFlow:75.4%
NovitaAI:76.0%
GMICloud:75.8%
Parasail:75.4%
Baidu Qianfan:74.8%
CoreWeave:76.0%
DeepInfra:73.9%
StreamLake:74.9%
OpenInference:70.8%
bf16(1 家)
Morph:74.9%
未知(9 家)
DeepSeek:81.3%
Alibaba Cloud Int.:76.8%
Cloudflare:75.0%
Phala:74.5%
Together:75.0%
Venice:74.2%
Wafer:76.0%
Makora:71.7%
DigitalOcean:58.4%
55%
65%
75%
85%
95%
GLM 5.3 Flash:依宣告量化方式區分的 GPQA Diamond
fp4(1 家)
DeepInfra:87.3%
fp8(14 家)
CoreWeave:85.1%
Baseten:84.3%
Z.ai:87.0%
Parasail:85.8%
NextBit:85.9%
StreamLake:88.2%
NovitaAI:85.5%
GMICloud:85.7%
Modal:83.0%
SiliconFlow:83.3%
Reka AI:86.7%
Morph:84.6%
io.net:73.6%
Sail Research:50.7%
bf16(0 家)
未知(8 家)
DigitalOcean:89.6%
Together:86.4%
Makora:78.0%
Venice:89.0%
Fireworks:86.1%
Friendli:84.4%
Wafer:90.2%
Cloudflare:84.4%
45%
55%
65%
75%
85%
95%
GLM 5.3 Flash:依宣告量化方式區分的 TAU-Bench Airline
fp4(1 家)
DeepInfra:73.3%
fp8(9 家)
Z.ai:73.2%
Parasail:74.0%
NextBit:70.3%
StreamLake:76.0%
NovitaAI:77.9%
GMICloud:75.5%
Modal:78.6%
Reka AI:75.0%
Morph:74.7%
bf16(0 家)
未知(7 家)
DigitalOcean:73.3%
Together:75.0%
Venice:74.2%
Fireworks:73.9%
Friendli:74.8%
Wafer:80.0%
Cloudflare:74.6%
55%
65%
75%
85%
95%
每個點代表一家供應商。排行榜分數與宣告的量化方式皆取自 OpenRouter,日期為 2026-09-07。當天有出現在排行榜、卻未出現在端點清單中的供應商(DeepSeek 7 家、GLM 1 家)未列入。

fp4 託管商的成績落在 fp8 群體中段。DeepSeek 的三個最差 GPQA 成績分別來自 fp4、fp8,以及一家未宣告精度的供應商。GLM 在兩項基準測試中表現最佳的 Wafer,根本沒有宣告精度。精度不是品質的可靠替代指標;硬性篩選還會縮小 OpenRouter 在供應商故障時可切換的備援池。應該依排行榜篩選,而不是依位元數。

5. 工具呼叫藏在文字裡

理想情況是:模型以某種標記格式輸出呼叫,供應商的解析器把它轉成結構化工具呼叫,接著我的程式碼執行它。但有時解析器會漏掉,回覆就會變成這樣:

<use_skills><parameters>{"skills":["search"]}</parameters></use_skills>

而且不同供應商發生的頻率差異非常大。

你會頻繁、頑固地碰到這種情況,最後不得不在自己這端開始解析。需要以相反方式處理的情況有兩種:被標記包住的工具呼叫,以及被完整或部分標記包住的一般回覆。如果想看我針對 DeepSeek/GLM 寫的一些解析範例,可以讓你的代理參考 github.com/0xmmo/190proof

6. 200 OK,卻沒有答案

推理模型有時會把所有內容都放進 reasoning 欄位,然後回傳 content: nullfinish_reason: "stop"。用了 345 個 completion token、HTTP 200,卻沒有任何東西能顯示給使用者。

200 只表示請求已被服務,不代表回覆裡真的有答案。若沒有 content、也沒有工具呼叫,就應視為失敗,丟出錯誤並重試。

7. 空殼 completion

這和上一種情況相關,但不完全相同。有些端點會回傳 200,同時 content 為 null、reasoning 為 null,甚至連 usage 物件都沒有。七月時,DeepSeek 上的 StreamLake 就是如此:它約占我的流量 20%,卻占空白 completion 的 92%。一個月後,Together 在 DeepSeek 0731 checkpoint 上也出現同樣問題。

8. 相同模型,不同的歷史訊息規則

DeepSeek 在思考模式下會輸出 reasoning_content 區塊。在代理迴圈中,模型常會在推理內容為空時呼叫工具。如果你把這段空白的推理歷史傳回 OpenRouter,而請求被路由到例如 SiliconFlow,它會回傳 400、錯誤碼 20015:「The reasoning_content in the thinking mode must be passed back to the API」(思考模式中的 reasoning_content 必須傳回 API)。Baidu、Alibaba 和 Cloudflare 卻能毫無異議地接受完全相同的歷史訊息。

所以,這份契約不是以模型為單位,而是以供應商為單位。也別以為可以省略工具歷史,否則模型會持續重試同一項任務。只是又多一件要處理的事情罷了。

9. 從生產環境測試,而不是你的筆電

這不只關乎速度與延遲。舉例來說:在我的 Mac 上,Venice 和 Novita 執行 DeepSeek V4 Flash 都非常正常;但從我的基礎設施發出探測請求時,幾乎每次都回傳 429。使用的是同一把金鑰、同一分鐘。我推測它們會依 IP 限流。

請從真正執行生產環境的地方做基準測試;每次少量執行,並採集比你直覺認為所需更多的樣本。

10. 為什麼不乾脆固定單一供應商?

我一度設定 provider.order: [cloudflare, baidu, alibaba],並搭配 allow_fallbacks: false。也就是說,我固定的不是一家,而是三家不同且可靠的供應商。兩週後,Baidu 開始對所有請求限流(429);Cloudflare 被發現已完全不再提供那個模型;於是 100% 的流量都落到 Alibaba,接著 Alibaba 也開始回傳 429。OpenRouter 排名第一的模型(DeepSeek V4 Flash)固定到三家最可靠的供應商後,現在整個服務仍然掛了,Olly 也一起掛了。

祝你狩獵愉快。

Hacker News 網友反應整理

討論來源:So you want to use OpenRouter?|Hacker News(整理時顯示 724 points、194 則留言)

整體風向

多數有實際使用經驗的留言者認為,文章描述的供應商差異與不穩定問題確實存在,而且通常比預期嚴重。常見案例包括工具呼叫失敗、回覆中斷、空白 completion、推理內容洩漏到一般對話、圖片輸入失效、嚴重降速,以及同一模型在不同供應商間表現大幅波動。不少人表示,這篇文章終於解釋了先前被誤認為是模型、提示詞或應用程式本身造成的異常。

但討論並非一面倒否定 OpenRouter。另一派認為,OpenRouter 的核心價值本來就不是保證所有供應商完全等價,而是提供統一 API、單一餘額、集中式紀錄與政策管理,以及快速切換模型與供應商的能力。對個人開發、模型探索和快速基準測試而言,這些便利仍很有吸引力。

主要爭論:OpenRouter 應該只是介面,還是品質把關者?

網友分享的實務問題

  1. 固定供應商仍是主流做法
  1. 快取會顯著影響成本
  1. 問題不只來自權重量化
  1. 視覺模型比純文字更容易踩雷
  1. 速度、上線率與品質不能分開看

社群提出的生產環境做法

OpenRouter 團隊的回應

OpenRouter 共同創辦人兼營運長 Chris Clark(HN 帳號 numlocked)加入討論,表示團隊同時追求兩個有時互相衝突的目標:一方面讓大量供應商的容量能「直接運作」,另一方面保留價格、效能、資料政策、地區與硬體等多樣選擇。

團隊回覆的重點包括:

文章作者則回覆,OpenRouter 對其業務不可或缺;本文原意是提供技術參考,而不是全面否定服務。OpenRouter 團隊也表示,這類具體測試結果對改善路由非常有價值。

其他延伸討論

小結

社群最接近共識的結論是:OpenRouter 很適合統一存取、快速試驗與集中管理,但生產使用者仍必須把供應商視為會變動的獨立執行環境,而不是完全可互換的商品。真正可靠的做法不是只選模型,而是持續評估整個「模型、供應商、推論框架與參數」組合。

Exit mobile version