目录

你的 Claude Code 中转,是真 Opus 还是偷偷换了小模型?——一套同时段官方基线盲测的思路

起因

上一篇填完 claude code 连自建网关的坑之后,我一直被另一个更根本的问题困扰:

我通过中转(或者自建网关背后接的那家上游)拿到的 claude-opus,真的是官方的 opus 吗?

用久了会有种模糊的体感:同一个模型名,有时候聪明、有时候明显变笨;高峰期尤其可疑。但体感不能当证据。中转商在后台把 opus 悄悄路由到 sonnet、甚至 haiku,或者套一层别的后端,你在客户端是看不见的——返回的 model 字段照样写着你请求的那个名字。

于是我花了段时间做了一套测法,专门回答这个问题。这篇讲思路,不卖东西——具体能不能落地、哪些地方靠谱哪些地方不靠谱,我尽量都讲清楚。

一个反直觉的坑:测一次、看一个分,没用

最容易想到的做法是:写个脚本打一发,测测延迟、看看回答质量,打个分。

这条路基本是死的,原因有两个:

  1. 绝对分没有意义。 延迟、缓存命中、流式粒度这些信号,全都强依赖你当时的网络、账号、上游策略。同一家中转,你在早上和晚高峰测,数字能差出一截。拿一个孤立的绝对值去下结论,等于拿体温计量室温。
  2. 降级是间歇的。 真要换模型,聪明的做法是高峰期才换、或者按比例抽着换。你单测一发正好没撞上,就误判成"没问题"。

所以单点测量天生抓不到这件事。唯一靠谱的参照系,是在同一个时刻,让候选通道和官方基线并排跑同一组题——把时段、网络这些共同变量抵消掉,剩下的差异才归因得到"这家中转本身"。

思路:把候选和官方塞进同一个时刻

核心动作就一句话:同一时刻、同一组 prompt、同一层抓包,候选通道和官方 CLI 基线并行跑,然后量它们的差异,而不是量绝对值。

拆开说:

  • 同一组 prompt。 所有被测通道和官方基线收到逐字节相同的题(提前锁定,不让随机性掺进来)。
  • 同一层抓包。 请求都从一个透明代理(我用的是 mitmproxy)穿过去,在传输层记录 token 用量、SSE 事件到达时刻、上游指纹这些客户端平时看不到的东西。
  • 官方基线同跑。 每组测试里,除了候选,还有一路直连官方(或已知可信的官方口)在同一时刻跑同样的题,作为对照系。

因为有了同时刻的对照,最后给出的是相对相似度——“这家中转和官方在哪些维度对得上、哪些对不上”,而不是一个飘忽的绝对分。

差异藏在哪:几个能被抓到的信号

同名不同"物",会在这些地方露馅。这里只讲机制,具体到某家某次差在哪,得看逐维证据,不能凭一个总分拍板。

档位思考量。 这是我觉得最硬的一个信号。给一道需要动脑的题(比如精确数数),让模型带 thinking 跑,然后看它这一步烧了多少 thinking token。opus 档想得多、密度高;sonnet、haiku 明显更省。如果你请求的是 opus,某一步的思考量却断崖式地掉到 haiku 的量级,这就很值得警觉。

是不是真流式。 真流式是逐字(逐 chunk)吐出来的;有的中转/包装层是攒齐了整段、再一次性回吐给你,制造"在流式"的假象,甚至中途截断。在抓包层把每个 chunk 的到达时刻记下来,真假流式的时间曲线长得完全不一样。

知识截止与事实召回漂移。 换了后端,模型的知识截止、对某些事实的召回、身份指纹,往往会跟官方基线对不上。单看一次可能是偶然,持续对不上通常意味着上游被动过手脚。

缓存行为。 官方对重复前缀有稳定的缓存命中特征,包装层经常把这套语义弄丢或弄乱。

一个必须讲清楚的边界:差异 ≠ 掺假

这是我最想强调、也最容易被人误读的地方:

上面这些差异,任何一条单独出现,都不足以断定"这家一定在掺假"。

上游本身不稳、临时被限流、赶上一次真实的临时降级,都会造成差异。所以我这套东西只给相对相似度分,不给"真假"的定性结论。分数低,可能是真降级,也可能只是上游那阵子抖。样本太少时,结论更不稳。

正确的读法是:把总分当成一个"值得注意"的信号,然后点进逐维证据去看——到底是档位思考量对不上,还是流式假,还是知识漂移。逐维证据比一个孤零零的总分靠谱得多。判断留给你自己。

你自己怎么快速自查

不装任何东西,手动也能做几件事:

  1. 同一道数数/推理题,反复问几次,看思考量稳不稳。 如果同样的题,思考量时高时低、有时候低到不像这个档位,留个心眼。
  2. 看是不是真流式。 观察输出是逐字冒出来的,还是憋一下、整段蹦出来的。
  3. 问知识截止、问身份,跟官方口径对一对。

我正在把这套自查做成一个开源的 relay 自检 CLI:填自己的中转地址和模型,本地跑几个透明探针,输出一份报告,不强制你上传任何东西。做好会单独发一篇。

懒得自己折腾的,可以直接看我跑着的那个站的长期数据(下面披露)。

利益披露

把话说在前头,免得被当成软文:

这套方法我做成了一个在线站 rpdiagdiag.relaypulse.top),常年在跑,累计几千次盲测,每次候选和官方基线的逐维差异都公开可查。

靠被测的中转商赞助运营——但赞助不参与评分、也不改排序,榜按综合分排,权重表和每一次调整都在 git 里公开。它是一台质量差异仪表,不是返佣导航,也不替你做购买决策:只测"像不像官方基线",不测价格、不给"该买谁"的结论。

我把这层关系摊开写,是因为一个"中转检测站"最该被审视的就是它自己的立场。你完全可以带着怀疑去看它的方法和数据,这本来就是它该经得起的。

TL;DR

  • 想知道中转是不是真模型,测一次、看一个绝对分是没用的——降级是间歇的,绝对值又被网络时段污染。
  • 唯一靠谱的做法:同一时刻,候选和官方基线并排跑同一组题,量差异而不是量绝对值。
  • 最硬的信号是档位思考量(同一道题的 thinking token 量断崖式下掉);此外还有假流式、知识漂移、缓存行为。
  • 差异不等于掺假:上游抖动/限流/临时降级都会造成差异。只给相对分,逐维看证据,结论自己下。