API中转站评测
← 返回中转站科普

中转站降智怎么检测?5 个自查方法与真伪检测工具

30 秒结论:先分清你在查哪件事。 中文圈说的「降智」其实混着两件完全不同的事:一是官方模型自己在抖(Anthropic 2025 年 9 月公开过一份事故报告,承认三个基础设施 bug 让 Claude 答得更差,最差时段影响了 16% 的 Sonnet 4 请求);二是中转站把你付钱买的模型换成了便宜的(CISPA 的研究团队审计 24 个中转站端点,45.83% 没通过模型身份指纹验证,最极端的一家声称给 GPT-5、实际返回的是 GLM-4-9B)。这两件事的检测方法和处置完全不同,混为一谈的结果是:官方抖动时你骂中转站,中转站掺假时你以为是官方抖动。「我感觉它变笨了」永远不能当证据 —— 模型输出本身有随机性,Anthropic 自己在那份报告里都承认他们跑的评测没抓到用户报的问题。本文给四类你自己能跑的检测:查响应字段(30 秒)→ 用「应该报错的请求」探后端(最硬)→ token 计数指纹(不用官方 key)→ 缓存与长上下文能力探针,外加现成开源工具的用法和代价。先说难听的:这些方法能证明「它换了」,不能证明「它没换」;而且真测出来了,多数站的条款写着不退款。

更新于 2026-08-28 | 本文所有 API 行为断言基于 Anthropic 官方文档,论文数据来自 arXiv:2603.01919,工具信息来自各自的公开仓库;本站未审计任何第三方工具的实现


先分清两件事:官方在抖,还是中转站在换

这是本文最重要的一节,也是绝大多数「降智」讨论一开始就跑偏的地方。

第一件事:官方模型自己会变差,而且是被官方承认过的

2025 年 9 月 17 日,Anthropic 发过一篇工程博客《A postmortem of three recent issues》,逐条交代了 8 月到 9 月初 Claude 输出质量下降的原因 —— 三个基础设施 bug

  1. 上下文窗口路由错误 —— 8 月 31 日最差的那一小时,影响了 16% 的 Sonnet 4 请求
  2. Claude API 的 TPU 服务器配置错误导致输出损坏,影响 Opus 4.1、Opus 4、Sonnet 4;
  3. 一个 XLA:TPU 上 approximate top-k 的编译错误,影响 Claude Haiku 3.5。

这篇报告里有两件事值得每个人记住:

  • Anthropic 明确否认了「高峰期故意限流降级」这个流传很广的猜测 —— 原因是 bug,不是节流;
  • 他们自己跑的评测没有抓到用户报告的退化。理由是 Claude 常常能从孤立的错误里恢复过来,单看评测分数看不出问题。

第二条对你的意义很大:连模型的制造方、拿着完整日志和内部评测的人,都没能第一时间用数据抓到质量下降。你在中转站这一侧、只有黑盒输出,靠「感觉」就更抓不住。

这一类波动,换中转站是解决不了的 —— 上游是同一个上游。

第二件事:中转站把模型换掉了,这是可以被抓住的

2026 年 3 月,CISPA 亥姆霍兹信息安全中心的研究团队发表了论文 《Real Money, Fake Models: Deceptive Model Claims in Shadow APIs》(arXiv:2603.01919)。这是第一次有人系统性审计 AI API 中转站(论文称之为 Shadow API)。他们审计的对象是被 187 篇学术论文引用过的 17 家中转站,核心发现:

发现数字
模型身份指纹验证不通过的端点比例45.83%(24 个端点)
性能差距峰值47.21% —— Gemini-2.5-flash 在 MedQA(美国医师执照考题)上从官方的 83.82% 掉到约 37%
数学推理(AIME 2025)的差距某站的 Gemini-2.5-pro 差 40.00%
法律基准(LegalBench Scalr)的差距各站落后 40.10% ~ 42.73%
17 家里没有可验证运营主体的15 家(88.2%),只有 1 家有有效 ICP 备案
使用者的地理分布82.12% 来自中国大陆

