你用的「便宜 Claude」,真的是 Claude 吗

小岛AI 2026 / 05 / 18

最近有个问题一直在我脑子里转,说出来你可能也有感触。

用 Claude Code 做主力 coding 工具,日常 token 消耗挺大的。官方 API 不便宜,直接买订阅又有各种限制,于是不少人盯上了中转站——价格通常是官方的三到七折,延迟也还算过得去。随手搜一下,各种中转服务排着队,PackyCode、NekoCode、IKunCode、DuckCoding……名字都起得挺硬气。

但有一天我刷到一个开源项目 api-relay-audit,作者 Berry Xia 把这类服务的安全风险整理成了一份检测报告,附带对比了市面上几个检测工具的差异。我把帖子看完以后愣了一下。

不是说中转站有多邪恶,而是那几个攻击类型的名字——AC-1 工具调用改写、AC-2 错误响应泄漏、上下文截断——光这几个词就够让人仔细想想的。

好,我们从头聊起。


我先解释一下我为什么会对这件事这么在意。

Claude Code 的 agent 模式跑复杂任务,会触发大量工具调用,读文件、写文件、执行命令、搜索代码库。每一次工具调用的参数都是模型决策的一部分,模型根据上下文判断「现在应该调用哪个工具,传什么参数」,你在本地执行这个动作,把结果还给模型,模型接着决策。

这个决策链,如果链路上有人在改动其中的某一层,你的 agent 在做什么,你可能并不完全知道。

所以当我看到有人系统性地研究这个问题,我就想认真把它捋一遍。


中转站这个东西,在国内 AI 生态里是个很特殊的物种。

官方 API 需要信用卡,需要境外账户,需要一些门槛。很多程序员没条件直接用,或者不想为了一个月几十块的测试消耗专门搞一套翻墙支付体系,中转站就应运而生了。它的运作模式说起来很简单,中间商持有官方 API key,用户给中间商发请求,中间商转发给 OpenAI 或 Anthropic,拿到响应再返回给用户。整个过程对用户来说看起来和官方没什么区别,换个 base_url,改一下 API key,完事。

价格之所以能低,有几个可能的来源,官方折扣渠道、大客户批量采购、海外低税率落地……当然还有一种可能,就是没那么正规的路子,比方说回收泄漏账号或者共享账号池,这些本来就在灰色地带。

用户端看到的只有响应速度和价格,模型内部发生了什么,黑盒。

这就是问题所在。


「掺水」这个词,hvoy.ai 首页就有这一列,旁边标着各个站点的「掺水率」。最高的几家标着「较少」,意思是还没有被抓到明显的换模型行为。但「较少」本身就挺微妙,不是「没有」,是「较少」。

掺水是什么意思,不展开说都知道,你付的是 Opus 4.7 的钱,回来的是 Haiku 的响应。两个模型在代码生成上的差距,写过稍微复杂一点的任务就知道,不是一点点。

检测掺水这件事,hvoy.ai 和 cctest.ai 都在做,思路大体上是发送测试请求,通过模型的行为特征判断是不是声称的那个版本。cctest.ai 的描述更直接,「黑盒模式,防止对抗,业界最专业的检测方法」,检测 token 使用量是否异常,要发 11 轮请求,预计消耗约 0.3 美元。

这两个工具我没有深入测过,从它们自己的描述看是能解决一部分问题的。但 Berry Xia 在帖子里指出的差距在于,这类平台检测结果的透明度和可审计性不足,你看到一个「掺水率较少」,但你不知道这个数字是怎么算出来的,你没有办法自己验证,你只能信它。

开源的意义在这里就很清楚了,你可以把源码拉下来,看清楚每一步在干什么,测出来的结果你心里有数。


api-relay-audit 用的是「双论文锚定路线」,这个名字初看有点绕,实际上思路挺精妙。

核心逻辑是,不同的大语言模型在训练数据、参数规模、RLHF 对齐方式上都不一样,这些差异会在具体行为上体现出来,包括对特定问题的回答倾向、特定知识点的覆盖情况、甚至特定 token 序列的生成概率分布。两篇论文(大概率是关于模型指纹识别或行为基准测试的研究)提供了可重复、可验证的测试集,把模型的响应和这些基准对比,就能做出相对可靠的三态判定,通过、可疑、失败。

不是拍脑袋的,是有学术依据的,测出来的结果你可以 trace 到具体的判定逻辑。

好家伙,我当时看到「三态判定」这几个字的时候确实觉得有点意思,这比一个绿色的「检测通过」要实在得多。绿色通过谁都会写,对吧,问题是你凭什么相信那个绿。


然后是那两个攻击类型。

AC-1,工具调用改写。

工具调用(tool use / function calling)是现在很多 agentic 应用的核心能力,你让模型决定调用哪个工具、传什么参数,模型返回一个结构化的 JSON,然后你在本地执行,把结果塞回去继续对话。整个流程里,你发出去的上下文和工具定义,返回来的工具调用参数,中转站都是可以看到的。

