
过去 30 年里,开源软件经历过多次经济层面的革命。然而,此前任何一轮革命都没有像今天的开放权重模型这样,创造出一种根本上全新的市场结构。在这组三篇文章的第一篇中,我们将从两个互补的视角分析这些市场:
- 封闭源码市场的解构与拆分
- 围绕 Token 订单流变现而展开的战略性多智能体博弈
第一个视角从更偏哲学的层面解释了这类市场为何会自然生长出来;第二个视角则让我们能够实证分析开放权重生态中众多经济参与者——用户、Harness、Router、模型构建者以及推理服务商——各自面对的激励。
这样的分析框架把我们带向三个关键问题:
- 是否存在某些经济参与者,通过操纵价格和/或供给来获取不公平利润?
- 投入成本(电力、GPU 等)究竟如何传导到最终产出成本(每 Token 价格)?
- 长期均衡会是什么样?在这个均衡中,哪些参与者能够攫取超额价值?
本文利用 OpenRouter 的公开数据分析第一个问题。一个或许令人意外的发现是:我们找到了推理服务商进行战略性价格操纵的证据。这种行为大致类似于传统金融中的 spoofing(幌骗)、区块链中的 Maximal Extractable Value(MEV,最大可提取价值),以及在线广告中的 quality shading(质量缩水)。
不过,在深入数据之前,我们先回顾开源的历史,把它理解为对信息产品的一次根本性解构。这将为开放权重市场参与者所进行的这场博弈搭建经济学背景。
大教堂与集市
1997 年,Linux 开发者 Eric S. Raymond 写下了著名文章《The Cathedral and the Bazaar(大教堂与集市)》,预示了开源软件最早的一次重大经济变革。所谓“大教堂”,代表由核心团队集中式开发的软件体系,不允许任意的外部贡献;这既包括闭源软件,也包括一些管控极其严格、并不允许随意外部贡献的开源软件(如 GTK、GNU)。与大教堂相对的是“集市”:任何人都可以贡献,开发过程众包化。Linux 是这一模式最典型的代表。
为什么这会构成开源软件的第一次经济革命?在云计算出现之前,互联网的大部分经济结构都更奖励“大教堂式”的开发。但当企业从“我拥有自己的服务器”迁移到云时代的“我租用服务器”之后,可移植、模块化且健壮的软件开始比高度一体化的软件更有价值。于是,资本自然开始投入到“集市”模式的开发成本中。
乍看之下,集市可能显得混乱而昂贵。但后来实践表明,对 Linux 这类关键软件而言,开源使得“阳光是最好的消毒剂”。更多人能够审视代码,独立开发者也会主动扫描关键漏洞。与此同时,很多组织发现,与完全依靠内部团队维护代码相比,参与并使用开源代码反而更便宜。这降低了新参与者的进入成本,也推动软件消费走向 SaaS 式的按使用量付费模式。
CapEx 与 OpEx
在开放权重模型出现之前,开源软件的经济学,本质上主要是在管理资本性支出,以及把声誉当作一种货币。Josh Lerner 与诺贝尔经济学奖得主 Jean Tirole 关于“集市参与者经济学”的经典研究表明:地位竞争,以及把自己的开源履历当作简历使用的能力,其重要性并不亚于写代码本身获得的报酬。随着时间推移,为开源开发融资的商业模式逐步形成,从非营利基金会、资助计划,到企业赞助开源贡献者,不一而足。
不过,这些模式关注的都是如何为开发者工资、安全审计等资本性支出定价。至于开源软件的运营支出,人们很少认真考虑。运行 MySQL 之类的开源软件当然要向云厂商付钱,或者承担自己的服务器成本,但与开发和维护开源软件所需的人力成本相比,这些费用通常微不足道。
开放权重模型把这套逻辑彻底翻转过来。生成开放权重软件最大的成本不再是人力,而是计算资源及其相关投入。在这个世界里,CapEx(训练)与 OpEx(推理)主要都是资本,而非劳动。因此,传统开源世界里那种“OpEx 只是留给用户自己解决的附带问题”的假设,在开放权重世界中不复存在。
模块化
2026 年,随着 AI 在许多人类任务上的能力逼近专家水平,Agentic AI 的使用量急剧上升。这也显著抬高了最大型闭源模型厂商(OpenAI 与 Anthropic)面对客户时的收入和定价权。面对不断膨胀的成本,许多企业 AI 用户很快从“tokenmaxxing(尽量多用 Token)”转向寻找更便宜、但智能水平相近的替代方案。
更便宜的智能,来自开放权重模型的模块化特性。所谓模块化,是指除了原始 AI 模型本身(例如 Transformer)之外的不同组件,可以被独立构建和管理。使用开放权重模型时,整个执行过程可以拆成若干模块:
- Harness:管理提供给模型的用户数据、上下文和状态。
- Router:把 Harness 生成的一个任务或一系列任务,映射到应该使用的一组模型。
- Open Weight Models(开放权重模型):例如 Kimi K3 或 GLM-5.2 这样的 Transformer 模型。
- Inference Provider(推理服务商):提供计算与硬件,在 Harness 提供的上下文上执行 Router 选中的模型。
从经济学角度看,模块化可以被理解为对一种信息产品进行拆分(unbundling)。[1]
这种功能拆分,使不同团队可以专门优化 Agent 的某一部分。例如 Nous Research 的 Hermes agent——OpenRouter 上最大的应用,市场份额约 15%–20%——把精力放在用户体验、用户偏好与技能管理上。Together AI 这样的推理服务商则通过优化 GPU kernel、聚合计算资源来降低成本,专注于便宜地提供推理。各团队可以独立运作,同时又能建立在彼此的改进之上,从而叠加出过去一年里看起来近乎指数级的性能提升。
Together AI 创始人 Vipul Ved Prakash 最近写了一篇很好的文章《The Economy of Tokens》,讨论模块化如何通过制造竞争、把 CapEx 与 OpEx 分散到多个参与方,从而推动价格下降。这种成本分摊和专业化,与单一前沿实验室独自承担全部聚合成本恰好相反。在每一个模块内部,都有许多市场参与者竞争,试图提供更便宜和/或质量更高的版本;与此同时,不同模块之间又存在协调与协作。正如 Prakash 所强调的,不同开放权重模型和 Harness 会互相借鉴技术与算法改进。只有在开源软件这种“集市式”的环境中——贡献可以自由被引入——这种事情才可能发生。
Souq
跨团队通过开源“集市式”开发进行协作,再叠加为了压低 OpEx 而展开的 Bertrand 式价格竞争,由此产生了一种新颖的市场结构。我们把它称为 Souq。你可以把它看成一场多智能体博弈:不同经济参与者各自专精于某一个模块,并争夺最大化 Token 订单流的权利。那么,价值和 Token 究竟如何在这些模块之间流动?
从经济学角度看,各层参与者的激励分别是:
- Harness:最大化用户留存,并成为用户生成 Token 的“首页”。Harness 是一种面向消费者的业务——很像加密钱包或金融科技应用——其前提是用户愿意信任它并交由其持有私人信息。Harness 可以通过几种方式赚钱:用户直接付费让它寻找推理服务商、订阅费,以及与 Router 之间的 payment-for-order-flow(订单流支付)关系。未来,它们还很可能从希望利用其分发能力的应用甚至广告主那里获得收入。
- Router:最大化使用该 Router 来寻找推理服务商与模型的应用数量。Router 可以按照其转发给推理服务商的 Token 总量收取费用,也可以与推理服务商建立订单流支付关系来赚钱。不过,为了避免应用转去竞争对手的 Router,它们很可能不得不提供返利,甚至反过来支付订单流费用。Router 更像 B2B 业务,这也是为什么从 Ramp 到 Stripe 都开始进入这个领域。
- Model Builders(模型构建者):最大化模型在消费者和企业中的分发。除了自己成为推理服务商(DeepSeek、Minimax 和 Z.ai 目前就是这样赚钱的)[2],或者向推理服务商收取授权费之外,几乎没有其他直接攫取经济价值的路径。Kimi K3 的新型许可证要求:任何模型服务业务,只要收入超过 2000 万美元,就必须与其另行协商商业协议;这是后一种模式第一次被明确写进许可条款。[3] 模型构建者还需要承担模型训练的 CapEx。
- Inference Providers(推理服务商):在尽量降低执行成本的同时,最大化从 Router 与 Harness 获得的 Token 数量。执行成本可以通过更优地采购计算资源(能源、硬件),以及优化开放权重推理代码来降低(例如 Together AI 的 FlashAttention 等 kernel 优化,或 Wafer 的内存优化)。这是开放权重技术栈里运营强度与资本强度最高的一层。
下图展示了单个用户的 Token 如何流经这些模块,以及价值转移发生在哪里。一个核心问题是:“到了均衡状态,每一个模块最终能攫取多少价值?”我们会在后续文章完整回答这个问题;这里只需先说,价值看起来会集中在 Harness 和推理服务商。