最直观的一个案例:某家声称提供 GPT-5,指纹识别的结果是它实际返回的是 GLM-4-9B-Chat —— 一个参数量小得多的开源模型。

经济账也算了:1,273 次 GPT-5 查询,用户按官方费率付了 $14.84,而实际拿到的 token 价值只有 $5.70 ~ $7.77,中转站每批截留 $7.07 ~ $9.14。

⚠️ 但要读全:论文里也有干净的站 —— 编号 E 的那家在 GPQA 上与官方的平均差距只有 2.64%「45.83%」是端点比例,不是「所有中转站都在骗你」,更不能外推成今天的状况(那次审计做的是 2026 年初的那批站)。

「降智雷达」测的是第一件事,不是第二件

搜「降智」的人很多会搜到「降智雷达」「Codex 雷达」这类东西。按公开介绍,CodexRadar 是社区用户做的 Codex(GPT-5.x 系列)监控平台,「降智雷达」是它的一个功能:每天用一套固定的混合语言编程题集跑基准,量化追踪不同档位模型的表现波动,回答「Codex 今天降智了吗」。

它测的是官方模型自己的波动(用的是官方渠道),不是测你那家中转站有没有换模型。这两件事都值得关心,但别拿它的结论去判断你的中转站 —— 它红了不代表你的站有问题,它绿了也不代表你的站没换模型。

(本站未与该平台核实过它的方法细节与数据来源,以上只作现象记录。)


为什么「我感觉它变笨了」不能当证据

在动手测之前,先接受三件事,否则测出来的东西你也解读不对:

第一,模型输出本身有随机性。 同一个 prompt 问两次,答案就可能一好一坏。单次、甚至几次的主观感受,区分不了「模型变差」和「这次运气不好」。

第二,变的可能是你自己。 上下文变长了、系统提示改过、项目里多了几个文件、你问问题的方式变了 —— 这些都会让输出质量变化,而且它们比「中转站换模型」常见得多。

第三,连官方都抓不住。 见上一节:Anthropic 拿着内部评测都没在第一时间抓到自己的退化。

所以有用的检测只有一种形态:对照。 要么和官方端点对照,要么和同一个站的另一个模型对照,要么和已知的确定性行为对照。下面四个方法,全都是在做对照 —— 区别只是对照的东西不同、成本不同。


方法一:查响应里的四个字段(30 秒,零成本)

这是最便宜的一步,不需要额外调用,你正常用的时候顺手看一眼返回体就行

以 Anthropic 协议为例,一次正常的响应里有这几样东西值得看:

看什么正常应该是不对劲说明什么
idAnthropic 的消息 id 是 msg_ 开头的固定格式格式不对、或者像是随手拼的,说明响应不是原样转发,中间有人重新组装过
model应该回显你请求的那个模型 ID回显的是别的名字,或者永远回显你请求的那个(哪怕你故意写一个不存在的型号也照单全收),都可疑
stop_reason取值来自固定集合:end_turnmax_tokensstop_sequencetool_usepause_turnrefusal出现集合外的值,说明后端不是 Anthropic 协议原生
usage除了 input_tokens / output_tokens,用了缓存时还应有 cache_creation_input_tokenscache_read_input_tokens缓存字段整个缺失(见方法四)

一个 10 秒就能做的小实验请求一个根本不存在的模型名,比如 claude-opus-99

  • 正常的网关会返回一个明确的错误(模型不存在);
  • 如果它照常给了你一段回答,说明它根本没在校验模型名 —— 那你请求的那个真模型名,它也未必真的路由到了那个模型上。

这一步不能证明它没换模型,但能筛掉一批最粗糙的


方法二:用「应该报错的请求」探后端(最硬的一类)

