这篇文章讲的是一个面向多模型 LLM 网关的智能路由系统:先对 46+ 模型做端到端基准测试,发现速度、价格和智能度并不线性相关;再基于 14 个维度的规则分类器,对用户请求做极快的意图识别,并结合置信度校准、上下文/工具/视觉过滤和分层回退链,自动选择 SIMPLE、MEDIUM、COMPLEX、REASONING 等不同模型。作者强调,单一优化速度或质量都会失败,真正有效的是在延迟、能力、成本和用户留存之间做多目标权衡。
2026 年 4 月 22 日 | BlockRun Engineering
当你需要在 8 个提供商的 55+ 个模型之间路由 AI 请求时,不能只选最便宜的那个,也不能只选最快的那个。我们是吃了苦头才明白这一点的。
这篇文章讲述了我们如何对平台上的每个模型进行 benchmark,发现速度和智能之间的相关性很弱,并构建了一个生产级 routing system:使用 14 个加权维度和 sigmoid confidence calibration,在 1ms 内完成请求分类。
BlockRun 是一个 x402 micropayment gateway。每个 LLM 请求都会经过我们的 proxy,通过链上 USDC payment 完成认证,然后转发到相应的 provider。payment overhead 会给每个请求增加 50-100ms。
我们的用户会设置 model: "auto",并期待我们替他们选出正确的模型。但“正确”对于不同请求有不同的含义:
我们需要一个系统,能够对任意请求进行分类,并实时路由到最优模型。
在构建 router 之前,我们需要 ground truth。我们通过生产环境中的 payment pipeline,对全部 55+ 个模型进行了 benchmark。
Setup: ClawRouter v0.12.47 proxy on localhost
→ BlockRun x402 gateway (Base EVM chain)
→ Provider APIs (OpenAI, Anthropic, Google, xAI, DeepSeek, Moonshot, MiniMax, Z.AI)
Prompts: 3 Python coding tasks (IPv4 validation, LCS algorithm, LRU cache)
2 requests per model per prompt
Config: 256 max tokens, non-streaming, temperature 0.7
Measured: End-to-end wall clock time (includes x402 payment verification)
这不是 synthetic benchmark。每次测量都包含真实用户会经历的完整 payment-verification round trip。
结果显示,最快和最慢的模型之间存在 7 倍差距:
FAST TIER (<1.5s):
xai/grok-4-fast 1,143ms 224 tok/s $0.20/$0.50
xai/grok-3-mini 1,202ms 215 tok/s $0.30/$0.50
google/gemini-2.5-flash 1,238ms 208 tok/s $0.30/$2.50
google/gemini-2.5-pro 1,294ms 198 tok/s $1.25/$10.00
google/gemini-3-flash 1,398ms 183 tok/s $0.50/$3.00
deepseek/deepseek-chat 1,431ms 179 tok/s $0.28/$0.42
MID TIER (1.5-2.5s):
google/gemini-3.1-pro 1,609ms 167 tok/s $2.00/$12.00
moonshot/kimi-k2.5 1,646ms 156 tok/s $0.60/$3.00
anthropic/claude-sonnet 2,110ms 121 tok/s $3.00/$15.00
anthropic/claude-opus 2,139ms 120 tok/s $5.00/$25.00
openai/o3-mini 2,260ms 114 tok/s $1.10/$4.40
SLOW TIER (>3s):
openai/gpt-5.2-pro 3,546ms 73 tok/s $21.00/$168.00
openai/gpt-4o 5,378ms 48 tok/s $2.50/$10.00
openai/gpt-5.4 6,213ms 41 tok/s $2.50/$15.00
openai/gpt-5.3-codex 7,935ms 32 tok/s $1.75/$14.00
这里有两个明显的规律:
单看速度,并不能说明某个模型是否真的能处理你的请求。我们将 latency 数据与 Artificial Analysis Intelligence Index v4.0 分数进行交叉比对(该分数综合了 GPQA、MMLU、MATH、HumanEval 和其他 benchmark):
MODEL LATENCY IQ $/M INPUT
─────────────────────────────────────────────────────
google/gemini-3.1-pro 1,609ms 57 $2.00 ← SWEET SPOT
openai/gpt-5.4 6,213ms 57 $2.50
openai/gpt-5.3-codex 7,935ms 54 $1.75
anthropic/claude-opus-4.6 2,139ms 53 $5.00
anthropic/claude-sonnet-4.6 2,110ms 52 $3.00
google/gemini-3-pro-prev 1,352ms 48 $2.00
moonshot/kimi-k2.5 1,646ms 47 $0.60
google/gemini-3-flash-prev 1,398ms 46 $0.50 ← VALUE SWEET SPOT
xai/grok-4 1,348ms 41 $0.20
xai/grok-4.1-fast 1,244ms 41 $0.20
deepseek/deepseek-chat 1,431ms 32 $0.28
xai/grok-4-fast 1,143ms 23 $0.20
google/gemini-2.5-flash 1,238ms 20 $0.30
将 IQ 与 latency 画在同一张图上后,可以看到一条清晰的 efficiency frontier:
IQ
57 | Gem3.1Pro ·························· GPT-5.4
|
53 | · Opus
52 | · Sonnet
|
48 | Gem3Pro ·
47 | · Kimi
46 | Gem3Flash ·
|
41 | Grok4 ·
|
32 | Grok3 · · DeepSeek
|
23 | GrokFast ·
20 | GemFlash ·
└──────────────────────────────────────────────
1.0 1.5 2.0 2.5 3.0 6.0 8.0
End-to-End Latency (seconds)
这条 frontier 从 Gemini 2.5 Flash(IQ 20,1.2s)一直延伸到 Gemini 3.1 Pro(IQ 57,1.6s)。位于这条线右上方的模型都处于 dominated 状态——你可以从其他模型那里,以更低的 latency 获得同等或更好的质量。
关键洞察是:Gemini 3.1 Pro 用 1/4 的 latency 和更低的成本,达到了 GPT-5.4 相同的 IQ。Claude Sonnet 4.6 以 60% 的价格,几乎达到了 Opus 4.6 的质量。这些 dominated pairing 直接影响了我们的 routing fallback chains。
拿到 benchmark 数据后,我们最初优先优化速度。routing config 里优先使用快速模型:
// v0.12.47 — latency-optimized(已回滚)
COMPLEX: {
primary: "xai/grok-4-0709", // 1,348ms, IQ 41
fallback: [
"xai/grok-4-1-fast-non-reasoning", // 1,244ms, IQ 41
"google/gemini-2.5-flash", // 1,238ms, IQ 20
// ... fast models first
],
}
用户在 24 小时内就开始抱怨了。快速模型会拒绝处理复杂任务,并给出浅层回答。一个 IQ 41 的模型,无论速度多快,都无法可靠地处理 architecture design 或多步 code generation。
经验教训是:在一个多目标系统里,只优化单一指标会产生 failure modes。我们需要同时在速度、质量和成本上进行优化。
router 在选择模型之前,需要先判断当前请求属于哪一类。我们构建了一个基于规则的 classifier,对 14 个加权维度进行打分:
User Prompt → Lowercase + Tokenize
↓
┌──────────────────────────────────┐
│ 14 Dimension Scorers │
│ Each returns score ∈ [-1, 1] │
└──────┬───────────────────────────┘
↓
Weighted Sum (configurable weights)
↓
Tier Boundaries (SIMPLE < 0.0 < MEDIUM < 0.3 < COMPLEX < 0.5 < REASONING)
↓
Sigmoid Confidence Calibration
↓
confidence < 0.7 → AMBIGUOUS → default to MEDIUM
confidence ≥ 0.7 → Classified tier
↓
Tier × Profile → Model Selection
weights 总和为 1.0。加权分数会映射到一条连续轴上,再由 tier boundaries 对该空间进行划分。
每个关键词列表都包含 9 种语言的翻译(EN、ZH、JA、RU、DE、ES、PT、KO、AR)。当中文用户输入“证明这个定理”时,会触发与 “prove this theorem” 相同的 reasoning 分类。
当分数接近边界时,原始 tier 分配可能会比较 ambiguous。我们使用 sigmoid calibration:
confidence = 1 / (1 + exp(-steepness * distance_from_boundary))
其中,steepness = 12,distance_from_boundary 表示该分数到最近 tier boundary 的距离。它会被映射到 [0.5, 1.0] 的 confidence 区间。低于阈值 0.7 时,请求会被分类为 ambiguous,并默认归入 MEDIUM。
还有一条单独的评分路径用于检测 agentic tasks(多步骤、使用 tool、迭代式)。当 agenticScore >= 0.5 时,router 会切换到针对 agentic 优化的 tier configs,优先选择指令遵循能力强的模型(复杂任务使用 Claude Sonnet,简单 tool calls 使用 GPT-4o-mini)。
一旦请求被归类到某个 tier,router 就会从 4 种 routing profiles 中进行选择:
根据我们的 benchmark 数据和用户留存指标进行调优:
SIMPLE → gemini-2.5-flash (1,238ms, IQ 20, 60% retention)
MEDIUM → kimi-k2.5 (1,646ms, IQ 47, strong tool use)
COMPLEX → gemini-3.1-pro (1,609ms, IQ 57, fastest flagship)
REASON → grok-4-1-fast-reasoning (1,454ms, $0.20/$0.50)
极致成本优化,使用免费或近乎免费的模型:
SIMPLE → nvidia/gpt-oss-120b (FREE)
MEDIUM → gemini-2.5-flash-lite ($0.10/$0.40, 1M context)
COMPLEX → gemini-2.5-flash-lite ($0.10/$0.40)
REASON → grok-4-1-fast-reasoning ($0.20/$0.50)
不计成本,追求最佳质量:
SIMPLE → kimi-k2.5 ($0.60/$3.00)
MEDIUM → gpt-5.3-codex ($1.75/$14.00, 400K context)
COMPLEX → claude-opus-4.6 ($5.00/$25.00)
REASON → claude-sonnet-4.6 ($3.00/$15.00)
每个 tier config 都包含一个有序的 fallback list。当 primary 模型返回 402(payment failed)、429(rate limited)或 5xx 时,proxy 会沿着 fallback chain 依次尝试。fallback 的排序是基于 benchmark 得出的:
// COMPLEX tier — quality-first fallback order
fallback: [
"google/gemini-3-pro-preview", // IQ 48, 1,352ms
"google/gemini-3-flash-preview", // IQ 46, 1,398ms
"xai/grok-4-0709", // IQ 41, 1,348ms
"google/gemini-2.5-pro", // 1,294ms
"anthropic/claude-sonnet-4.6", // IQ 52, 2,110ms
"deepseek/deepseek-chat", // IQ 32, 1,431ms
"google/gemini-2.5-flash", // IQ 20, 1,238ms
"openai/gpt-5.4", // IQ 57, 6,213ms — last resort
];
这条 chain 会先按质量下降的顺序排列(IQ 48 → 46 → 41),然后再用质量换取速度。GPT-5.4 虽然 IQ 达到 57,但仍然排在最后,因为它 6.2s 的 latency 会带来最糟糕的用户体验。
fallback chain 会在运行时根据请求属性进行过滤:
如果过滤后所有候选都被移除,就会回退到完整 chain(让 API 报错也比什么都不返回更好)。
每个 routing decision 都会给出相对于基线(Claude Opus 4.6 定价)的 cost estimate 和 savings percentage:
savings = max(0, (opusCost - routedCost) / opusCost);
对于一个典型的 SIMPLE 请求(500 个输入 token,256 个输出 token):
在我们的用户群中,相比把所有请求都路由到 premium model,median savings rate 为 85%。
整个 classification pipeline(14 个维度 + tier mapping + model selection)的运行时间不到 1ms。没有外部 API 调用,没有 LLM inference,纯粹依靠关键词匹配和算术运算。
我们最初设计的是一个两阶段系统:当基于规则的分类置信度较低时,会回退到一个 LLM classifier(Gemini 2.5 Flash)。但在实际中,这套规则已经能以高置信度处理 70-80% 的请求,剩余的模糊情况则默认归入 MEDIUM——这是一个正确且保守的选择。
- 原文链接: x.com/cheetah_x0/status/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!