AC-1 的攻击场景就在这里,中转站可以拦截模型返回的工具调用,修改参数再给你。举个偏极端但不是不可能的例子,你的 agent 在调用文件系统工具,模型说要读 /tmp/output.txt,但中转站把路径改成了别的东西。大多数情况下没人会这么干,成本太高,风险太大,但「可以做到」和「不会做到」不是一回事,这是两个不同的安全边界。

更实际的风险是更隐蔽的改写,改一个参数的取值,改一个工具调用的名称,在你无法感知的情况下让 agent 的行为和你的预期有轻微但持续的偏差。这种偏差在调试时很难复现,因为你不知道问题出在模型还是在链路上的某一层。

api-relay-audit 对这类攻击的检测思路是构造特定的工具调用请求,在响应里做锚定校验,看返回的工具调用参数有没有被改写过。技术实现上是可验证的。

AC-2,错误响应泄漏。

这个更微妙一点。当 API 请求出错的时候,服务端会返回错误信息,有时候是 HTTP 状态码加一段 JSON,有时候是更详细的 stack trace 或者内部错误描述。官方的 Anthropic 和 OpenAI 的错误格式是标准化的,但中转站在转发过程中,可能把内部的错误信息直接透传出来,包括后端真正用的服务商、内部服务名、内部账号结构等信息。

这不是主动攻击,是被动泄漏。但泄漏出来的信息对判断中转站的实际架构很有价值,你可能从一个错误响应里发现,这家宣称直连 Anthropic 的服务,其实后端走的是另一家中间商。

cctest.ai 做的也有部分是这个方向的,通过异常请求触发错误,分析错误响应里的信息差异。但这类测试本身就要消耗 token,而且测试请求需要设计得足够刁钻,普通用户不容易自己构造。


还有一个没那么戏剧化但可能最常见的风险,上下文截断。

你以为自己发了 100k token 的上下文,中转站在转发前把它压缩到 40k 再发给官方,省下来的 token 成本是中转站自己的利润。响应结果看起来差不多,毕竟很多时候前面的上下文对后面的回答影响不是那么决定性,但在需要长程记忆的任务里,这个差距会很明显。

用 Claude Code 做长对话 session 的人可能对这个感受更深,有时候模型「忘记」了前面讲过的东西,有时候它回答一个问题的时候忽略了你在开头提过的重要约束。有多少是模型本身的注意力衰减,有多少是上下文根本就没给完整,你不知道。

api-relay-audit 对这个的检测是在请求里埋入特定的锚点信息,在后续问题里验证模型是否能正确召回,通过召回率判断上下文是否被截断过。有点子牛逼这个设计,因为它把一个很难量化的感受变成了可测试的指标。


我单独再聊聊「双论文锚定」这个思路,因为我觉得它最值得展开。

传统的模型识别方式,大多数是问一个模型「你是什么模型」然后看它怎么回答。但这种方式废掉了,因为中转站完全可以拦截这个问题,把答案改成你期望看到的。更聪明一点的方法是用一些「中间商不知道你在测什么」的方式来测,让模型自然地暴露它的身份。

论文锚定的思路是,大语言模型在训练过程中会吸收大量学术文献,对于特定论文里的特定结论,不同规模、不同版本的模型的召回和推理行为是有差异的。你挑两篇有特异性的论文,构造出一组精心设计的问题,这些问题的答案在不同模型之间有系统性的差异,不是「回答了什么」而是「怎么回答的」——选词倾向、推理路径、是否引用某个特定的概念框架。

这类方法在学术上有个名字叫「模型指纹识别」(model fingerprinting),核心思想是每个模型都有自己隐藏的「行为签名」,就像人的笔迹或者说话习惯。你锻炼不出来一摸一样的,哪怕你很努力地模仿。

用两篇论文而不是一篇,是为了增加鲁棒性。单篇论文可能有一些模糊地带,用两篇做交叉验证,判定结果的置信度更高。

厉害了,这比「我问它是不是 Claude,它说是」要靠谱太多了。


讲完技术,我想再说一个让我觉得有点不安的地方。

中转站检测这件事,市面上其实已经有了 hvoy.ai 和 cctest.ai 两个服务,前者做的是一个中转站排行榜,实时更新掺水率、延迟、在线率,后者做的是面向 Claude Code 用户的 API key 安全检测,都有一定的用户基础。

那开源工具和这两个平台的差距,除了透明度,还有一个维度我觉得很关键,就是检测覆盖面。

hvoy.ai 的检测维度偏重于「这家站点有没有掺水、价格怎么样、稳不稳」,是从用户选择的角度出发,帮你挑一个靠谱的中间商。cctest.ai 侧重于 token 使用量是否异常,帮你排查有没有被多收费。这两个都是有价值的,但它们的关注点是「你买到的服务对不对」,不太关注「这条链路有没有被主动操控」。

