深度测评 Cursor 实际性能和成本,揭示看似简单的代码改动背后的巨大 token 消耗,对评估 AI 编辑器性价比有直接价值。
与直接 API 调用相比 4 倍到 7 倍的开销
那天下午我发现了我的 AI 订阅实际在做什么,以及随后的 200 行代码将我的账单降低了 41%。
我使用 Cursor 已有六个月,那时我注意到了差异。我正在重命名一个函数。一个很短的函数。函数体三行。只有一个调用点。这种重构最多需要六秒钟的人工注意。
我打开了两个窗口。一个是我输入了"rename getUser to fetchUser"的 Cursor 聊天面板。另一个标签页是 Anthropic 控制台,因为我早前在调试另一个项目,忘记关闭了。
当 Cursor 请求在进行中时,Anthropic 控制台刷新了。我看着 token 计数器实时上升。那个单一重命名请求最后的数字是 8,400 个输入 token。我实际输入的 prompt 只有十一个单词。
我坐了一会儿。然后我打开了一个新终端,通过 Anthropic API 直接进行了相同的调用,用我自己最小化的 prompt。相同的模型。相同的意图。相同的结果。
直接调用使用了 1,900 个输入 token。Cursor 为了执行同样的重命名多发送了 6,500 个 token 的上下文。
这个观察开启了随后那个电子表格,它吞掉了我那晚接下来的四个小时。
我没有 Cursor 内部的深入知识。我有自己的实验和公开文档,两者都无法给出完整的图景。这是我的发现:当我在代码库不同部分运行相同的 prompt 50 次时,输入 token 计数在大约 4,000 到 14,000 之间波动,中位数约为 8,000。变化与我打开的缓冲区数量和最近查看同目录文件的时间有松散的关联。
合理的推论是 Cursor 发送了一个系统 prompt,加上从我最近活动派生的索引上下文,加上 agent 框架的工具定义,加上我实际输入的 prompt。前三个是路由层在做它的工作。第四个是我在聊天面板上唯一能看到的。
其中一些上下文很有帮助。当我要求一个涉及多个文件的重构时,Cursor 了解这些文件正是关键所在。当我要求重命名一个调用点能放在三行上下文的函数时,发送 6,500 个 token 的无关缓冲区状态是路由层以对 Cursor 的好处大于对我的好处的方式为我保守行事。
Cursor 收取固定的座位费。Anthropic 按 token 向 Cursor 收费。对我这样的重度用户来说,经济学走向了错误的方向,因为边际 token 成本最终落在我自己的直接 API 调用(Cursor 的座位不包括这个)加上固定座位本身。保守的上下文发送成本低廉,消费成本高昂。激励机制落在了错误的一侧。
我的三月账单在四月二日到达。Anthropic 项目在连续三个月内月环比增长了 50%。Cursor 的 $20 保持不变。Copilot 的 $10 保持不变。可变项是我从自己的 CLI 为 Cursor 不适合的任务调用的 API。
增长不是来自做更多工作。我检查过了。我每周记录的工作时数很稳定。增长来自于这些工作时间中涉及 AI 调用的比例不断增加,因为 AI 变得更有用,我更随意地进行调用。
趋势是线性的。如果我外推,到八月,我将在直接 Anthropic API 支出上花费比 Cursor 座位更多的钱,而我的 Cursor 座位仍然会在每次聊天面板交互上运行相同的保守上下文开销。账单会继续在两处同时增长。
那个周末我取消了 Cursor。
这个东西很小,小到我为没有在几个月前就构建它而感到尴尬。一个基于正则表达式的意图分类器,五条规则。琐碎的 prompt 路由到 Haiku。代码 prompt 路由到 Sonnet。规划 prompt 路由到 Opus。嵌入风格的分类 prompt 路由到便宜的 OpenAI 模型。如果没有匹配则默认为 Sonnet。
这就是整个路由逻辑。两百行 TypeScript,包括导入、错误处理、一个定价表和一个实时记录每次调用成本的计算器。整个文件如果你的显示器足够高可以一屏显示。
我在上周记录的一百个 prompt 上测试了它。分布有了显著变化。Sonnet 从调用的 70% 降到 25%。Haiku 从零升到 60%。Opus 保持在 5%。测试集上的估计成本减少是 47%。
我不相信这个数字。我假设代码有 bug。我对路由器进行了工具化,以在实时记录每个 prompt 选中的实际模型和成本,然后我运行了两周的正常工作流程。实际减少在五月二日的账单上达到 41%,总调用数增加了 30%,因为更便宜的单次调用成本让我更频繁地求助于 AI。
路由层是当前 AI 工具栈中最有价值的部分,而包装器们最想拥有的正是这一部分。
我在过去 90 天内检查的每个编码工具都提供了一个模型下拉菜单。Cursor 添加了一个。GitHub Copilot 添加了一个。Windsurf 添加了一个。他们讲的故事是用户选择。但我认为下面的故事是,他们都注意到了我在四月注意到的同样的事情。用户可以路由他们自己的调用。用户正在这样做。如果包装器不拥有路由层,他们就只拥有一个聊天面板和一个自动完成,再没有其他。
聊天面板是真实的价值。自动完成是真实的价值。但对于一个重度用户来说,他们不值 $20/月,尤其是当这个用户宁愿直接路由时。他们的价值大约是 $5 到 $10/月,按照他们实际节省的工作量计算。
我认为我们离一波用户做这个分析还有两个季度。包装器知道这一点。定价页面开始反映这一点。
三件事,按重要顺序。
第一:打开 Anthropic 控制面板。看看你三个正常 Cursor 交互的输入 token 计数。如果数字比你的直接调用基线高超过 3 倍,那么路由层在你的使用模式下不足以覆盖成本。这不是说要取消。这是说要注意。
第二:记录你做的每个 AI 调用,持续一周。每次调用的成本、选中的模型、prompt 长度、输出长度。日志每个提供者只需二十行代码。数据会让你吃惊。没有诚实的方式来优化一份你看不到的账单。
第三:写路由器。两百行。第一个版本不必很聪明。五个正则规则进行意图捕获就能抓住 70% 的节省。之后迭代这些规则。
我为什么会告诉三月的自己这些事的原因是:我会进行相同的分析,时间早三个月,从而节省大约 $300 的订阅重复。做这个分析的成本:一个周六下午。不做的成本:你的账单在下一个季度增长到多少,这对大多数现在用 AI 构建的人来说,是一个他们不想承认的数字。
路由器不给我一个多文件编辑 agent。它不索引我的代码库。它不知道我打开的缓冲区。它不进行行内自动完成。这些都不是它的工作。
我为 VS Code 中的行内幽灵文本保留了 Copilot,因为那是一个解决不同问题的不同产品,$10 不是让我心疼的价格。对于我会用 Cursor 做的多文件 agent 工作,我现在从终端使用 Claude Code,我通过 Max 计划单独为此付费。总堆栈比 Cursor 加我旧的直接 API 支出更便宜。
如果你的使用模式不同,你的数学也会不同。如果你主要在聊天面板中工作,很少走出去,Cursor 可能仍然是公平的交易。如果你的 AI 工作跨越聊天、agent 循环、嵌入管道和一次性 CLI 调用,路由层是值得自己拥有的唯一部分。
账单在四月二日到达。新账单在五月二日到达。它们的差异是 41% 和 200 行代码,以及一个周末下午——我本来会在电影前半睡不醒地度过。
这个教训本应很明显。包装器有激励发送比必要更多的 token。用户有激励发送更少的。路由层是这两个激励相遇的地方。谁拥有路由层,谁就赢。
路由层可以是 200 行你的代码。
作者:GDS K S(thegdsks.com),正在开发 Glincker。如果这有帮助,在 X / @thegdsks 上关注我。我写关于 AI 栈供应商从定价页面隐瞒的部分。
一些评论可能仅对已登录用户可见。登录以查看所有评论。
如需进一步操作,你可以考虑屏蔽此用户和/或举报滥用。