这是本文最值得带走的方法,逻辑和上面所有基于输出内容的方法都不同:它不看模型答得好不好(那有随机性),而是看API 层的行为符不符合官方规则。

原理很简单:新一代 Claude 模型在 API 层删掉了一些老参数,发这些参数会被官方端点直接拒绝(HTTP 400)。 如果一个端点声称自己是这些新模型,那它就应该拒绝。

按 Anthropic 官方文档,下面这些是当前会返回 400 的组合

探针在哪些模型上应该 400
thinking: {"type": "enabled", "budget_tokens": 2000}Claude Fable 5、Opus 5、Opus 4.8、Opus 4.7、Sonnet 5 —— budget_tokens 已被移除
temperature / top_p / top_k同上这批模型 —— 采样参数已被移除
最后一条消息是 assistant(预填)Fable 5、Opus 5、Sonnet 5 以及 4.6 / 4.7 / 4.8 家族 —— 预填已被移除
thinking: {"type": "disabled"}Fable 5 上返回 400(它的思考不能关)

拿最简单的一个试:

curl https://你的中转站/anthropic/v1/messages \
  -H "x-api-key: 你的-key" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 64,
    "temperature": 0.7,
    "messages": [{"role": "user", "content": "hi"}]
  }'

怎么读结果 —— 这一段是全文最需要注意方向的地方:

  • 返回 400,并且错误信息说的就是这个参数不被支持这是强证据:说明你的请求被原样转给了一个真的按 Opus 5 规则校验的后端。这条比任何输出质量对比都硬。
  • 正常返回了一段回答这只是线索,不是证据。有两种解释:① 后端确实不是 Opus 5;② 中转站的网关在中间把不支持的参数过滤掉了再转发 —— 很多网关为了兼容性会这么做,这本身不算作恶。

⚠️ 所以这个方法的方向是单向的:「该报错的报错了」能证明真;「该报错的没报错」不能证明假。 写成结论之前必须想清楚这一点 —— 本站见过太多把单向证据当双向用的判断。

如果你想再进一步:把同一个探针分别打到这家站的不同模型上。一家正经转发的网关,claude-opus-5 会拒、claude-sonnet-4-5(老模型,还支持 temperature)会接受。如果所有模型的行为一模一样,那说明前面有一层统一的兼容层,你看到的不是上游的真实行为。


方法三:token 计数指纹(不需要官方 key)

这个方法的原理是:不同模型家族用的分词器(tokenizer)不同,同一段文本切出来的 token 数就不同。usage.input_tokens 是后端算完给你的。

最实用的形态是横向对比,不需要你有官方 key:

  1. 准备一段固定的文本(几百字,中英文混排效果最明显 —— 中文在不同分词器上的差异比纯英文大得多);
  2. 同一个中转站同一段文本,分别请求 Claude、GPT、以及一个国产模型;
  3. 记下每次返回的 usage.input_tokens

正常情况下这三个数应该互不相同。 如果 Claude 那次和 GPT 那次返回了完全一样的 token 数,那说明这两个「模型」很可能共用同一个分词器 —— 要么后端是同一个东西,要么中间层在用自己的分词器统一记账(后者也意味着你看到的 usage 不是上游的真实值,账单口径存疑)。

Claude 内部还有一层更细的指纹:Anthropic 在 Opus 4.7 上换过一次分词器(Fable 5 与 Opus 4.8 沿用同一套),相对 Opus 4.6 及更早的模型,同一段文本的 token 数会变成约 1 ~ 1.35 倍。所以:

同一段文本,请求 claude-opus-4-6claude-opus-5返回的 input_tokens 本来就应该不一样。如果一模一样,值得追问一句。

如果你手上有官方 key,还有一个更直接的做法:用 Anthropic 官方的 token 计数端点 POST /v1/messages/count_tokens 算出这段文本的官方 token 数,再和中转站返回的 input_tokens 比。

⚠️ 这个方法的两个局限:① 中转站可以自己重算 token 数来对齐(虽然本站没见过有人这么做);② 缓存、system prompt、工具定义都会计入 input_tokens,对比时必须保证这些完全一致,否则你比的是自己的变量。


方法四:缓存和长上下文,两个最容易露馅的能力探针

偷换模型或走非官方渠道时,最先掉的往往不是「智商」,而是功能。下面两个探针成本极低。

探针 A:prompt caching 到底有没有生效

Anthropic 的 prompt caching 需要真正的后端支持。做法是:同一个长前缀连发两次请求,第二次看 usage.cache_read_input_tokens

  • 第一次:cache_creation_input_tokens 应该是个大于零的数(写入缓存);
  • 第二次:cache_read_input_tokens 应该大于零(命中缓存)。

如果两次都是零、或者字段干脆不存在,有两种可能:后端不支持缓存(常见于非官方渠道),或者中转站没有把 cache_control 透传上去。无论哪种,对你的账单都是实打实的影响 —— 缓存命中部分的价格只有正常输入的约十分之一,不生效意味着你在按全价付重复的前缀。

⚠️ 这个探针最容易误判,务必注意最小可缓存的前缀长度是有下限的(随模型不同,512 ~ 4096 token),短于这个长度会静默地不缓存,什么错误都不报。 拿一段两三句话的前缀去测,一定测出「缓存不生效」——那是你的测试写错了,不是站方的问题。测的时候把前缀塞到几千 token 以上。

探针 B:长上下文的「大海捞针」

声称 200K 甚至 1M 上下文的模型,如果后端被换成一个小窗口的模型,或者中间层偷偷截断了你的输入,表现是一样的:长文档的开头部分「记不住」

做法:造一段很长的文本(十万字级别),在最开头埋一句只有你知道的句子(比如「本次测试的暗号是 紫色狒狒 37」),然后在结尾问它暗号是什么。

  • 答得出来 → 至少这个长度上,你的输入是完整送达的;
  • 答不出来 / 报错 / 明显在瞎猜 → 要么被截断了,要么后端窗口没那么大。

其他同类探针(原理一样,都是「功能缺了比智商掉了好抓」):function calling / tool use 能不能正常返回结构化调用、PDF 文档能不能读、结构化输出(JSON schema 约束)能不能守住、流式和非流式的返回内容是否一致。


方法五:现成的开源工具,以及用它们的代价

上面四类方法都能手搓,但已经有人把它们工程化了。本站查到的、方法比较系统的有这么几个:

Veridropgithub.com/canarybyte/veridrop)—— 目前最对口的一个:439 star、AGPL-3.0 协议、Python 实现,支持 CLI 与自托管,也有一个免注册的在线版 veridrop.org。输入 base_url + api_key + model,它对 Claude 协议跑 12 项检测:身份验证、行为签名分析、thinking 签名的密码学校验(项目自述的核心创新)、模型一致性、知识评估、PDF 提取、结构化输出、协议合规、流式与非流式一致性、消息 ID 格式校验、token 用量校验、三档大海捞针的长上下文测试;OpenAI 协议 8 项、Gemini 协议 7 项。项目自述 API key 不落盘、只在内存中存在、报告里做脱敏。

OfoxAI 的「模型验真」ofox.ai/verify/)—— 免登录,5 项探测出一份置信度报告,可选 6 个模型。它的提供方 OfoxAI 自己就是一家中转站,这一点它没有隐瞒,但你要知道。

bashigestudio/apitest —— 另一个中文项目,自述从连通性、模型列表、协议字段合规、数学计算验模型真伪、Usage 字段校验、Function Calling、多次请求一致性等 10 个维度检测。

用这类工具之前,三件事想清楚