中转链路中的主动攻击面示意

AC-1 和 AC-2 描述的是一种更主动的攻击面,中转站不只是被动地转发请求,而是在转发过程中主动修改数据。这种攻击对于普通查询场景影响可能不大,但对于 agentic 场景,也就是用 agent 框架做自动化任务的用户,影响就完全不一样了。

你在 agent 里调用一个工具,参数是「把这个文件的内容替换成 XXX」,如果中间有人把参数改了,你写入的就不是你以为的那个东西。这个例子听起来很极端,但这是一个链路上「可以发生」的事情,在安全模型里,「可以发生」就值得考虑。

api-relay-audit 把检测范围延伸到了这一层,这是它和现有工具最核心的差异。


说到这里我想停一下,聊一个更大的视角。

我觉得这件事有意思,不只是因为安全本身,而是因为它揭示了 AI 工具链在国内生态里的一个特殊形态。

你在用的不是一个标准化的商业服务,你在用的是一个由中间商、账号池、转发层、检测平台构成的半透明基础设施。每一层你都不完全了解,每一层都在收割一部分信息和利润。这不是批判,这是现实,是在官方渠道不顺畅的情况下,市场自己长出来的解决方案。

但当你的 agent 开始在这条链路上做有一定重要性的事情,读文件、写代码、调工具,你最好知道这条链路有多可信。不是说中转站都在作恶,大部分应该没有。是说你应该有能力知道,而不是「感觉应该没问题」。

api-relay-audit 给的不是一个「这家好,那家差」的结论,给的是一套可以自己跑的检测框架。这才是开源最值钱的地方,你可以审它,你可以魔改它,你可以把它接进自己的 CI,每次切换中转站前跑一遍。


那实际上应该怎么用呢。

Berry Xia 在帖子里把完整的方法论、对比结果和功能速查表都公开了,项目本身也开源了。拉下来跑一遍的门槛不高,核心是需要你有一个想测试的中转站地址和对应的 API key,然后工具自动发送设计好的测试序列,生成一份带透明日志的报告。

报告里会告诉你三态判定的结果是什么,每一个判定是基于哪些具体的测试通过的还是失败的,你能从报告里看到原始的请求和响应是什么,而不是一个黑盒的结论。

对比 hvoy.ai 和 cctest.ai,这两个平台适合快速入门,特别是 hvoy.ai,主页就有一个按模型分类的掺水率排行榜,一眼能看出哪些站点口碑相对好。但如果你想更严肃地做评估,或者想把检测集成到自己的工作流里,自托管的开源方案明显更合适。

我是真的觉得,用 AI API 做有一定严肃性的事情的人(不是随手玩玩,而是把它接进业务流、接进 agent 框架的人),值得花一两个小时跑一遍这个检测。不是说你一定会发现什么,是说跑完之后你心里有数了,这种「有数」的感觉挺重要的。

有几个我自己会做的事情,供参考,不一定适合所有人。

一是对不同用途区分中转站,随手测试和开发用的场景,中转站怎么选都行,出了问题大不了重试;但如果是在业务代码里用,或者 agent 在做有副作用的操作(写文件、发请求、调外部 API),我会更在意用什么链路,如果能上官方 API 就上官方,如果不得不用中转,选检测透明度更高的服务,或者自己跑一遍 api-relay-audit。

二是在 agent 代码里做一层工具调用校验,这不是中转站特有的问题,任何情况下 agent 的工具调用都应该有一层自己的 sanity check,参数范围、操作类型、目标路径这些你能预判的约束,在执行前做验证。这是 defensive programming 在 agentic 场景下的自然延伸。

三是定期测一下 token 计费,cctest.ai 的功能其实挺实用,发 11 轮请求,比对实际消耗的 token 和账单上的数字,看有没有异常倍率。这个成本低,0.3 美元一次,一个月跑两次就够。


最后想多说一句,有点跑题但我没绷住。

整个 AI 中转站生态,其实是一个很典型的「非正式基础设施」现象。哪个市场有管制和摩擦,哪个市场就会生长出绕过摩擦的中间层,然后围绕这些中间层形成新的商业和社区。暗语、口碑、Telegram 群组、半公开的评测帖,这套生态的运转方式更像是地下市场,而不是 SaaS 订阅。

在这种环境里,开源工具的意义和传统意义上的开源有点不一样。它不只是「可以免费用」,它是在一个缺乏信任基础设施的场景里,提供了一种「你可以自己验证」的可能性。你不用信任任何一个平台,你只需要读得懂代码。

万能青年旅店有一句歌词,「生活在经验里的人是幸福的,生活在可能性里的人是勇敢的。」不太搭,但我想了想,用 AI API 做东西的人,某种意义上都是活在可能性里的,也就应该对链路的每一层保持一点健康的怀疑。

不是焦虑,是好奇。这两个不一样。


相关链接: