FAQ
检测原理、评分规则、隐私与成本
基础
›什么是 AI API 中转站?
第三方搭建的转发服务:你把请求发给它,它转发给 Anthropic / OpenAI / Google 官方再把结果返回。常见理由是国内直连、批发价更便宜、一个 key 用多家模型。风险是它可以在中间改任何东西——换更便宜的模型、剥掉高级能力、注入自己的 system prompt、虚报用量。
›中转站常见的作假手段?
① 用便宜模型冒充贵模型(Sonnet 冒充 Opus,甚至用国产模型冒充 GPT);② 走 OpenAI 兼容层再转成 Claude 协议,导致 thinking、PDF、预填充、stop_sequences 这些 Claude 原生能力丢失;③ 用逆向渠道(Kiro、Amazon Q、Copilot 等)而非官方 API,签名缺失、随时被封;④ 注入隐藏指令引导模型推广或改变行为;⑤ 把 200k 上下文截断成 32k;⑥ 虚报 input_tokens 多扣费。
›问模型「你是谁」能判断真伪吗?
不能。任何现代模型都能被 system prompt 教会自称 Claude。要看模型自己无法控制的东西:服务端签名、协议字段形状、logprobs、usage 明细这些由 API 层生成的指纹。
Claude 检测
›thinking signature 是什么,为什么不能伪造?
Claude 开启 extended thinking 后,每个 thinking 块带一个由 Anthropic 服务端签发的 signature(几百到两千字符的 base64)。多轮对话回传时官方会验证这个签名,篡改任何一个字符都会被 400 拒绝。中转站没有 Anthropic 的私钥,无法生成合法签名;如果它把篡改后的签名也放行,说明上游根本没做校验——不是官方。本站标准模式会做「原样回传 + 篡改回传」两次验证,这一项占 25% 权重。
›「预填充」检测是什么?
Claude 支持在 messages 末尾放一条 assistant 消息让模型续写,这是 Claude 独有特性。经 OpenAI 兼容层转换的中转站通常会把它当成普通历史消息,模型会重新输出完整内容而不是续写。注意:Claude 5 代(Opus 5 / Sonnet 5 / Fable 5)官方已移除预填充,这一项会自动跳过不计分。
›Claude 5 代模型检测有什么不同?
三处:① 不再接受 thinking.type=enabled,改用 adaptive + output_config.effort,模型自行决定是否思考,所以签名探针用一道必须推理的题来逼出 thinking 块;② 官方移除了 assistant 预填充,该项跳过;③ 标准 API 拒绝 temperature 参数。引擎对这三处都会自动适配,报告里会注明。
›「号池改写对话历史」是什么意思?
很多 Claude 中转站用多个订阅账号组成号池轮换。账号 A 签发的 thinking 签名回传到账号 B 会被官方拒绝,所以号池必须在转发前剥掉或替换历史里的 thinking 块——结果就是我们把篡改后的签名回传它也照样 200。这种站首轮签名是官方形态(上游大概率是真官方账号),但签名验证链在中转站断了,报告判为「存在风险」而非「伪造」。逆向渠道则是签名形态本身就不对(不以 E 开头、长度不足)。
›「模拟 Claude Code 客户端」是什么?什么时候勾?
越来越多中转站把真官方号池放进「仅限 Claude Code 调用」的分组,普通 API 请求会被拒(报错含「请使用标准 Claude Code 客户端」)。勾选后我们会以 Claude Code CLI 的方式发请求:claude-cli User-Agent、x-app: cli、anthropic-beta 里的 claude-code 标记、SDK 指纹头、以「You are Claude Code…」开头的 system 块和 metadata.user_id。检测逻辑不变,只是 token 基线和隐藏指令探针会扣除我们自己带的这句前缀。不需要时不要勾——它会让报告里多一句你没写的 system prompt。
›Prompt Caching 探针测什么?为什么重要?
连发两次带 cache_control 的长 system prompt:第一次官方会返回 cache_creation_input_tokens,第二次返回 cache_read_input_tokens。中转站如果剥掉了 cache_control,或在多个上游之间轮询导致缓存对不上,两次都会按全价计费——Claude Code 这类长会话场景的真实花费会高出数倍。这一项目前只有本站在测。OpenAI 侧对应检测 prompt_tokens_details.cached_tokens。
›「stop_sequences 未生效」说明什么?
中转站在转发时对请求体做了字段白名单,不认识的参数被丢掉。这类站通常也会改写 usage、剥离 thinking 历史,属于「非原样透传」的信号之一。
›为什么 input_tokens 能看出注入?
「Reply with exactly: OK」这句话官方计费约 12 个 token。如果返回 80+,说明中转站在你看不到的地方塞了一段 system prompt,而且这段还在按你的钱计费。
OpenAI / Gemini 检测
›怎么发现「Claude 换皮 GPT」?
看 usage:官方 GPT 返回 prompt_tokens / completion_tokens 及 *_details 明细;如果混入 input_tokens、cache_creation_input_tokens 之类的 Anthropic 字段,就是协议转换残留。另外官方 GPT 支持 logprobs,Claude 后端给不出来;strict json_schema 输出若被 ```json 包裹也是转换层的典型症状。
›推理模型为什么检测项不一样?
o 系列 / GPT-5 不接受 temperature、max_tokens,改用 max_completion_tokens 和 reasoning_effort;同时官方必返回 completion_tokens_details.reasoning_tokens,缺失即可疑。
›Grok 中转站的 token 用量为什么偏高?
实测多家中转的 Grok 4.x 对一句话提示都计了 190–640 个 prompt tokens,而且不同站点数值接近,更像 xAI 把内置系统提示计入了用量,而非中转站注入。目前报告仍按「用量异常」提示,待拿到官方对照后会修正规则。
›Gemini 为什么走 OpenAI 兼容路径?
绝大多数中转站只暴露 OpenAI 兼容协议,Gemini 原生 /v1beta/models 路径几乎没人转。本站会先试 /v1beta/openai,404 再试 /v1。
评分与排行
›分数怎么算?
每个检测项 0–100 分,乘以权重求加权平均(跳过项不计)。≥70 通过、50–69 存在风险、<50 未达标;出现任一「严重」失败(无 thinking 签名、协议转换残留、身份错误、注入等)时结论封顶为「存在风险」,无论总分多高。
›排行榜为什么用贝叶斯加权?
为了防止刷单次高分。排名分 = (Σ分数 + 50×5) / (次数 + 5):一次 100 分只有 58.3,十次 99 分才 82.7。样本少于 2 次的域名不参与正式排名,标注「单次样本」沉底。展示给你看的是中位分,更直观。
›同一个中转站为什么不同模型 / 不同次的分数差很多?
常见原因:① 站点按令牌分组走不同渠道(比如 Kiro 逆向池、仅限 Claude Code 的号池、标准 API 池),同一域名下分数天差地别;② 多账号轮询,每次落到不同上游;③ 官方侧的安全分类器偶发拒答。所以站点页同时给出中位分、标准差、结论一致率和各检测项的历史通过率——看波动比看单次分数更重要。
›模型名为什么和我填的不一样?
中转站的模型命名五花八门(claude-haiku-4-5-20251001、claude-sonnet-4.5、grok-4.20-0309-reasoning…)。为了不把同一个模型拆成十个页面,全站按规则归一到主模型名:去掉日期快照、-latest/-thinking/-preview、推理开关等后缀,版本号规范化(4.20→4.2)。报告里保留你填的原始名,鼠标悬停可见。
›报告结果不准怎么办?
每份报告底部有 👍 / 👎;点 👎 可以选原因并留言,检测失败的报告有「反馈问题」按钮,报错原文会自动附上。我们会对照证据排查,误判会修正引擎并重跑。
›收录 / 认证会影响分数吗?
不会。检测分完全由自动探针决定,每份报告都附完整证据(原始字段、状态码、回复原文)可以逐项复核;认证收录只影响目录里的展示信息(名称、官网链接、简介),以及在同分情况下排前面。
隐私与成本
›我的 API key 安全吗?
key 只在检测进程的内存里存在,检测结束即释放;数据库只保存脱敏后的形式(如 sk-ab••••••cd)。仍然建议你专门建一个低额度的测试 key,测完就删——这是对任何第三方工具都应有的习惯。
›检测要花多少钱?
token 由你的 key 承担。快速模式约 2k token;标准模式含 32k 长上下文约 50k token;完整模式含 100k/200k 约 350k token(Opus 官方价约 $5,中转站按其倍率折算)。本站不收费。
›站长授权的监控 key 怎么保存?
AES-256-GCM 加密后入库,只用于每 10 分钟一次、max_tokens=5 的存活探测,单模型每天约 150 次极小请求。建议给一个限额的专用 key。