Case Studies · Parhum Khoshbakht

WordPress 插件团队的 AI 辅助开发经济学

一支交付 WordPress 网站统计插件的小团队的真实成本核算。优化前的 Anthropic 账单是什么样、现在又是什么样、以及复合节省到底来自哪里。

第 1 个月里我们诚实回答不了的一个问题

把 Claude Code 当作日常协作者来交付一款 WordPress 插件,到底要花多少钱?

构建 Statnive 的第一个月,我们答不上来。账单看得到。但驱动账单的因素是什么,看不清楚。有些日子是 $3,有些日子是 $11,方差与当天交付的代码量没有明显相关性。

四个月后,我们对全貌有了更清晰的认识。本文是这份成本核算:钱花在哪里、复合起来大约带来 2–3 倍 节省的四个杠杆,以及那个比任何单项优化都重要的数字。

要点:在工程产出不变的前提下,每日支出从 约 $6/天降到 $2–3/天。这些节省不是相加的,而是相乘的。

AI 支出实际花在哪里

Anthropic 针对 Claude Code 相关模型的定价,截至 2026 年初:

模型输入 / MTok输出 / MTok适用场景
Haiku 4.5$1$5只读探索、验证、常规修复
Sonnet 4.6$3$15标准开发工作
Opus 4.7$5$25复杂架构、深度推理

朴素地看,挑一个模型,按它的费率乘以 token 消耗付钱。但真实情况要更细,下文四个优化杠杆中有三个就是利用了这一点。

作为参考,每类操作的典型 token 预算如下:

操作类型典型 tokens实际耗时
简单修复(Haiku)2K–5K1–2 分钟
标准功能(Sonnet)10K–20K5–10 分钟
复杂重构(Sonnet + 扩展思考)30K–50K15–25 分钟
架构评审(Opus)50K–100K20–40 分钟

把这些操作乘以一个工作日,就是单个工程师 ~$6/天 的来源。再乘以一年,优化这件事就值得认真对待了。

杠杆 1 — 提示缓存(稳定前缀约 90%)

Claude Code 会自动缓存每次会话的稳定前缀:系统提示、内置工具定义、技能元数据,以及根目录的 CLAUDE.md。缓存读取的费用是 基础价格的 0.1 倍 —— 在被缓存的部分上 降低 90%

大多数环境下,稳定前缀超过 50K tokens。没有缓存,每一轮对话都要重新计费这 50K tokens;有了缓存,第一次之后每一轮只按 10% 的费用读取。

两条实操规则:

  1. 内容排序:静态在前,动态在后。 缓存命中需要前缀完全匹配。如果会话开头放了任何动态内容,就会击穿缓存,被迫整段重读。我们把根 CLAUDE.md 和技能元数据放最前,把动态上下文(变更过的文件、当前分支状态)放最后。
  2. 不要让会变的东西污染前缀。 这就是保持 CLAUDE.md 精简的真正原因 —— 您删掉的每一个字节,都是文件变更时不需要重新缓存的字节,而且较短的缓存前缀在过期后刷新成本更低。

缓存是单项最大的成本杠杆,而且大部分是自动的。功夫在于不破坏它。

杠杆 2 — 模型路由(被路由的部分 3 倍)

Haiku 4.5 每 token 比 Sonnet 便宜 3 倍。在只读和验证类任务上,能力差异很小。Anthropic 建议 约 80% 的常规任务默认使用 Haiku

实际中我们的路由如下:

任务模型原因
代码探索(“找出所有调用 X 的地方”)Haiku(子代理)只读、确定性
测试失败分诊Haiku(子代理)模式匹配、判断量小
标准功能实现Sonnet(主会话)生产工作的默认
架构决策、模式设计Opus(主会话,偶尔)难推理时溢价值得
代码评审Haiku(fork 子代理)读密集,返回摘要

路由与 子代理 配合时威力最大,因为子代理有独立于主会话的模型设置。我们可以让主对话跑在 Sonnet 上,让一个 fork 子代理在 Haiku 上做读密集型工作。模型路由发生在技能边界,而不是会话边界。

杠杆 3 — 子代理隔离(主上下文减少约 37%)

子代理(也叫 fork 代理)有自己独立的 200K-token 上下文窗口。在子代理内部完成的工作不会污染主对话,只有摘要会返回。

Anthropic 文档显示,子代理可以从超过 10,000 tokens 的内部工作中 只返回约 500–1,000 tokens —— 在复杂任务上大致相当于 主上下文减少 37%

两个成本效应:

  1. 直接的 token 节省。 一次读了 30 个文件后给出结论的代码评审,会在隔离环境内消耗它的 tokens。如果没有隔离,那 30 次文件读取就会留在主上下文里,每一轮后续对话都被重新计费(缓存生效的部分另算)。
  2. 由质量驱动的 token 节省。 长上下文会降低检索质量 —— 研究记录到,当上下文被填满时,性能下降 15–47%,即”中段迷失”问题。质量下降意味着更多重试、更多重读、更多 tokens。保持主上下文整洁能避免这一整类浪费。

权衡也是真实的:代理团队的总 token 用量大约是标准会话的 7 倍,因为每个代理都会启动一个新实例并自带初始化开销。我们接受这一点,因为我们优化的不是总 token,而是主上下文的整洁度和整体吞吐。而 Haiku 上的子代理无论如何都很便宜。

杠杆 4 — MCP 工具延迟加载(约 85%)

我们在 关于 MCP 工具搜索的那篇文章 里做了详细介绍。简短版:

