CoreCode文件

選擇中轉

怎麼檢測 Claude 中轉有沒有摻水

最後更新:

「純血」「滿血」誰都能寫在首頁上。這一頁講怎麼自己驗證一個中轉背後是不是 Anthropic 官方:哪些方法靠不住,哪些訊號造不了假,以及一個可以直接跑的檢測腳本。它對任何中轉都適用,包括 CoreCode。

要點
  • 問模型「你是什麼模型」證明不了什麼:系統提示一句話就能讓任何模型自稱 Claude。
  • 能驗證的是三種行為:Anthropic Messages 的回應格式,提示快取寫入後能讀回,以及被改過的思考簽名會被拒絕。
  • Anthropic 文件寫明,思考區塊的簽名被篡改或無法解密時,API 一律回傳 400。
  • 檢測腳本 check-relay.py 只用 Python 標準函式庫,跑一次花幾美分。
  • 它能證明上游是 Anthropic,不能證明答你的是你選的那一檔模型。
  • 型號由 CoreCode 每 3 天用開源的 ModelTrace 指紋檢測一次,結果和原始資料公開在本頁。

常見的摻水方式

這幾種方式都能正常聊天、正常寫程式碼,只靠日常使用很難察覺。

為什麼問「你是什麼模型」沒用

模型對自己身份的回答來自訓練資料和系統提示,不是一個可靠的事實來源。中轉可以在系統提示裡寫一句「你是 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 的 提示快取文件。

三、思考區塊的簽名

開啟擴展思考時,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這個模型不接受思考參數,或者這次自己決定不思考,簽名一項跳過。再跑一次,或換一個模型。
只接受 Claude Code 的金鑰會報 ERROR有的中轉只放行 Claude Code 客戶端的請求,腳本發的請求會被 403 拒絕。這是客戶端限制,和上游真假無關。在 CoreCode 上檢測,用「Claude 滿血(可外接)」分組的金鑰;「僅限CC」分組的金鑰會被拒。

腳本證明不了什麼

判斷型號: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-13 / 395%不在指紋庫claude-opus-5-5
claude-haiku-5-53 / 3100%100%claude-haiku-5-5
claude-opus-5-53 / 3100%100%claude-opus-5-5
claude-sonnet-5-53 / 379%78%claude-sonnet-5-5

歷次檢測

日期claude-fable-5-1claude-haiku-5-5claude-opus-5-5claude-sonnet-5-5
2026-11-0195% / —100% / 100%100% / 100%79% / 78%
2026-10-31100% / —100% / 100%100% / 100%96% / 79%
2026-10-28100% / —100% / 100%100% / 100%99% / 99%

儲存格為 判為 Claude / 判為該型號 的平均機率。

怎麼看這張表:

挑中轉時還要看哪些方面,見 Claude Code 中轉站怎麼選。

常見問題

問模型它是什麼模型,能判斷中轉真假嗎?

不能。模型對自己身份的回答來自訓練資料和系統提示,中轉在系統提示裡寫一句就能改,真的 Claude 也可能說錯版本號。要看的是別人仿造不了的行為,見 三個造不了假的訊號。

跑一次檢測要花多少錢?

幾美分:兩次近兩萬 token 的快取請求,加四次很短的請求。

能用它檢測 CoreCode 嗎?

能。用「Claude 滿血(可外接)」分組的金鑰;「僅限CC」分組只接受 Claude Code,腳本的請求會被 403 拒絕,結果是 ERROR,不說明真假。

腳本會把我的金鑰發到哪裡?

只發給你用 --base-url 填的位址,不連線任何其他服務。腳本是公開的,執行前可以先讀一遍。

三項都 PASS,就一定是 Opus 嗎?

不一定。Sonnet 生成的思考區塊同樣有合法簽名。檔位要結合回傳的 model 欄位、帳單裡每條請求的模型和單價,以及複雜任務上的實際表現來判斷,見 腳本證明不了什麼。CoreCode 每 3 天用 ModelTrace 檢測一次各模型的型號,見 定期檢測。