選擇中轉
怎麼檢測 Claude 中轉有沒有摻水
「純血」「滿血」誰都能寫在首頁上。這一頁講怎麼自己驗證一個中轉背後是不是 Anthropic 官方:哪些方法靠不住,哪些訊號造不了假,以及一個可以直接跑的檢測腳本。它對任何中轉都適用,包括 CoreCode。
- 問模型「你是什麼模型」證明不了什麼:系統提示一句話就能讓任何模型自稱 Claude。
- 能驗證的是三種行為:Anthropic Messages 的回應格式,提示快取寫入後能讀回,以及被改過的思考簽名會被拒絕。
- Anthropic 文件寫明,思考區塊的簽名被篡改或無法解密時,API 一律回傳 400。
- 檢測腳本 check-relay.py 只用 Python 標準函式庫,跑一次花幾美分。
- 它能證明上游是 Anthropic,不能證明答你的是你選的那一檔模型。
- 型號由 CoreCode 每 3 天用開源的 ModelTrace 指紋檢測一次,結果和原始資料公開在本頁。
常見的摻水方式
- 換模型。你選 Opus,實際答你的是更便宜的 Sonnet、Haiku,或者別家的模型。
- 不走官方 API。上游是網頁版或客戶端的逆向介面,上下文被截短,工具呼叫和快取不完整。
- 用量自己算。回傳的 token 數和快取數是中轉按自己的規則填的,不是 Anthropic 給的,帳單因此對不上。
這幾種方式都能正常聊天、正常寫程式碼,只靠日常使用很難察覺。
為什麼問「你是什麼模型」沒用
模型對自己身份的回答來自訓練資料和系統提示,不是一個可靠的事實來源。中轉可以在系統提示裡寫一句「你是 Claude Opus」,任何模型都會照著說;真的 Claude 也可能說錯自己的版本號。所以「問身份」「問知識截止日期」「看回覆的語氣」都只能當參考,不能當證據。
可靠的辦法是找 Anthropic 官方 API 才有、而且別人仿造不了的行為。
三個造不了假的訊號
一、回應格式與用量欄位
官方 Messages 介面回傳 type: "message",id 以 msg_ 開頭,usage 裡有 input_tokens、output_tokens,用快取時還有 cache_creation_input_tokens 和 cache_read_input_tokens。把別家模型轉成這個格式不難,所以這一項只能篩掉最粗糙的轉換,是後兩項的前提。
二、提示快取能寫進去,也能讀出來
發一段近兩萬 token、帶 cache_control 的系統提示,第一次應當看到 cache_creation_input_tokens,緊接著發同樣的請求,應當看到差不多同樣多的 cache_read_input_tokens。這兩個欄位的含義見 Anthropic 的 提示快取文件。
- 兩次都是 0:上游不支援 Anthropic 的提示快取,或者用量是中轉自己算的。
- 寫入了但一直讀不到:請求很可能每次落在不同帳號上。上游也許是真的,但快取幾乎不會命中,Claude Code 的花費會高很多,原因見 快取與計費。
三、思考區塊的簽名
開啟擴展思考時,Anthropic 給每個思考區塊附一個加密簽名 signature。下一輪把思考區塊原樣傳回去時,官方 API 會驗證這個簽名,被改過就以 400 拒絕。別家模型生成不出能通過驗證的簽名,轉換層也沒有 Anthropic 的金鑰來驗證它。Anthropic 文件的說法是:API 用簽名來驗證思考區塊是由 Claude 生成的(Thinking),被篡改或無法解密的簽名一律回傳 400(Preserved thinking)。
檢測方法:拿到一個帶簽名的思考區塊和工具呼叫,把簽名改掉一個字元傳回去,應當被拒;原樣傳回去,應當通過。改過的簽名也能通過,就說明沒有人在驗證,上游不是 Anthropic。
檢測腳本
上面三項寫成了一個腳本:check-relay.py。只用 Python 3.8+ 標準函式庫,不需要安裝任何套件,金鑰只發給你填的位址。先開啟看一遍再執行。原始碼、測試和問題回饋在 GitHub:CoreCodeAI/claude-relay-check。
curl -fsSLO https://corecode.live/docs/verify/check-relay.py
python3 check-relay.py --base-url https://中轉位址 --key sk-你的金鑰 --model claude-sonnet-5-5
不填 --base-url 和 --key 時,讀環境變數 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN,也就是 Claude Code 正在用的設定。中轉要求 Authorization: Bearer 時加 --bearer。一次檢測大約花幾美分:兩次近兩萬 token 的快取請求,加四次很短的請求。
https://中轉位址/v1/messages model=claude-sonnet-5-5
[PASS] shape Messages 格式正確,回傳模型 claude-sonnet-5-5,輸入 143 token
[PASS] cache 首次寫入 17755 token,第 2 次讀取 17755 token
[PASS] signature 篡改簽名被拒(HTTP 400),原樣回傳通過
結論:三項都像 Anthropic 官方
| 結果 | 含義 |
|---|---|
PASS | 這一項符合 Anthropic 官方 API 的行為。 |
WARN | 有疑點但不能定性,比如快取寫入了卻讀不到。 |
FAIL | 這一項說明上游不是 Anthropic 官方,或者用量不是真實的。退出碼 1。 |
ERROR | 請求本身失敗(連不上、金鑰無效、餘額不足、客戶端被拒),檢測沒有完成,不說明真假。退出碼 2。 |
SKIP | 這個模型不接受思考參數,或者這次自己決定不思考,簽名一項跳過。再跑一次,或換一個模型。 |
403 拒絕。這是客戶端限制,和上游真假無關。在 CoreCode 上檢測,用「Claude 滿血(可外接)」分組的金鑰;「僅限CC」分組的金鑰會被拒。腳本證明不了什麼
- 證明的是「上游是 Anthropic」,不是「上游是你選的那一檔」。Sonnet 生成的思考區塊同樣有合法簽名。檔位要結合回傳的
model欄位、帳單裡逐條記錄的模型和單價,以及複雜任務上的實際表現來判斷。CoreCode 自己的檢測見 定期檢測。 - 只是一次抽樣。中轉可以只在部分時段或部分請求上換模型。過一段時間再跑一次,比只跑一次更有說服力。
- 不衡量穩定性。成功率和延遲要看服務的歷史記錄,比如 CoreCode 的 服務狀態。
判斷型號:CoreCode 的定期檢測
上面三個訊號能證明上游是 Anthropic,判斷不了是哪個型號。型號這一項,我們用開源工具 ModelTrace 定期檢測自己。它讓模型連續寫出幾百個 1 到 355 之間的整數,每個模型偏愛的數字不一樣;ModelTrace 把數字的分布和它收錄的 18 個 GPT、Claude 模型的指紋比對,算出最可能是哪一個。
伺服器每 3 天檢測一次:用一個「Claude 滿血(可外接)」分組的金鑰,每個 Claude 模型測 3 輪,每輪 3 條回答,下表在檢測後自動更新。兩個分組用的是同一批帳號。不從「僅限CC」分組測,是因為它只放行帶 Claude Code 系統提示的請求,而 ModelTrace 的作者說明,這段提示會讓結果偏差很大。
最近一次檢測:2026-11-01 19:17 UTC,每個模型 3 輪,每輪 3 則回答。每條提示和回答都在 2026-11-01.json 裡,可以用 ModelTrace 自己重算。
| 模型 | 有效輪數 | 判為 Claude | 判為該型號 | 最像的型號 |
|---|---|---|---|---|
claude-fable-5-1 | 3 / 3 | 95% | 不在指紋庫 | claude-opus-5-5 |
claude-haiku-5-5 | 3 / 3 | 100% | 100% | claude-haiku-5-5 |
claude-opus-5-5 | 3 / 3 | 100% | 100% | claude-opus-5-5 |
claude-sonnet-5-5 | 3 / 3 | 79% | 78% | claude-sonnet-5-5 |
歷次檢測
| 日期 | claude-fable-5-1 | claude-haiku-5-5 | claude-opus-5-5 | claude-sonnet-5-5 |
|---|---|---|---|---|
| 2026-11-01 | 95% / — | 100% / 100% | 100% / 100% | 79% / 78% |
| 2026-10-31 | 100% / — | 100% / 100% | 100% / 100% | 96% / 79% |
| 2026-10-28 | 100% / — | 100% / 100% | 100% / 100% | 99% / 99% |
儲存格為 判為 Claude / 判為該型號 的平均機率。
怎麼看這張表:
- 結論只在指紋庫的候選裡成立。庫裡沒有的模型也會被歸到最像的那一個。
claude-fable-5-1不在庫裡,「判為該型號」一欄寫「不在指紋庫」,只能看它是不是 Claude。 - 單輪會波動,表裡是 3 輪的平均。2026 年 10 月 28 日第一次試測時,
claude-sonnet-5-5有一輪判為 Claude 的機率只有 63%,同一天另外兩輪都是 100%。 - ModelTrace 的作者也說結果僅供參考。它的 Claude 指紋採集自第三方中轉 OAIPro,不是 Anthropic 官方 API。它補的是簽名檢測說不清的型號問題,替代不了上面三個訊號。
- 可以自己測。開啟 ModelTrace 網頁版,把它給的三條挑戰發給模型,再把回答貼回去;或者在本機執行 ModelTrace,用 API 自動測試填
https://corecode.live和一個「可外接」分組的金鑰。表上方連結的原始資料裡有每條提示和回答,也可以拿去重新打分。
挑中轉時還要看哪些方面,見 Claude Code 中轉站怎麼選。
常見問題
問模型它是什麼模型,能判斷中轉真假嗎?
不能。模型對自己身份的回答來自訓練資料和系統提示,中轉在系統提示裡寫一句就能改,真的 Claude 也可能說錯版本號。要看的是別人仿造不了的行為,見 三個造不了假的訊號。
跑一次檢測要花多少錢?
幾美分:兩次近兩萬 token 的快取請求,加四次很短的請求。
能用它檢測 CoreCode 嗎?
能。用「Claude 滿血(可外接)」分組的金鑰;「僅限CC」分組只接受 Claude Code,腳本的請求會被 403 拒絕,結果是 ERROR,不說明真假。
腳本會把我的金鑰發到哪裡?
只發給你用 --base-url 填的位址,不連線任何其他服務。腳本是公開的,執行前可以先讀一遍。