第一,它们全都要你交出 API key。 这是绕不开的 —— 要替你发请求就得有 key。唯一正确的用法是:新建一把专用的临时 Key、设一个尽可能低的额度上限(如果那家站支持的话)、测完立刻删除。 别拿你在用的主力 Key 去测,也别拿一把没有额度限制的 Key 去测。

⚠️ 顺带一句本站的观察:很多站建 Key 的时候根本不让你设额度上限 —— 本站最近评的几家里就有只给「名称 + 有效期」两项的。这种站上,一把 Key 泄露等于整个余额暴露,有效期是你唯一的止损开关。

第二,工具的结论要看它是怎么得出来的。 上面这些项目本站都没有审计过实现,只核对了它们公开的仓库信息与自述的检测项。「某工具说这家有问题」不等于「这家有问题」,反过来也一样。把它当线索,自己复验关键的那一两项。

第三,警惕「检测/评测/红黑榜」类站点本身的可信度。 本站在别处查过一个例子:某个中转站导航站的「勿入名单」,所有条目署名同一个账号、验证日期全部是同一天、且不给任何原帖或截图链接,而那一页开头写着「每一条记录都有时间戳和证据」。判据很简单:看它给不给可回溯的出处、看它的条目是不是同一个人同一天批量产出的。


学术界怎么测的:一篇论文和它的四步协议

如果你想知道「严谨地做」是什么样,上面那篇 CISPA 论文给了一套完整的审计协议,四步:

  1. 指纹验证 —— 用 LLMmap 这个主动指纹框架,发至少 24 个精心构造的探针,把响应与参考模型库比对,余弦距离超过基线 1.2 倍就标记
  2. 统计等价性检验 —— 用 Model Equality Testing(MET)至少 500 个样本,显著性水平 α=0.05,统计地检验「这个端点的输出分布是否与官方模型同分布」,拒绝原假设就标记;
  3. 稳定性 —— 至少跑 3 个独立会话,准确率标准差超过 5 个百分点、或延迟变异系数超过 0.15 就标记;
  4. 资质核查 —— 核实 ICP 备案与法律实体披露。

论文还给研究者一份清单:记录端点 URL、声称的模型版本、访问日期和定价,在跑实验前先让端点通过审计协议,并在报告结果时一并给出准确率、LLMmap 距离和 MET 的 p 值。

为什么普通人跑不动:500 个样本 × 若干模型的调用费用、24 个探针需要的参考模型库、以及三个独立会话的时间成本 —— 这是一篇论文的工作量,不是下单前花十分钟能做的事。

但第 4 步你现在就能做,而且它最便宜。 论文自己的数据是最好的注脚:17 家里 15 家(88.2%)没有可验证的运营主体、只有 1 家有有效 ICP 备案。先看这家站敢不敢把自己是谁、货从哪来写出来 —— 本站评过的站里,有的把每个模型走哪家上游都逐条写在公开接口里,有的连公司名都不肯留一个。这一步的信息量,比你花钱跑五百次采样还大。


测出来了,然后呢

先说难听的:多数情况下,你拿不回钱。

本站读过几十家中转站的服务条款,「充值不退款」是常态,最狠的一种在「所有费用均不能退款」之外还加一句「放弃对相关款项的一切追究及/或申索的权利」。所以:

  1. 先保留证据,再去问。 把完整的请求与响应存下来 —— 特别是响应的 idmodelusage、时间戳,以及你的调用日志。注意脱敏,别把 API Key 贴进任何截图或工单。
  2. 问得具体一点。 「你们是不是降智了」很难有结果;「我在 X 时间请求 claude-opus-5,响应 id 是 msg_xxx,usage 里没有缓存字段 / token 数与其他模型完全一致,请解释一下这条请求走的是哪个上游」——这种问法对方要么给你一个解释,要么不回答,两种反应都是信息。
  3. 别为了捞本继续充值。 这是本站在几个暴雷案例里反复看到的模式:发现不对劲之后为了「用完」而继续加钱,最后损失更大。
  4. 换站的时候,把判据前置。 下一家先看三件事:渠道构成公开不公开(能不能查到每个模型走谁家)、运营主体查不查得到条款里的退款和有效期怎么写。这三条都能在充值前查完,比事后检测便宜得多 —— 具体怎么查,看本站的官转和逆向的区别全站对比表

常见问题

「降智」到底是什么意思?

中文圈用它笼统地指「AI 变笨了」,但实际上混着两类完全不同的原因:一是官方模型自身的波动(Anthropic 在 2025 年 9 月公开的事故报告里承认过三个基础设施 bug,最差时段影响 16% 的 Sonnet 4 请求,并否认了「高峰期故意节流」的猜测);二是中转站在后台把你付费购买的模型换成了更便宜的。前者换中转站也解决不了,后者才是可以被抓住、也应该被抓住的。

「降智雷达」能测出我的中转站有没有掺假吗?

不能。 按公开介绍,CodexRadar(社区称「降智雷达」)是社区做的 Codex 监控平台,每天用固定题集跑基准、追踪官方模型自身的表现波动。它测的是上一问里的第一类问题。它红了不代表你的中转站有问题,它绿了也不代表你的中转站没换模型。(本站未与该平台核实方法细节,只作现象记录。)

有没有不花钱、不交 API Key 就能做的检测?

有,但只能做「粗筛」。用你正在用的那把 Key,正常调用时顺手看四个字段:响应 id 的格式(Anthropic 是 msg_ 开头)、model 回显、stop_reason 的取值是否在官方那六个之内、usage 里缓存字段在不在。再加一个 10 秒实验:请求一个不存在的模型名,如果它照样给你回答,说明它根本不校验模型名。这几步筛不掉精心伪装的,但能筛掉最粗糙的一批。

最硬的检测方法是哪个?

用「应该报错的请求」去探后端。 新一代 Claude 模型在 API 层移除了一批老参数——比如 budget_tokenstemperature / top_p / top_k、以及 assistant 预填——发给官方端点会直接返回 400。如果一个端点声称自己是 Opus 5 / Sonnet 5 / Fable 5 这类模型,它就应该拒绝。注意这个证据是单向的:报了 400 能证明请求被原样转给了真后端;没报 400 却不能证明它是假的,因为很多网关会在中间把不支持的参数过滤掉再转发。

测出中转站换了模型,能要求退款吗?

大概率不能。 本站读过几十家中转站的服务条款,「已支付费用不退还」是常态,最严的一种还要求用户「放弃对相关款项的一切追究及申索的权利」。所以正确的顺序是充值前查、而不是出事后测:先看渠道构成公不公开、运营主体查不查得到、条款里退款与额度有效期怎么写。真要维权,先把请求响应的 idmodelusage 和时间戳完整存下来(注意脱敏,别泄露 Key)。

有现成的开源检测工具吗?可靠吗?

有几个。方法比较系统的是 Veridrop(439 star、AGPL-3.0、Python,有自托管与在线版),对 Claude 协议跑 12 项检测,包括 thinking 签名校验、消息 ID 格式、token 用量校验和三档长上下文测试;另有 OfoxAI 的「模型验真」(提供方本身是一家中转站)和 bashigestudio/apitest 等。共同的代价是它们都要你提交 API Key —— 唯一正确的用法是新建一把专用临时 Key、设最低额度、测完立刻删除。本站没有审计过任何一个工具的实现,它们的结论宜作线索,关键项自己复验。

便宜的中转站是不是一定会降智?

不能这么推。价格只是动机,不是证据。 但成本结构确实有指示性:低于官方三折通常意味着渠道不是官方直供(号池、逆向或转手),而这些渠道在上游被限流封堵时更有降级顶包的动机。反过来,原价卖的站也不等于就没问题 —— 判据始终是「渠道构成公不公开、能不能验」,不是「贵不贵」。渠道类型怎么分,看官转和逆向的区别