Token 与价值如何流经 Souq 的模块化组件
市场完整性
几乎所有多智能体市场都绕不开一个问题:某些参与者是否能够不公平地从其他参与者身上攫取价值,或者损害消费者?例如,传统股票交易所中的 spoofing(幌骗)[4],以及区块链里的 Maximal Extractable Value(最大可提取价值),都被视为一种扭曲价格、损害消费者和其他市场参与者的方式。类似地,在线广告拍卖长期存在质量问题:广告买家实际拿到的展示位置,质量低于平台承诺的水平。[5] 开放权重市场中也已知存在类似问题——例如推理服务商实际运行更便宜的模型,或者对模型进行量化。[6]
然而,在 OpenRouter 这类 Router 出现之前,人们并不清楚该如何衡量开放权重模型市场的完整性。Router 通过 Harness 和推理服务商生成的公开数据,创造了一个更加开放、透明的竞技场。我们可以利用这些数据,衡量并监控推理服务商为了聚合 Token 而采用的策略,并进一步估计:市场参与者是否在使用某些操纵 Router 的策略,即便自身价格或质量更差,仍能获得更多 Token 订单流。
在 OpenRouter 上,推理服务商可以针对某个开放权重模型,实时提供每个输入 Token 的报价。OpenRouter 随后利用这些价格数据,把来自应用(如 Harness)的 Token 分配给不同推理服务商。这自然形成了一个竞争市场:为了获得更多 Token,推理服务商有动力不断降低价格。
路由究竟是怎么工作的?
要衡量 OpenRouter 这类平台的市场完整性,首先必须理解 Router 如何把 Token 分配给不同服务商。[7] 虽然“model routing(模型路由)”这个词在学术界和商业界里有许多不同含义,但 OpenRouter、Ramp 和 Databricks 这样的 Router,大体共享如下结构:[8]
- 应用或用户先指定一个希望执行的工作流(初始 Prompt、上下文、工具调用)。
- Capability routing algorithm(能力路由算法)分析请求属于什么类型的任务,把任务映射到一组最相似的评测(evals),再依据这些评测、社区支出数据等信息,对各模型完成该任务的适配程度进行排序。
- Execution routing algorithm(执行路由算法)接收目标模型以及各推理服务商的报价,再把 Token 分配给某一家推理服务商。
对于中心化、非竞争型 Router(如 Ramp 和 Databricks)来说,执行路由并不是一个竞价过程。Databricks 按管理员预先配置好的固定流量比例,把请求分发到客户已经直接付费的模型端点;若端点报错或触发限流,再自动回退。Ramp 则动态选择服务商,以截止时间为约束,根据各模型的实时延迟和失败率评分,并直接透传服务商的标价。两者的 SLA 保证都来自 Router,而不是来自某种竞赛机制:违反延迟或可用率目标的端点,直接被绕开。大型公司内部也采用同类结构:Uber、Grab、LinkedIn、Expedia 和 Instacart 都通过这种单一网关来路由内部 AI 流量,Palantir 也把类似产品卖给客户。[9] 我们下面会简要描述这两种路由算法,但需要注意:这些算法本身并不是开源软件,因此我们讨论的是文档所描述的功能,而非其精确实现。

路由的两个阶段:能力路由在质量与成本之间权衡,把任务映射到模型;执行路由随后把请求分配给提供该模型的某一家推理服务商。真正的价格博弈发生在第二阶段。
能力路由
能力路由算法的目标,是在最小化成本的同时最大化预期输出质量。因为质量无法事先知道,所以通常使用模型在不同任务上的既有评测(evals)来构造预期质量的代理估计。算法会为每个模型构造一个用于排序的质量分数:先静态分析当前任务,把它映射到一组相似任务的 eval,再利用不同模型在这些 eval 上公开的表现(例如 Arena.ai)[10] 来形成分数。LMSYS 的 RouteLLM 几乎是字面意义上这样实现的;多数商业 Router 则改为从偏好或使用数据中学习一个质量预测器。然后,算法根据类似 eval 的 Token 成本,计算每个模型执行当前任务的预期成本。最后,模型会按照某个同时追求高质量与低成本的目标函数排序。最简单的目标函数可能是“利润”(例如质量分数 − 成本)或“利润率”(例如质量分数 / 成本)。但实际优化通常更复杂:可能加入抗幻觉正则项,也可能必须满足用户约束,例如“禁止使用中国模型”或“只能使用不带缓存的模型”。
执行路由
执行路由发生在能力路由已经为任务选定模型之后。其目标是在模型既定的前提下,把 Token 生成任务交给支持该模型的某一家推理服务商。Ramp 或 Databricks 这样的中心化 Router 不通过竞价分配请求:Databricks 按静态流量比例分配,Ramp 则用根据实时延迟与失败率调优的动态规则。OpenRouter 采用的则是 Tullock Contest(图洛克竞赛)——参与者要投入有成本的“努力”来争夺某种资源。经典 Tullock Contest 中,参与者赢得资源的概率与其投入的努力(例如成本)成比例。不过,大量研究表明,非比例式的 Tullock Contest 往往更难、也更昂贵地被操纵。[11] OpenRouter 的文档显示,它会先过滤掉近期发生故障的服务商,然后只根据报价来决定获胜概率;延迟和吞吐量只有在用户明确按这些指标排序时才会进入,而此时竞赛机制实际上会被完全关闭。后文我们会把这一点形式化。
OpenRouter 的黑暗森林
理解了高层市场结构之后,我们就可以观察这些参与者在最大的公共路由环境 OpenRouter 中究竟如何行动。我们首先介绍从 OpenRouter 捕获的数据,用来分析推理服务商之间的战略行为,完整方法细节放在附录。借此,我们可以分析 OpenRouter 所采用的精确 Tullock Contest,以及这个市场中的最优战略行为。随后,我们观察更高层的统计趋势,尤其关注接近前沿模型的市场——Z.ai 的 GLM-5.2 和 Moonshot 的 Kimi-K3。我们在这些市场中识别出四类典型推理服务商,这表明某些战略性、甚至可能带有操纵性质的行为确实存在。
服务商定价
OpenRouter 市场上的每一家服务商都会报出三种价格:[12]
- 输入 Token 价格,
pᵢᴵ:每 100 万个输入 Token 的价格(例如用户 Prompt、其他上下文/元数据)。 - 输出 Token 价格,
pᵢᴼ:每 100 万个输出 Token 的价格(例如模型回答中生成的 Token 数量)。 - 缓存(只读)Token 价格,
pᵢᶜ:每 100 万个缓存 Token 的价格。
前两种价格比较直观,使服务商可以根据自己在特定硬件上运行不同模型的预期成本进行差异化定价。第三种价格是 OpenAI API 默认支持的一部分:对于已经重复出现、并驻留在 KV cache 中的 Token,服务商可以给出更低价格。在 Agent 工作流中,缓存 Token 很常见——Prompt 和/或任务的前缀会在 Agent 后续请求中反复出现——因此这可能带来巨大的成本节省。
缓存 Token 价格无法验证。OpenRouter 之所以能够提供这种服务,一个重要原因是开放权重模型普遍标准化到了 OpenAI-compatible API。然而,API 输出的各个组成部分并不具备防篡改性,用户无法独立验证一次 API 请求的输出。根据 OpenAI 与 OpenRouter 的 API 文档,API 运营方会同时提供 OpenAI-compatible 的 usage.prompt_tokens_details.cached_tokens 字段,以及 OpenRouter API 中的 cached_tokens。换句话说,推理服务商完全可以恶意返回一个格式上兼容 OpenAI API、但内容被篡改的响应:即便实际上使用了缓存,也声称没有缓存。
推理服务商的“四骑士”。OpenRouter 上存在多种类型的推理服务商。几乎所有模型构建者——即实际训练模型的实体,例如 Z.ai 或 Minimax——都会运营自己的推理服务。推理服务是这些公司的主要收入来源,而推理收入又为未来模型训练提供资金。对于 OpenRouter 上其余推理服务商,我们将其分成四类,并以 GLM-5.2 市场为例:
- 资金充足的 Copy Pricers(照价者):它们的算力主要服务于非公开的企业合同,但也参与 OpenRouter,目的更多是营销和/或出现在排行榜上。这类公司既有风险投资支持的 Together AI、Modal、Baseten、Fireworks、Venice、Crusoe,也包括上市公司 Cloudflare、DigitalOcean。它们似乎最少进行战略性定价,而是几乎逐字照抄模型构建者公布的价格(见下图)。

资金充足的照价者:风投支持或上市公司的服务商,报价与模型构建者完全一致——上榜是为了分发,而不是打价格战。
- Specialist Providers(专业型服务商):使用定制硬件(例如 Cerebras),或通过改善 kernel 性能来提供更快推理的服务商。通常,这些是同一批资金充足服务商推出的“fast”模式;不过也有一些新公司,例如 Wafer,正在通过优化资源供给来构建竞争优势。这类服务商的定价通常高于模型构建者。

专业型服务商:定制硬件与优化 kernel,以高于模型构建者的价格出售——卖的是更快的 Token,而不是更便宜的 Token。
- Rebaters(返利型服务商):它们长期提供低于模型构建者的固定价格,不会动态调整,而是通过持续报出更低价格,实质上提供一种固定返利。

返利型服务商:报价固定钉在模型构建者价格之下——这是一种长期折扣,而不是随市场变化而调整的策略。
- Repricers(动态改价者):这类推理服务商频繁更新价格,并大幅压低到模型构建者之下。截图中可以看到 StreamLake(中国社交媒体应用快手旗下的数据中心业务)和 Novita 的报价只有模型构建者价格的 5%–10%。

动态改价者:StreamLake 与 Novita 报价仅为模型构建者的 5%–10%,且不断调整——这是唯一真正动态参与这场竞赛的服务商类型。
竞争均衡
OpenRouter 的市场由两类主体构成:一类是应用——也就是生成 Token 的实体,例如 Harness 或 Framer 这样的专用应用;另一类是提供计算能力的推理服务商。应用把自己的上下文(Prompt 和辅助数据)发送给 OpenRouter API,OpenRouter 先通过能力路由替用户选择一个模型,然后 Router 再通过 Tullock Contest,把这些输入 Token 分配给某一家具体的推理服务商。
Tullock Contest。Tullock Contest 为分析一种固定“租金”——例如 Token 对应的付款——如何在一组相互竞争的服务商之间分配,提供了理论框架。它被用来描述各种场景,从政府采购拍卖,到广告竞争和军事战争博弈。[13] 在 Tullock Contest 中,有 n 个参与者,每个参与者投入一种“努力” xᵢ,以争取奖励 R。所谓努力,代表某个服务商为了获得奖励,相对于其他服务商投入了多少资源。整个竞赛由一个分配规则 A 完整定义:它把各参与者的努力 xᵢ 映射为一组概率 πᵢ,因此服务商 i 的预期奖励就是 πᵢR。
Tullock 在《Efficient Rent Seeking》(1980)中最早研究的竞赛,其分配规则是:
πᵢ = A(x₁, …, xₙ)ᵢ = xᵢʳ / Σⱼ₌₁ⁿ xⱼʳ
指数 r 表示 decisiveness(决定性):r 越大,努力上的较小相对变化,就越容易造成预期奖励上的更大差距。它也可以理解为在控制参与者之间的对数胜算。例如,当 r = 2 时,如果参与者 i 投入的努力是参与者 j 的两倍,那么 i 相对于 j 的获胜概率会变成四倍。换句话说,当 r > 1 时,提高努力对预期奖励的影响是超线性的。
OpenRouter 是一场多维 Tullock Contest。OpenRouter 的文档[14]称,其分配规则大致如下:
- 每个服务商
i(共m家)发布一个价格向量(pᵢᴵ, pᵢᴼ, pᵢᶜ),其中pᵢᴵ是每百万输入 Token 的价格,pᵢᴼ是每百万输出 Token 的价格,pᵢᶜ是每百万缓存 Token 的价格。 - 首先从这
m个参与者中筛选出一个最大规模为n、且质量分数较高的子集(质量分数并未公开,但依赖服务商的延迟、可用率以及历史 TPS 表现)。 - OpenRouter 计算一个复合价格
Pᵢ = Pᵢ(pᵢᴵ, pᵢᴼ, pᵢᶜ),然后以πᵢ ∝ 1/Pᵢ²的概率把请求分配给服务商i。
如果把努力定义为 xᵢ = 1/Pᵢ,那么因为 πᵢ ∝ 1/Pᵢ² = xᵢ²,这就可以看成一套 decisiveness 为 2 的标准 Tullock 分配规则。decisiveness 越高,单个参与者只需较小幅度增加努力,就能让自己的预期分配和奖励超线性上升。具体到这里,这意味着:推理服务商可以只进行一次很小的降价(也就是增加自己的“努力”),却获得远高于这点降价实际让利给最终用户的额外奖励。超线性还有一个更粗糙的“近亲”问题:由于规则把每个列出的 endpoint 单独评分,当 decisiveness 大于 1 时,它并不具备 Sybil resistance(女巫攻击抗性)——同一个所有者可以拆出多个经济上完全相同的重复 endpoint,在不改变价格的情况下提高自己的合计份额。[15] 另外需要注意,OpenRouter 文档并没有明确说明,把用户看到的多维报价映射为单一复合价格的函数 Pᵢ 到底是什么;我们是通过观察 Router 的实际选择来测量它的。[16] 简而言之,Pᵢ ~ pᵢᴵ。
虽然文档没有把公式写清楚,但我们可以实际测出 Router 到底使用哪一种价格。OpenRouter 允许用户直接要求“选择最便宜的服务商”,此时 Router 就不得不暴露它认为谁最便宜。我们发送了数千次这样的请求。真正有信息量的时刻,是某一家服务商拥有最低输入价格,而另一家拥有最低输出价格——Router 此时必须二选一。在我们观察到的全部案例中——两个市场共 64 次,64/64——它都选择了输入 Token 最便宜的服务商。如果输出价格对复合价格的权重,达到每 1 美元输入价格对应几美分以上,那么其中一些选择本应发生变化。至于缓存 Token 报价,我们没有检测到任何影响:把它加入预测 Router 选择的模型后,预测能力提升恰好为零(见下图)。因此,在服务商排序中,竞赛使用的价格实际上就是输入 Token 价格。精确的拟合方法见方法附录。

究竟是哪种价格进入了竞赛?左图:Router 暴露出的每一次“最便宜服务商”选择,都可以仅由输入价格解释——只要让输出价格在每 1 美元输入价格中拥有超过几美分的权重,这些选择就无法再解释。右图:把缓存 Token 报价加入 Router 选择模型,对预测能力的改善恰好为零。Router 按输入价格排名,却忽略了重复上下文里真正决定用户花多少钱的那个价格。
Cache Me If You Can(有本事就缓存我)
推理服务商有一种可以增加自身收入、同时降低消费者福利的策略:把已经缓存的 Token 按“未缓存 Token”收费。但如果这么做会降低 Router 未来把流量分给自己的概率,那么它也可能损失长期收入。于是一个自然的问题是:OpenRouter 的 Tullock Contest——其评分规则部分公开——是否允许服务商执行这种策略,同时又不牺牲长期收入?这在很多方面类似区块链里的 Maximal Extractable Value:更有策略的用户通过动态调整价格,从不那么成熟的用户身上提取利润。一个简化版策略如下:
- 服务商把输入与输出 Token 的公开报价大幅压低到其他服务商之下。
- 由于市场份额会超线性增加,它从 Router 获得的 Token 数量相对于竞争者大幅上升。
- 随后,它通过操纵 cached token API 的响应,报告“没有使用任何缓存 Token”,从而按照更高的普通输入价格收费。
间接来看,可以把这种战略型服务商理解为:它通过操纵缓存机制,给 Router 制造了一种带状态的“记忆”。如果某服务商在时间 t 被选中,那么即便它实际向用户收取了更高价格,在 t+1 时仍更可能再次被选中。[17]
例子。用一个简单例子说明这种策略为什么会比诚实报告 Token 更赚钱。假设一家诚实/非战略型服务商,对每百万输入和/或输出 Token 收取 1 美元,对每百万缓存 Token 收取 0.01 美元;而一家战略型服务商,输入和/或输出 Token 报价为每百万 0.6 美元,缓存 Token 报价为每百万 0.02 美元。对于一个总计 100 万 Token、其中一半可以缓存的工作负载,诚实服务商收费为 $1/百万 × 0.5 × 100万 + $0.01/百万 × 0.5 × 100万 = $0.505;战略型服务商则按全部 Token 都未缓存收费,即 $0.6/百万 × 100万 = $0.6。它虽然表面上通过更低报价来增加流量,却能够比诚实服务商获得更高利润,而后者得到的 Token 量还更少。
那么,OpenRouter 的真实数据中有没有证据显示推理服务商正在执行这种策略?有!
结果。我们在 OpenRouter 上设计并运行了一系列实验:反复发送一组 Prompt,并让其中可缓存内容的比例有所变化。Agent 工作流中经常出现重复 Prompt 和/或共享上下文,因此这种设置相当贴近现实。完整实验细节见下文方法部分。我们尤其观察推理服务商改价前后,其缓存行为如何变化。实验得到三个结果:
- Repricer(尤其是 Novita)在重新定价/调整报价时,cache hit(缓存命中)似乎显著少于模型提供方。
- 缓存命中不足会降低用户福利——工作流重复使用的上下文越多,用户向 Repricer 支付的钱就越多。我们发现,即便 Repricer 的公开价格比模型构建者便宜 50%,用户最终使用这个“低价” Repricer 的总支出,仍可能高于直接使用模型构建者。
- 在最糟糕的情况下,平均只需大约 5 次重复查询,用户因 Repricer 而遭受的损失,就会超过直接使用模型构建者 API endpoint。
Repricer 的缓存表现更差。

某家服务商一降价,我们就同时向它和 Z.ai 发送完全相同的重复 Prompt。结果显示,降价服务商对重复文本的缓存识别比例低了 71 个百分点,同时少向用户传递了 52 个百分点的“热缓存”节省,因此同一个后续查询,在这些服务商那里会比在 Z.ai 贵得多。这里测量的是用户在重复查询上多付了多少,而不是为什么会多付:服务商可能是在操纵价格,也可能只是实现得很糟糕(例如每次更新价格都会重启机器,把缓存全部清掉)。
我们在 GLM-5.2 上观察到明显不同的缓存画像。以模型构建者 Z.ai 作为基准,我们比较一次响应中有多少内容被识别为缓存(例如比较 cached token 与 output token),以及由此造成的成本差异。三家最激进的 Repricer——StreamLake(中国社交媒体应用快手旗下业务)、Novita 和 Baidu——不仅缓存表现显著更差,在重复查询上的实际价格也更高。
缺少缓存意味着用户支付更多。

一次降价前后发生了什么:上图显示 Repricer 相对模型构建者的降价幅度;中图显示降价时缓存识别率突然崩塌——有些服务商在第二次发送完全相同 Prompt 时,甚至报告更少的缓存 Token,与一次完整 cache eviction 相符;下图则显示降价后,用户在重复 Prompt 上获得的节省迅速衰减。
接下来,我们观察 Repricer 的缓存行为如何随时间变化。最上方的图展示 Repricer 相对模型构建者在输入 Token 上的降价。我们关注每次重新定价事件发生时,缓存表现怎样变化。第二幅图显示降价时有多少输入被缓存。颇为反常的是,一些服务商在第二次重复 Prompt 中报告的缓存 Token 反而更少——这暗示降价后发生了一次完整的缓存驱逐。第三幅图显示,其结果是:用户在重复 Prompt 中获得的节省迅速下降。
它们是故意的吗?我们无法传唤任何服务商交出缓存策略,实验也无法区分:某服务商是在战略性地清除状态,还是每次动价格时都会重建整套 serving stack。但从经济结果看,这一区别几乎无关紧要。我们观察到的模式——降低显眼的公开价格、让缓存消失、再把重复 Token 按全价计费——恰恰就是一个战略型服务商会选择的做法;这一模式在数百次重新定价事件中反复出现(仅 Novita 在 7 月就改价约 500 次),无论原因是什么,收入都由服务商保留。一套宣称提供折扣、但买方可以预见地拿不到这份折扣的定价模式,无论主观意图为何,在效果上都是误导性的。[18]
用户完全可能比直接使用模型构建者 endpoint 付得更多。

第一次请求最便宜,并不意味着整段对话最便宜:根据已观察到的请求成本外推,最糟糕的 Repricer 大约在 5 次重复查询之后,就会比直接使用模型构建者 endpoint 更贵。
既然市场上有大量资金充足、直接复制价格的服务商,一个自然的问题就是:“向 Repricer 重复发送多少次 Prompt 之后,因为 Token 没有被缓存而额外支付的钱,会超过直接使用一个价格更高、质量更好的服务商 endpoint?”我们的结果是:对于缓存丢失最严重的服务商 Novita,大约重复查询 5 次之后,用户支付的总费用就开始高于模型构建者自己的 API。
这种方式能提取多少钱?我们直接利用 OpenRouter 的公开数据估算这块“奖池”:对每一个开放权重模型,把服务商未能识别为缓存、因而按完整输入价格而非缓存价格计费的 Token,在整个市场中加总。以当前水平看,这类行为每年大约提取 350 万美元,约相当于 OpenRouter 收入的 2%;如果所有服务商都采取这一策略,理论上限约为每年 1400 万美元,也就是 10%。完整推导和假设见成本附录。

缓存策略能够提取的年化价值随时间变化:GLM-5.2 单一市场 vs. 全部开放权重市场。
在我们能够干净测量的这几周里,最大可提取金额增长得非常快,基本与开放权重市场本身的增长同步。

按模型划分的缓存攻击年化价值——覆盖全部开放权重市场。
不同模型之间金额有所不同,但战略型服务商并不需要只选一个模型——它可以在自己提供的所有模型上叠加同样的行为,从而实现相当可观的利润。[19][20]
这场竞赛还隐藏着另一项成本,而且随着市场成熟会越来越严重。一个 warm cache 本质上是一段只在“你建立它的地方”才有价值的记忆:如果后续请求继续交给建立缓存的服务商,重复 Token 会很便宜;一旦迁移,下一家服务商就必须按全价重新读取全部上下文。OpenRouter 文档所描述的 Router 会在每一次请求上重新比较报价,却不记得上一请求发给了谁,[21] 因此它最小化的是“下一个 Token 的价格”,而不是“整段对话的成本”。当某一家服务商明显最便宜时,按价格加权的抽样会不断落到它身上,缓存得以保持热状态;但当几家服务商的报价越来越接近——而这恰恰是成熟市场会出现的状态——对话就会不断被交给“此刻只便宜一点点”的那一家,每一次切换都会落到冷缓存。我们在 GLM-5.2 上按照这套规则,用公开的推理服务商报价进行反事实重放:对于一段本可复用大部分上下文的对话,在只有两家服务商时,成本已经是具备 session awareness、固定在一个 warm provider 上的理想 Router 的 2.33 倍;当服务商增加到 32 家时,成本扩大到 3.63 倍。竞争反而让事情变得更糟,而不是更好——服务商越多,就越频繁出现某个竞争者只便宜几分之一美分的瞬间,流量越分散,被丢弃的 warm cache 也越多。这是一场发生在错误边际上的竞争。

GLM-5.2、90% 上下文可复用时:随着竞争者从 2 家增加到 32 家,OpenRouter 文档所描述的逐请求路由,会让一段对话相对于“始终固定在同一家 warm provider 上”的理想 Router 多付多少成本。这里是基于公开推理服务商报价的反事实重放,并非对实际路由结果的直接测量。
OpenRouter 应该如何改进它的 Tullock Contest?
这些实验显示,目前 OpenRouter 的 Tullock Contest 存在两个关键缺陷:
- 这场竞赛事实上隐含地依赖状态(例如缓存就是一种“状态”或“记忆”,服务商可以操纵它来增加利润),但竞赛的选择函数却只依赖当前报价。
- 购买方用户无法独立验证服务商生成 Token 时所使用的状态,因此永远无法完全确认自己没有被多收费。
最简单的修复方法,是从根源上处理第一个问题:不要按服务商报出的价格排名,而要按用户实际会支付的价格排名。对于包含重复上下文的工作负载,在服务商 i 处,一个输入 Token 的预期成本为:
p̄ᵢ = hᵢ pᵢᶜ + (1 − hᵢ) pᵢᴵ
其中 hᵢ 是某个重复 Token 从缓存中提供的概率,pᵢᶜ 与 pᵢᴵ 分别是该服务商的缓存价格和输入价格。如果竞赛不再基于公开报价 pᵢᴵ,而是基于 p̄ᵢ——其中 hᵢ 由 OpenRouter 根据实际账单进行实证测量,并按照 session 连续性与工作负载类型进行条件化——那么丢弃缓存就不再是免费的:一旦服务商停止识别重复 Token,它自己的 p̄ᵢ 就会上升,从而失去分配份额。我们记录到的那种策略会变得自我挫败,因为服务商原本操纵的价格,现在正是竞赛真正拿来评分的价格。
即使不重做竞赛的定价公式,同一个信号也可以用来监管它。第一个问题还可以通过自适应/动态更新竞赛指数和质量分数来缓解。Router 可以持续执行类似我们上面做过的实验。更具体地说,可以按如下方式反复在线更新 decisiveness:
- 在长度为
T的观察窗口里,向每一家服务商发送少量随机化的 canary session——使用稳定的 session identifier 重复发送 Prompt,模拟用户自然产生的真实工作负载。[22] - 对每一家服务商,比较 canary 在重复 Token 上实际被收取的费用,与其公开缓存 Token 报价所暗示的应付费用;两者之间的差额,就是该服务商在重复上下文上的 overcharge(超额收费)。
- 识别那些超额收费长期高于普通缓存波动(cache eviction、TTL 到期、重新部署等)所能解释范围的服务商。
- 调整这些服务商对应的指数,和/或降低其质量分数,直到差距消失。
这并不是什么异想天开的机制。Databricks 自己的任务 Router 就会在一个 session 开始时固定模型,目的正是保持缓存效率;它把缓存效率称作“a critical cost driver(关键成本驱动因素)”。[23] 这等于明确承认:一个 session 被送到哪里,以及它的缓存能否保留下来,正是成本真正发生的地方。
但第二个问题更加棘手,需要对 Router 的运行方式做更深层改造。例如,如果 Router 强制要求所有 KV cache 对自己的 cached token 数量提供密码学证明(例如运行在 NVIDIA enclave 中的 attestation),这类操纵就可以被彻底阻止。不过,这可能降低模型性能,和/或让使用较老硬件的服务商更难参与竞争。随着推理硬件越来越专用化,可以想象,这类 attestation 最终会成为标准,用来减少市场操纵,并提升用户获得的完整性保证。
开放智能的未来(们)
本文讨论了一个重要变化:当智能软件不得不认真计算自己的 OpEx 时,开放权重模型的经济学会发生怎样的剧烈改变。由开放模型构建者、Router、推理服务商和 Harness 共同搭建起来的 Souq,还是一个非常早期、正在形成中的市场;但它已经显示出巨大潜力——通过拆分原本集中在单一公司的能力,可以显著降低智能的成本。不过,和大多数新生市场一样,显然仍有大量机制可以改进。我们在最大的市场 OpenRouter 中找到了战略性经济漏洞的证据,这些漏洞允许推理服务商向用户多收费。这种 overcharging 与区块链里的 MEV、广告拍卖中的 quality shading 非常相似。区块链通过更好的机制设计,以及透明、可验证的数据,让 MEV 变得更小、更可管理。[24] 广告拍卖则依靠声誉系统,以及 demand-side provider(在某种意义上类似 Router)之间更充分的竞争来减少恶意行为。开放权重生态很可能需要综合使用所有这些手段,才能继续走向更完善的 Router 设计。
不过,围绕 Souq 这种新市场结构,还有更多问题值得追问。例如,Token 生产是一种“精炼品(refined good)”,那么它的成本究竟如何更直接地连接到底层“原材料”(例如硬件、能源)?Souq 这种解构后的、某种程度上去中心化的性质,是否意味着 Token 的生产价格能够被不断向下压缩,最终无限接近推理服务商和/或 neocloud 的运营支出?下一篇文章里,我们会尝试通过把 Souq 与汽油等“精炼品”市场进行比较来回答这些问题——汽油相对于原油这样的原材料,会以一个价差进行交易。传统大宗商品中,这个价差叫 crack spread(裂解价差),通常既反映生产成本(例如炼油成本),也反映某种“操纵”(例如政府释放汽油储备,以压低某个市场的价格冲击)。我们将论证,Souq 的计算市场中存在类似效应:其中的操纵部分,就是本文识别出的行为;生产成本部分,则包括摊销后传导给推理用户的训练成本等。我们认为,这一价差通常为正,但供给冲击可能使它转为负值——类似石油市场中的 contango(升水/期货溢价结构),或加密市场中的负 basis(负基差)。
我们为什么要沿着这条路继续研究?长期目标,是理解 Souq 最终会收敛成怎样的终局市场结构。现在已经有大量公司开始推出计算资源的 futures(期货)和 forwards(远期)产品,包括交易所(Architect 等)、指数提供方(Ornn、Silicon Data、Compute Desk),以及计算资源经纪商(Marex)。[25] 这些产品都建立在 neocloud 和推理服务商成功发展开源生态的基础上。但 Souq 自身的市场结构与动态,很可能意味着:其中有些产品会比另一些产品更适合开放智能的未来。
利益披露
作者通过 Robot Ventures 投资了 Together AI 与 Nous Research,同时也是 Wafer 的天使投资人。
附录
GLM-5.2。本文的大部分分析都集中在 GLM-5.2 上。原因是:我们拥有这个模型最完整的历史数据,而且它也是 OpenRouter 上竞争最激烈的市场。这里做一个简要说明。2026 年 6 月 13 日,Z.ai 发布接近前沿水平的 GLM-5.2 后,OpenRouter 经历了其历史上最显著的一轮增长。市场中原本潜藏的大量需求,推动推理服务商数量与服务商之间的竞争程度迅速上升,如下图所示。不同服务商报价之间的离散程度,在 GLM-5.2 上也比模型的前几代扩大得更快。正因为服务商数量大幅增加,我们认为这个市场最有可能出现基于缓存的操纵。

GLM-5.2 发布后的服务商进入:市场深度迅速增加,这也是它最适合研究战略性定价的原因。

不同 GLM 代际的价格离散度:GLM-5.2 的报价分化速度远快于此前几代模型。

最终快照(8 月 8 日)的市场深度与离散度:大量服务商在很宽的价格区间内报价——这是一个真正具有竞争性的盘口。
Tullock Contest 对价格的依赖
正文里的 Tullock Contest 用单一价格 Pᵢ 给每个服务商评分,但一家服务商实际上会报三种价格——输入、输出和缓存 Token 价格——OpenRouter 文档却没有说明它们如何组合。后续的一切,包括 decisiveness r 和“丢弃缓存”的激励,都取决于竞赛究竟读取哪种价格。因此,我们用两种方法来识别它,从最干净的识别方法一直做到信息最完整的方法。
我们测量两种价格依赖关系:
- 序数排序(ordinal ranking):比较梯度
∂Pᵢ/∂pᵢᴵ、∂Pᵢ/∂pᵢᶜ、∂Pᵢ/∂pᵢᴼ的相对大小。如果输入价格梯度占主导,即∂Pᵢ/∂pᵢᴵ ≫ ∂Pᵢ/∂pᵢᶜ, ∂Pᵢ/∂pᵢᴼ,就意味着复合价格主要由输入 Token 价格决定。 - 留出预测(held-out prediction):每次去掉三种价格中的一种,重新拟合 Router 的选择,再测量样本外预测指标(例如 log-loss、
R²)如何变化。
显露出来的排序。发送一个带有 sort: price、并关闭 fallback 的请求,会迫使 Router 说出自己价格排序中的第一名:无论它内部用的是什么公式,返回的那个服务商就是它认为最便宜的。大多数时候这并不能提供信息,因为通常总有一家服务商同时在三种价格上都是最低价。真正有信息量的是输入最便宜与输出最便宜属于不同服务商的情况。我们把这种情况称为 non-ordinal pricing,并每五分钟记录 OpenRouter 大多数市场中的推理服务商报价,从中识别这些案例。在两个市场(GLM-5.2 与 Kimi K3)中,64 次这样的非序数案例里,Router 64/64 全部选择了最低输入价格——甚至包括某家服务商虽然输入最便宜,但输出价格却是整个盘口最贵的情况。在 Xiaomi Mimo v2.5 Pro 上,Router 选择了 DigitalOcean:它的输入价格是每百万 Token 0.40 美元,而另外三家竞争对手的输出价格为 0.87 美元,明显低于 DigitalOcean 的 1.50 美元。若把复合价格建模为 Pᵢ = pᵢᴵ + w pᵢᴼ,其中输出权重 w ≥ 0,那么只要返回的服务商使 Pᵢ 最小,这次选择就能被合理化。我们发现,全部 64 个观察到的选择能同时成立,当且仅当 w ≤ w* = 0.043。也就是说,Router 对每 1 美元输出价格最多只赋予约 4.3 美分的权重,Mimo v2.5 Pro 的案例正好构成约束边界。综合这些证据,强烈暗示 ∂Pᵢ/∂pᵢᴵ ≫ ∂Pᵢ/∂pᵢᶜ, ∂Pᵢ/∂pᵢᴼ;不过,要把这个结论从“期望意义上成立”提升到“高概率意义上成立”,我们仍需要更长的观察时间。
留出预测。第二个测试用于测量 Pᵢ 对 pᵢᴵ、pᵢᴼ、pᵢᶜ 的依赖。我们把每一次默认路由请求都视为从实时分配规则中抽到的一次样本,并问:究竟哪些公开报价能预测最后真正提供服务的那一家?我们发送了数千次这样的请求,每一次都使用全新的 session identifier,以保证样本相互独立,然后基于报价的对数价格拟合一个简单的 Bayesian multinomial model:
Pr(i | quotes) ∝ exp(−βᴵ log pᵢᴵ − βᴼ log pᵢᴼ − βᶜ log pᵢᶜ)
我们在一部分数据上拟合,并在其余数据上用 held-out log-loss 评分。去掉缓存 Token 价格后,log-loss 到小数点后五位都完全不变——有它和没它都是 3.11040——并且拟合得到 β̂ᶜ ≈ 0:我们检测不到缓存报价带来任何样本外信息。经济学上的解释,正是正文依赖的那一点:服务商为缓存 Token 报出什么价格,并不会影响它拿到多少流量,因此服务商可以报出一个看起来很低的 headline price,同时把重复 Token 按全价收费,而在竞赛中无需为此付出任何代价。
我们测量的是行为,而不是在阅读 OpenRouter 的源代码:输入价格只是一个透明的、可观测的生产公式替代变量,我们在全文使用它时都会明确这样标注。至于“缓存报价没有额外解释力”这句话,它反映的是识别能力的边界,而不是我们对 Router 内部实现的断言——服务商通常把缓存价格设为输入价格的一个近乎固定比例,所以二者会一起变化;在我们的数据中,一个实际上使用缓存价格的规则,可能与一个完全忽略缓存价格的规则不可区分。输入与输出价格也存在同样的共线性,因为它们在报价中通常一起变动:仅靠留出回归无法把两者拆开,真正隔离出“输入价格”的,是前面的 non-ordinal test——即两者出现分歧的场景。无论如何,结论都不变:降低输入价格,才是赢得流量的关键。
缓存实验
核心主张是:Repricer 会把重复上下文按新的、未缓存输入价格计费。要验证它,必须把真正的 cache miss 与那些会产生相同表象、但其实无害的原因区分开。因此,这套实验设计不仅是在做测量,也同样是在做控制。
我们对照的市场。我们每五分钟重建一次 OpenRouter 的公开市场快照——包括每一家服务商的输入、输出与缓存 Token 价格,以及公开报告的流量和缓存使用情况——并记录每次实验前后立刻出现的推理服务商报价。只要在测量过程中报价发生变化,这个实验 block 就直接丢弃;否则,中途改价很容易被误读成服务商行为。当某服务商改价时,我们“冻结”这个事件,并把它的 endpoint 与模型构建者的 endpoint(GLM-5.2 对应 Z.ai)进行比较:所有付费请求都固定打到单一服务商,fallback 关闭。这样我们测到的是买家实际得到的东西——账单、cached-token 数量、延迟、输出质量与失败情况——而不是根据公开报价去推断。形式化地说,对每一个降价事件 e,我们都在同一个重复 Prompt 上,构造改价服务商 m 与模型构建者 b 之间的配对差分:Δₑ = sₑᵐ − sₑᵇ,然后对所有事件求平均:
Δ̂ = (1/N) Σₑ₌₁ᴺ Δₑ, N = 159
用这种差分方式计算后,改价服务商对重复输入的识别比例,比模型构建者低 71.3 个百分点(95% 区间 [−77.1, −64.8]);它传递给用户的“第二次请求节省”也低了 51.7 个百分点([−56.5, −46.7])。因为比较发生在同一个事件、同一时刻,配对差分会剔除两个 endpoint 共同受到的影响。
Prompt。每一个 session 都先用一个很长的 Prompt 建立状态,然后在后续多轮中反复发送相关请求。每个 Prompt 都带有该 session 独有的文本,因此 OpenRouter 自己的 response cache 不可能直接拿旧答案回应——我们测试的是服务商如何处理重复上下文,不是 Router 是否会重放旧答案。我们用了四类工作负载,从刻意设计得非常透明的 canary,一直到接近真实流量的任务:
- 一个 canary——“这里是一段参考文本:velvet velvet velvet ……”(把一个刚随机抽取的词重复数千次),“只回复单词 ok”——随后逐字节完全相同地再发送一次;
- 一个 record set——几千个 Token 的随机账本行,不同 session 之间绝不重复(例如“
id=7f3a2c amount=$412.18 …”),然后针对其中一行提出问题; - 一段 conversation——先问一个问题,把模型回答追加进上下文,再在不断增长的对话记录上叠加下一个问题,因此每一轮都等于上一轮内容加上一小段新增内容;
- 一条 agent trace——固定的工具调用日志(请求、工具输出、请求),只有最后一条指令发生变化。
在所有场景中,开场上下文都只属于当前 session;重复部分在不同轮次之间做到字节级完全一致,只有短短的尾部是新增内容。一个正常工作的缓存,应该能够识别除这段尾部之外的全部内容。
Treatments。围绕同一套 Prompt,我们一次只改变一个因素,每一种变化也都在检验一个无害解释。我们有时保留 session identifier、有时丢弃它:如果固定 identifier 后 miss 消失,问题就来自请求被重新分配,而不是缓存本身。我们还分别在前缀内容的 25%、75% 或全部位置做修改:如果 miss 与被改动的比例同步变化,说明缓存 key 工作正常。我们延长请求之间的等待时间:如果只有长时间间隔后才出现 miss,那只是普通 TTL 过期。由于服务商有时是在失去流量之后才降价,我们还检查缓存表现到底是在改价之后恶化,而不是之前。每一种 treatment 都在 Repricer 和模型构建者 endpoint 上使用完全相同的 Prompt、时间安排和输出计划,因此唯一变量就是“是谁提供了服务”。
超额付费归因。重复 Token 出现 cache miss,可能有两个来源:一是服务商自身的缓存行为,二是 Router 把对话重新分配给另一家服务商,而后者没有这段 warm cache。把两者拆开很重要,因为正文提出的修复方案——按实际成本 p̄ᵢ 来给竞赛定价——只作用于服务商一侧。固定 session 的实验隔离了服务商自身因素:每一个请求都发给同一家服务商、session identifier 保持不变时,激进 Repricer 能识别大约 90% 的重复 Token,而 Z.ai 约为 99%;十轮对话算下来,Repricer 仍比模型构建者便宜。也就是说,在 session 稳定时,Repricer 的缓存大体是工作的。我们记录到的超额付费,真正发生在 session 不稳定的时候:一是在重新定价事件附近,二是在默认 Router 把对话切换到一个没有共享前缀缓存的服务商时。第一个来源属于服务商属性,p̄ᵢ 可以对它实施惩罚;第二个来源属于 Router 的分配机制,只能像 Databricks 的 Router 那样,通过保持 session continuity 来消除。我们在每一处比较中都会说明识别的是哪一种来源。这个分解在经济上很重要:在 GLM-5.2 市场中,输入 Token 与缓存 Token 合计约占 Token 总量的 98%,因此重复上下文如何计费,几乎决定了一整段对话的全部成本。
有两个 caveat 限定了这些结论的边界。第一,模型构建者并不是一个特殊到不可比较的基准——那些并没有训练模型的独立第三方服务商,同样能够识别约 99% 的重复 Token,因此持续存在的缓存差距可以归因到特定服务商,而不是“第三方服务商”这一身份本身。第二,我们识别的是经济结果,而不是主观意图:实验能够证明用户持续多付了钱,而且这种差距无法由普通缓存波动(cache eviction、TTL 到期、重新部署)解释;但实验无法区分故意驱逐缓存、糟糕的实现,还是运营故障。这是有意为之,因为我们提出的修复机制针对的是测量出来的超额收费,而不是服务商动机。由于同一个 session 内的重复请求并非独立抽样,我们在 pricing event 层面计算不确定性,而不是在单次请求层面计算。
decisiveness 的测量
竞赛的 decisiveness r——也就是价格上的指数——决定了“少报一点价格”究竟只能赢得成比例的流量,还是能获得超线性的增益。因此,我们不是照抄文档中的一句话,而是根据 Router 实际做出的选择来估计它。对 Router 面对的每一组推理服务商报价——包含当时在线的服务商与实时价格——我们把它的选择建模成一次 Tullock 抽样:
Pr(i chosen | quotes) = Pᵢ⁻ʳ / Σⱼ Pⱼ⁻ʳ
随后用 maximum likelihood 拟合 decisiveness r,把我们观察到的所有选择合并起来:共 1,648 次选择、6 个模型、35 家服务商。拟合结果为 r̂ = 1.968,95% profile-likelihood 区间为 [1.82, 2.11];对 411 个价格事件 block 做 block bootstrap 后结果也一致。这实际上从真实行为中恢复出了文档所暗示的“价格平方反比”规则。按照拟合出的规则,当最便宜服务商分别面对 1、2、4 个竞争对手时,被选中的概率约为 0.61、0.49、0.40。这些概率只比随机机会高出中等程度,因为竞争服务商的报价彼此往往很接近。

Router 的实时 decisiveness,由其真正选择过的服务商拟合得出:1.968(95% profile-likelihood 区间 1.82–2.11),基于 1,648 次选择——与文档中的平方反比规则一致。
decisiveness 为 2,会让分配对价格呈现超线性:服务商输入价格按比例下降时,获得的订单流份额会以更大比例增加。这正是“低报有效价格”有利可图的机制区间——一家服务商可以降低输入报价赢得更多流量,同时不让缓存生效,再把重复 Token 按全价计费,于是它获得的份额增幅远远超过真正交付给用户的折扣。
这个估计值描述的是分配机制的一个稳定属性:它是在我们看到的所有推理服务商报价集合上拟合出来的,并不是针对某一次降价的短期响应。单个服务商改价后的即时响应噪声更大,而且通常会在一天内衰减,因为它很快达到自身容量上限,并被 Router 降低优先级。因此,这个指数刻画的是“长期维持低价的回报”——也就是服务商定价时真正会响应的量——而不是某一次改价的脉冲响应;后者更小,也更短暂。
我们如何估算用户成本
我们只估算一个总量:在 OpenRouter 的所有开放权重市场里,由于服务商把重复 Token 按新的输入价格而非缓存价格收费,用户总共多付了多少钱。我们从每天的公开数据抓取中,按“服务商–模型–日期”逐格计算,再全部求和。
设服务商 i 在日期 t 为模型 m 提供服务。我们从数据中读取它处理的 Token 数量 Vᵢ,ₜ、有效输入价格 pᵢ,ₜᴵ(每百万 Token),以及它报告的 cache-hit rate hᵢ,ₜ ∈ [0,1]。基准 h*ₘ,ₜ 是模型 m 的模型构建者自有 endpoint 按 Token 加权后的缓存命中率;如果我们观测不到模型构建者,就设 h*ₘ,ₜ = 0.90,并把上限封顶在 0.99。还需要两个常数,我们并不从数据拟合,而是外部固定:φ = 0.45,表示典型 Agent Prompt 中属于重复、可缓存上下文的比例;δ = 0.90,表示诚实缓存相对于输入价格能够去掉的价格比例。等价地说,诚实缓存会把重复 Token 定价为 pᶜ = 0.10 pᴵ,因此每一个未被识别的重复 Token,用户损失的折扣为 δpᵢ,ₜᴵ = pᵢ,ₜᴵ − pᵢ,ₜᶜ。
把识别缺口记为 gᵢ,ₜ = max(h*ₘ,ₜ − hᵢ,ₜ, 0),则实际每日超额支付为:
Rₜ = Σᵢ∉ℬ φ gᵢ,ₜ (δ pᵢ,ₜᴵ) Vᵢ,ₜ / 10⁶
求和覆盖所有开放权重服务商,但排除模型构建者自己的 endpoint 集合 ℬ;我们暂时把这些模型构建者视为诚实方,因此不计入“已实现”的超额支付。理论上限的计算则把观察到的缺口替换为完全缺口,即 gᵢ,ₜ ≡ 1,同时取消对模型构建者的排除——这是最坏情形:没有任何服务商识别缓存,包括今天被视为诚实基准的模型构建者未来也变得恶意。
Mₜ = Σᵢ φ (δ pᵢ,ₜᴵ) Vᵢ,ₜ / 10⁶
我们把每一天的数值乘以 365 年化,并报告当前 run-rate:实际观察到的超额支付大约为每年 350 万美元(约相当于 OpenRouter 每年约 1.4 亿美元收入的 2%);理论上限约为每年 1400 万美元(10%),其中仅 GLM-5.2 就占约 500 万美元。
这个数字最重要的弱点是年化处理。我们只有从 2026 年 7 月 21 日开始,才对市场有相对干净的观测——那一天我们的抓取覆盖扩大了约 15 倍;此前窗口采样不足,因此被我们丢弃。于是,可用的干净窗口只有几周,而 Rₜ 在这段期间明显不是 stationary 的:随着开放权重市场增长,每日可提取价值持续上升(前文图中已经展示)。因此,把最近一天的数字乘以 365,代表的是今天的 run-rate,而不是一个稳定的全年总量;若取更早一天来年化,结果会更小。正因为如此,我们不是直接拿单日点估计,而是在干净窗口上拟合趋势,再从当前趋势水平读取年化值。个别低交易量的“服务商–日期”单元噪声较大;把很多单元加总可以降低这种噪声,但无法彻底消除。要把当前 run-rate 当作有高置信度的年度总量来报告,还需要更长、更加 stationary 的观察窗口。
估算也依赖两个固定常数与年化窗口:在合理范围内调整 φ、δ 和观察窗口,理论上限会落在每年大约 900 万–1800 万美元之间,因此定性结论并不依赖某一个精确数字。还有三个较小的 caveat。第一,我们的抓取目前仍只覆盖 OpenRouter 总 Token 流量的大约十分之一,所以如果有偏差,聚合值反而更可能低估整个市场。第二,构成开放权重交易量 92% 的那些模型,我们都有 h*ₘ,ₜ 基准;剩余部分使用前述保守默认值。第三,这里估计的是用户多付的钱,不是服务商利润:我们看不到服务商的真实成本,因此不对其利润率作任何断言。
注释
[1] Carliss Y. Baldwin 与 Kim B. Clark,Design Rules, Vol. 1: The Power of Modularity(Cambridge, MA: MIT Press, 2000),https://direct.mit.edu/books/monograph/1856/Design-Rules-Volume-1The-Power-of-Modularity;Yannis Bakos 与 Erik Brynjolfsson,“Bundling Information Goods: Pricing, Profits, and Efficiency,” Management Science 45, no. 12 (1999): 1613–1630,https://pubsonline.informs.org/doi/10.1287/mnsc.45.12.1613。
[2] Kyle Wiggers,“DeepSeek claims ‘theoretical’ profit margins of 545%,” TechCrunch,2025 年 3 月 1 日,https://techcrunch.com/2025/03/01/deepseek-claims-theoretical-profit-margins-of-545/。Minimax 与 Z.ai 并没有公开可比的披露数据。
[3] Moonshot AI,“Kimi K3 License,” 2026 年 7 月,https://huggingface.co/moonshotai/Kimi-K3/raw/main/LICENSE。任何 Model-as-a-Service 运营商,只要任意连续 12 个月的总收入超过 2000 万美元,就必须与 Moonshot 另行签订商业协议;月活跃用户超过 1 亿,或月收入超过 2000 万美元的产品,还必须在界面中额外展示“Kimi K3”。
[4] Commodity Exchange Act § 4c(a)(5)(C), 7 U.S.C. § 6c(a)(5)(C)(禁止“spoofing,即在下单或报价时意图在成交前撤销该订单或报价”),https://www.law.cornell.edu/uscode/text/7/6c;另见 CFTC,“Antidisruptive Practices Authority,” Interpretive Guidance and Policy Statement, 78 Fed. Reg. 31890(2013 年 5 月 28 日),https://www.govinfo.gov/content/pkg/FR-2013-05-28/pdf/2013-12365.pdf。
[5] Benjamin Edelman、Michael Ostrovsky 与 Michael Schwarz,“Internet Advertising and the Generalized Second-Price Auction,” American Economic Review 97, no. 1 (2007): 242–259,https://www.aeaweb.org/articles?id=10.1257/aer.97.1.242。关于买家实际收到伪造或低于承诺质量的广告展示,见 Muhammad Ahmad Bashir 等,“A Longitudinal Analysis of the ads.txt Standard,” Proc. ACM IMC ’19 (2019),https://doi.org/10.1145/3355369.3355603。拍卖平台本身也可能成为操纵者:在 United States v. Google LLC(E.D. Va., 2025 年 4 月 17 日)一案中,法院认定 Google 垄断了开放网络展示广告交易所与发布商广告服务器市场;庭审证据显示,Google 在自己运营的拍卖中偏袒自家交易所,https://en.wikipedia.org/wiki/United_States_v._Google_LLC_(2023)。
[6] Irena Gao、Percy Liang 与 Carlos Guestrin,“Model Equality Testing: Which Model Is This API Serving?”(ICLR 2025),https://arxiv.org/abs/2410.20247。该研究发现,31 个商业 endpoint 中有 11 个提供的分布与参考 Llama 权重不一致。另见 Moonshot AI 的 K2 Vendor Verifier,https://github.com/MoonshotAI/K2-Vendor-Verifier;它会把第三方 Kimi API 服务商与官方 endpoint 进行基准对比。
[7] 从经济学角度看,行业所称的 routing,本质上是一个双边匹配问题:capability matching 把任务与模型匹配,execution matching 则把请求与推理服务商匹配。经典匹配市场理论见 David Gale 与 Lloyd S. Shapley,“College Admissions and the Stability of Marriage,” American Mathematical Monthly 69, no. 1 (1962): 9–15,https://doi.org/10.2307/2312726;以及 Alvin E. Roth 与 Marilda A. Oliveira Sotomayor,Two-Sided Matching(Cambridge University Press, 1990)。在 OpenRouter 上,capability matching 是可选的——默认情况下由应用直接指定模型,Router 只做 execution matching。
[8] 不同 Router 会分别实现、组合或跳过这些阶段——在 OpenRouter 上,capability routing 是可选功能(openrouter/auto);默认情况下应用直接指定模型,只执行 execution routing。见 https://openrouter.ai/docs/guides/routing/routers/auto-router。
[9] Uber,“Scaling GenAI at Uber with the GenAI Gateway,” https://www.uber.com/us/en/blog/genai-gateway/;Grab,“Grab AI Gateway,” https://engineering.grab.com/grab-ai-gateway;LinkedIn,“Behind the Platform: The Journey to Create the LinkedIn GenAI Application Tech Stack,” https://www.linkedin.com/blog/engineering/generative-ai/behind-the-platform-the-journey-to-create-the-linkedin-genai-application-tech-stack;Expedia Group,“Gateways, Guardrails and GenAI Models,” https://medium.com/expedia-group-tech/gateways-guardrails-and-genai-models-aa606379164d;Instacart,“Simplifying Large-Scale LLM Processing across Instacart with Maple,” https://tech.instacart.com/simplifying-large-scale-llm-processing-across-instacart-with-maple-63df4508d5be;Palantir,“LLM Capacity Management,” https://www.palantir.com/docs/foundry/aip/llm-capacity-management。
[10] Arena(原 LMArena/Chatbot Arena),https://arena.ai。方法论见 Wei-Lin Chiang 等,“Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference”(ICML 2024),https://arxiv.org/abs/2403.04132。
[11] 这里说“更难被操纵、更昂贵”,精确含义是:提高 decisiveness 指数,会提高为了推动分配结果而必须在均衡中投入的支出;rent dissipation 会随着指数上升,并在指数高于 2 时达到对争夺租金的完全耗散。见 Gordon Tullock,“Efficient Rent Seeking,” 收录于 Toward a Theory of the Rent-Seeking Society(Texas A&M University Press, 1980),97–112;Michael R. Baye、Dan Kovenock 与 Casper G. de Vries,“The Solution to the Tullock Rent-Seeking Game When R > 2,” Public Choice 81 (1994): 363–380,https://personal.eur.nl/cdevries/Articles/publicchoicesolutiontullock.pdf。
[12] 严格来说,还有第四种报价:按请求/按图片计费的价格。
[13] Gordon Tullock,“Efficient Rent Seeking,” 收录于 Toward a Theory of the Rent-Seeking Society,James M. Buchanan、Robert D. Tollison 与 Gordon Tullock 编(College Station: Texas A&M University Press, 1980),97–112;Kai A. Konrad,Strategy and Dynamics in Contests(Oxford: Oxford University Press, 2009),https://global.oup.com/academic/product/strategy-and-dynamics-in-contests-9780199549603;Luis C. Corchón 与 Marco Serena,“Contest Theory,” 收录于 Handbook of Game Theory and Industrial Organization, Volume II(Cheltenham: Edward Elgar, 2018),125–146,https://www.elgaronline.com/edcollchap/edcoll/9781788112772/9781788112772.00013.xml。
[14] OpenRouter,“Provider Selection,” https://openrouter.ai/docs/guides/routing/provider-selection。默认负载均衡器按照价格平方的倒数给服务商分配权重,并对近期发生故障的服务商降权。
[15] 这就是机制设计中熟悉的 false-name manipulation:只要某种分配机制可以跨身份相加,并且对努力的回报是超线性的,把一个身份拆成多个身份就会得到额外奖励。我们机械重放 GLM-5.2 的公开推理服务商报价后发现,若同一所有者拆出 10 个经济上完全相同的重复 endpoint,其总份额大约会提高 4 倍。我们目前没有证据显示有服务商真的这样做;自然的修复方式,是按所有者——或者按 delivery grade——聚合,而不是按 endpoint 聚合。
[16] OpenRouter 文档没有明确给出复合价格的定义;我们通过确定性的 price-sorted 请求,以及利用公开报价预测默认路由选择来测量它。见方法附录。
[17] “今天赢得流量,从而成为明天的 incumbent”是经典的 switching-costs 逻辑。见 Paul Klemperer,“Markets with Consumer Switching Costs,” Quarterly Journal of Economics 102, no. 2 (1987): 375–394,https://academic.oup.com/qje/article-abstract/102/2/375/1922549。
[18] 这条主张的边界是:当我们把请求固定到某个 Repricer,并保持 session identifier 不变时,它的缓存大体能够工作——大约 90% 的重复 Token 会被识别。失败主要集中在重新定价事件与服务商切换时。要区分“故意驱逐缓存”与“运营层面的缓存丢失”,需要我们拿不到的服务商内部数据;但无论原因是什么,账单后果并不会因此改变。
[19] 这里的外推假设后续轮次成本维持在已观察到的第二次请求水平;我们正在直接测量多轮、固定 provider 的 session,未来将用直接测量替代这项外推。
[20] 一个显眼的 headline price,配上一项经济上重要但不那么显眼的后续成本,属于经典的 shrouded-attributes 模式。见 Xavier Gabaix 与 David Laibson,“Shrouded Attributes, Consumer Myopia, and Information Suppression in Competitive Markets,” Quarterly Journal of Economics 121, no. 2 (2006): 505–540,https://academic.oup.com/qje/article/121/2/505/1884013。
[21] OpenRouter,“Provider Selection,” https://openrouter.ai/docs/guides/routing/provider-selection。默认负载均衡器按价格平方的倒数给服务商分配权重,并对近期发生故障的服务商降权。
[22] 我们最初考虑过,把真实支付分布与公开报价隐含的 Tullock 分布进行比较(例如用 KL divergence)。后来放弃了:只要不同服务商的预期账单不同,payment share 与 request share 就会天然不同,因此即便所有参与者都完全诚实、只是价格异质,也会出现正的 divergence——它无法识别 shading。
[23] Databricks,“Smart Routing in Unity AI Gateway: Match Frontier Quality at 30% Lower Cost Per Task,” 2026,https://www.databricks.com/blog/smart-routing-unity-ai-gateway-match-frontier-quality-30-lower-cost-task。它的 Router 会在一个 session 开始时评估任务复杂度,并在整个 session 期间固定模型,明确目的是保留 provider-side cache efficiency。
[24] 通过 proposer–builder separation 实现。见 Flashbots,“MEV-Boost: Introduction,” https://docs.flashbots.net/flashbots-mev-boost/introduction。
[25] Architect Financial Technologies,新闻稿,2026 年 5 月 28 日,https://www.prnewswire.com/news-releases/architect-financial-technologies-to-launch-us-futures-exchange-for-compute-and-ai-commodities-following-dcm-acquisition-302784564.html;ICE 与 Ornn,新闻稿,2026 年 5 月 19 日,https://ir.theice.com/press/news-details/2026/ICE-and-Ornn-to-Launch-GPU-Compute-Futures-Contracts/default.aspx;CME Group 与 Silicon Data,新闻稿,2026 年 5 月 12 日,https://www.silicondata.com/news-room/cme-group-and-silicon-data-partner-to-launch-first-compute-futures;Compute Desk(The Compute Index, Inc.),https://www.compute-desk.com/。