二十四个 MCP 连接器在不做延迟加载时,每次会话约消耗 135,000 tokens 的基线开销。Tool Search 把它降到了 约 3,000 tokens 的索引,完整 schema 按需加载。降低 85%,准确率反而 提高了,会话也不再憋屈。

成本效应:每一个基线开销 token,都是每次会话缓存前缀里的一部分。砍掉 13 万 tokens 的开销,就是砍掉 13 万 × 单 token 价格的 0.1 倍 × 每次会话的缓存读取。即便只按 10% 的费用算,对一名持续工作的工程师而言,也是每月数百美元。

复合乘数

下面是头条数字捕捉不到的部分。这四个杠杆是 相乘的,不是相加的。

设想一个基线会话在 5 分钟任务上烧掉 $0.30。逐个套用每个杠杆:

杠杆效果累计成本
基线$0.30
提示缓存(稳定前缀降低 90%)稳定前缀约占会话 tokens 的 70%~$0.12
模型路由(Haiku 适用部分降至 1/3)约 50% 的工作适用 Haiku~$0.07
子代理隔离(主上下文减少 37%)主上下文缩小,重新计费的部分变少~$0.05
MCP 工具延迟加载(工具 schema 开销降低 85%)schema 不再进入基线~$0.04

每一步都不显眼,组合起来却很惊人。具体百分比并不重要 —— 结构性的洞见是:token 成本优化之所以能复合相乘,是因为它们作用在账单中互相重叠的部分。修好其中四项,就能改变量级。

这就是为什么在交付内容不变的前提下,我们的每日支出从 约 $6 降到了 $2–3。同样的代码、同样的测试、同样的发布节奏。只是默认配置不同了。

我们现在把钱花在什么地方

优化之后,Statnive 一个典型的工程日:

活动大约成本
早晨在一个开放 PR 上做代码评审(fork、Haiku)~$0.20
在 React 仪表盘里做 2 个标准功能(Sonnet,开启缓存)~$0.80
1 次发布闸门(statnive-release 技能)~$0.30
文档/博客文章草稿~$0.40
杂项探索与问答~$0.50
合计~$2.20

整个团队,每月 Anthropic 账单远低于一份普通 SaaS 订阅的价格。作为对照:这笔账单资助了一位 AI 协作者,帮助交付一款被真实业务使用的 WordPress 插件,每次发布都要通过 248 项测试和 22 道发布闸门

扩展思考:把关键词与任务匹配

一个值得了解的定价细节:Claude 的扩展思考模式按关键词分配预算:

关键词思考预算
think5K–10K tokens
think hard20K–50K tokens
think harder50K–100K tokens
ultrathink100K–128K tokens(最大值)

这些 tokens 计入输入。够用就用最便宜的那个。常规工作我们默认不加思考修饰,非平凡的设计决策用 think hard,只有真正的架构问题、深度推理能产生回报时才用 ultrathink。在改一个错别字时去用 ultrathink,相当于为了打开一个网页而开 50 个标签页的 Chrome 窗口。

会话卫生与杠杆同样重要

一个反直觉的发现:每日成本中最大的方差来自会话长度,而不是技能或工具配置

不重置上下文的长时段自治会话会逐步降低质量。“中段迷失”效应 —— 上下文填满时性能下降 15–47% —— 直接转化为更多重试、更多重读、更多被浪费的 tokens。跑过 80% 上下文水位的会话,做相同的工作,成本是较短会话的 2–3 倍。

两条卫生规则我们已经固化进工作流:

  1. 不相关任务之间用 /clear 从前端 bug 切换到发布闸门改动,是两段不同的对话。清理上下文不花钱,能避免污染。
  2. 在 60–70% 上下文水位主动 /compact,而不是等到 95% 的自动压缩阈值。 在临界点的自动压缩是一种慌乱操作,会丢失信息。主动压缩保留重要状态、清掉噪声。

把状态持久化到文件、而不是对话历史里,可以让这两条规则都安全 —— 重要的东西都在磁盘上,clear 不会丢。

我们没去优化的部分

  • 我们还没按技能维度量化成本。 通过 Anthropic 计费可以看到每日总额,本地 /cost/stats 命令可以做点抽查,但没有按技能归属的口径。ccusage(读取 Claude 本地 JSONL 会话文件)和 Claude-Code-Usage-Monitor 之类的工具是存在的,我们还没集成。
  • 子代理比例可能仍然偏低。 我们在评审和审计上积极使用 fork 模式,但相当比例的标准工作其实也可以 fork 出去,进一步保持主上下文整洁。我们没做严格的测量。
  • 我们没做正式的 A/B 对比。 $6 → $2–3 这个数字来自优化稳定后与稳定前的对比,背后没有受控实验。您的情况会不一样。

再砍一半成本要付出什么

诚实的答案:大概不值得。

可以更激进地用 Haiku,可以把更多工作打包进子代理,可以在技能里写更严苛的输出预算契约。每一项也许还能再省 10–20%。

多招一名工程师的成本,是我们整个 Anthropic 支出的好几倍。把工程时间花在优化 AI 成本上、过了某个点之后,就是把工程时间从 真正的产品 上挪走。会话憋屈或账单令人意外时我们才优化,否则就交付。

试用 Statnive

注重隐私的 WordPress 网站统计插件,由一支既看重成本核算、也看重测试覆盖的团队打造。从 WordPress.org 免费安装 Statnive —— 数据留在您自己的服务器上,我们的支出留在一条预算线上,并且 整个工程实践都是开源的

免费获取 Statnive