成本优化 · 2026 · 官方博客 · 续篇图号 GP-COST-02 · 三个命令

用 Claude Code 的三个命令
优化 API 成本

prompt-audit 检查旧提示词,cost-optimize 审计 API 开销,hillclimb 根据评测结果搜索配置。在 Anthropic 的客服基准实验中,hillclimb 从 Opus 4.8 换到 Sonnet 5,再根据失败工单修改提示词,最终在测试集上提高了准确率,成本约为原来的五分之一。

来源claude.com/blog《Reducing cost and improving performance with Claude Platform》 作者Lance Martin · Anthropic · 2026-09-08 前篇站内《按每个任务算成本》(2026-08-21) 内容命令分工 · 迁移实验 · 配置搜索 · 缓存操作
claude-api skill anthropics/skills · Claude Code 加载 prompt-audit 清理旧提示词 模型迁移后运行 cost-optimize 分析 token 去向 确定优化顺序 hillclimb 划分评测集 迭代搜索配置 eval(评测集) 不需要 eval 虚线 = 有 eval 才能比较模型与 effort 的成本和表现 · 实线 = 必须有 eval 才能运行

GenAI Playbook · 官方博客解读 · 文中实测均来自 Anthropic

命令分工

检查提示词、审计成本、搜索配置

检查旧提示词、追踪 token 开销、反复测试模型与配置,Claude Code 中的三个命令分别承接这些工作。prompt-audit 清理旧提示词中不再适用的写法,cost-optimize 查找 API 应用的降本空间,hillclimb 则根据评测结果持续调整配置。

三个命令来自 Anthropic 开源仓 anthropics/skills 中的 claude-api skill,Claude Code 加载其中的说明与脚本后即可使用。Anthropic 负责 Claude Platform 与这项 skill 的工程师 Lance Martin,在 2026 年 9 月 8 日的官方博客中介绍了它们的分工与实测结果。缓存、旧提示词与 effort 的降本机制已在前篇《按每个任务算成本》中展开,这篇接着看命令如何执行这些优化。

三个命令对评测集的要求不同。这里的 eval 指一组用于衡量配置准确率与成本的任务。

不需要 eval
升级模型后
/claude-api prompt-audit

检查工作目录中的提示词、skill 和工具描述,删除为旧模型编写、如今不再适用的写法。范围既包括 Claude API 应用代码,也包括 CLAUDE.md、skills 等 Claude Code 配置。

eval 可选
审计 API 成本
/claude-api cost-optimize

先统计 token 开销,再检查缓存、精简请求内容、限制输出,并将无人值守任务交给 Batch API;其中也会运行 prompt-audit。有 eval 时,再比较不同 effort 和模型的成本与表现。

必须有 eval
迭代调整配置
/claude-api hillclimb

把 eval 拆成训练集和测试集。根据训练集中的失败样本调整配置,最后用未参与搜索的测试集验收。

官方按上述顺序介绍了适用场景:模型升级后检查提示词,API 应用需要降本时审计成本,有评测集时再搜索配置。这些命令并非都要等评测集准备好才能使用。

第一条主线 · 旧提示词

清理旧提示词:成本下降,准确率上升

模型升级了,为旧模型补短板的指令却可能一直留在提示词里。新一代 Claude 更严格地按字面执行时,原本的补救措施可能增加 token 消耗,甚至引发错误。博客把这类不再适用的写法称为反模式,列出了六类。

反模式例子前沿模型上的表现
核验仪式double-check your workverify twice before responding往往会被模型按字面执行,增加 token 消耗
强调与加码Be maximally thoroughCRITICAL: YOU MUST ALWAYS…可能让回答更长,并增加工具调用
强制流程与 scratchpad 脚手架think step by step in a scratchpad可能与模型的内建推理叠加,增加 token 消耗
过时的少样本示例按旧模型失败模式挑出来的范例可能让新模型在不需要时模仿较长的推理过程
互相矛盾的规则always refund within policynever issue refunds without escalation可能被指令跟随能力更强的新模型更严格地执行,表现变差
过时的配置旧模型使用的手工 thinking 预算升级后可能被 Claude Platform 直接拒绝

Anthropic 在一个客服基准上测试了 Opus 4.8 → Opus 5 的迁移。实验从一份干净提示词出发,每次只植入一个反模式,形成六份旧提示词:一个已弃用的 thinking 设置、一对矛盾的退款规则、一个手工 scratchpad、verify twicebe maximally thorough,以及一个强制六步流程。

每份提示词都在三种配置下评测:使用 Opus 4.8;只更换 model ID,改用 Opus 5;先运行 /claude-api prompt-audit,再改用 Opus 5。图 3 展示六份提示词的平均结果。

审计后,平均成本降 14.6%,准确率升 5.3%。图中的三个点分别是:Opus 4.8 旧提示词 2.52¢ · 89.4%;Opus 5 未审计 3.43¢ · 91.7%;Opus 5 审计后 2.93¢ · 97.0%。图内把审计这一步标为 +5.3 点、−0.49¢。

2.0¢2.5¢3.0¢3.5¢4.0¢ 859095100 每工单成本(分) 准确率(%) 只更换 model ID 运行 prompt-audit:+5.3 点、−0.49¢ Opus 4.8 · 旧提示词 2.52¢ · 89.4% Opus 5 · 未审计 3.43¢ · 91.7% Opus 5 · 审计后 2.93¢ · 97.0%
图 3 · 客服基准,六份旧提示词的平均 · 重画自官方图 3

同一句「核验两遍」,在 Opus 5 上变成了每次退款都查询两遍订单;「尽可能彻底」则触发了几十次不必要的知识库搜索。博客将成本下降归因于删除了这些多余调用和重复推理。

准确率的改善,博客追溯到了三个具体故障:

  • 已弃用的 thinking 设置让 API 拒绝了所有路由请求。
  • 两条退款规则互相矛盾,Opus 5 因而暂扣了四笔本应退还的款项,转而要求客户确认。
  • 手工 scratchpad 要求模型把推理过程写出来,却与内建 thinking 互相干扰。三张工单中的工具调用只写进了推理过程,没有执行。
与站内另一篇的区别

站内 《提示词在给 coding agent 派活》讨论的是用户在 prompt 中的措辞让 agent 承担了多余的工作量;这里审计的是为旧模型写的话被新模型照字面执行,两者机制不同。

这次实验中的 5.3 点和 14.6% 都来自 eval 测量。没有 eval,prompt-audit 仍能删除反模式,却无法衡量这些改动对任务表现的影响;effort 的取舍同样需要 eval 才能判断。

第二条主线 · effort

提高 effort,增加的成本换来了什么

effort 控制模型在推理上投入多少:从 lowmediumhighxhighmax,低档通常更快得出结论,高档会花更多时间推敲、核验和探索替代方案。博客给出的三组实测,分别展示了提高档位的收益、最后一档的收益递减,以及新模型在低档追平旧模型高档的情况。

在 Cognition 的编码基准 FrontierCode 上,Diamond 子集包含其中最难的 50 题。Fable 5 从 low 的 11.5%、每任务 $5.35,升到 max 的 30.9%、每任务 $19.00:成本增至约 3.5 倍,分数增至约 2.7 倍(+19 点)。图 4 标注的差值为 +19.4 点,中间三档没有标注具体点值。

$5$10$20 0102030 每任务平均成本(美元,对数轴) 分数(%) lowmedhighxhighmax 11.5% · $5.35 / 任务 30.9% · $19.00 / 任务 +19.4 max 成本约为 low 的 3.5 倍
图 4 · Fable 5 · FrontierCode Diamond(最难 50 题)· 中间三档原图无数值,仅保留曲线形态 · 重画自官方图 4

Fable 5.1 的最后一档收益则明显缩小。在 Humanity's Last Exam 上,low 约 53%、每题约 $0.30,max 约 61%、每题约 $2.23。这项由 Center for AI Safety 与 Scale AI 联合推出的基准包含 2,500 道专家级跨学科题目,博客中的测试不使用工具。最后一步升到 max 只增加约半分,成本却提高 46%。这点增益仍未超出重复运行时分数的自然波动范围,博客据此判断,增加的成本没有带来可测的收益。

换一代模型,结果又不同。在 Cursor 基于真实会话构建的编码 agent 基准 CursorBench 3.2 上,Fable 5.1 的 low 追平 Fable 5 的 high,成本只有三分之一。博客给出了两个原因:低档每项任务做的工作更少,缓存读取也更便宜。Fable 5.1 的缓存读价为每百万 token $0.25,Fable 5 为 $1.00。即使按 Fable 5 的价格计算,Fable 5.1 的低档仍便宜约 40%。图 5 没有标注各点的具体数值。

$2$3$5$10$20 60657075 每任务成本(美元,对数轴) 分数(%) lowmediumhighxhighmax lowmediumhighxhighmax Claude Fable 5 Claude Fable 5.1 原图无数值标注,只取两条曲线的相对位置
图 5 · Fable 5 对 Fable 5.1 · CursorBench 3.2 · 原图无数值标注,只取两条曲线的相对位置 · 重画自官方图 5
模型 · 基准lowmax博客口径
Fable 5 · FrontierCode Diamond(最难 50 题)11.5% · $5.35 / 任务30.9% · $19.00 / 任务分数约 2.7x(+19 点),成本约 3.5x;图 4 标 +19.4 点
Fable 5.1 · Humanity's Last Exam(无工具)约 53% · 约 $0.30 / 题约 61% · 约 $2.23 / 题最后一步到 max 仅增加约半分,成本提高 46%,增益在运行噪声内
Fable 5.1 对 Fable 5 · CursorBench 3.25.1 的 low ≈ Fable 5 的 high,成本三分之一图 5 无数值标注缓存读 $0.25 对 $1.00 每百万 token;按 Fable 5 价格算仍便宜约 40%

博客提醒,effort 过高或过低都可能影响质量:过高时,模型可能在任务已经不需要继续推敲的地方反复思考,增加成本和延迟;过低时,又可能证据不足就停止,只看第一条搜索结果而不再查看第三条,或跳过原本会自行执行的检查。回答看似完整,依据却不充分。

校准时,官方建议既测试更强模型的低档配置,也在同一任务上逐档评测 effort。如果评测得分尚未达到上限,提高 effort 后表现仍无变化,就提示这项任务可能不受推理投入限制。跨模型、跨档位反复运行评测的工作,可以交给 hillclimb

让命令搜索配置 · hillclimb

hillclimb:换模型后,再根据失败工单改提示词

hillclimb 会提出配置改动,并查看训练集中的失败样本,据此继续修改。另留一组测试样本,搜索期间不接触,结束后才用于验收,这组样本称为 held-out 测试集。Anthropic 在一个客服基准上展示了整个过程,衡量的是决策准确率(decision accuracy)。

起点:Opus 4.8,默认 high effort

图 6 标出的训练集起始准确率为 74.4%;起点成本没有数字标注。

Opus 5 · low:升级模型并审计提示词

运行 prompt-audit,删除强制工具调用的仪式、scratchpad 步骤和矛盾规则。训练集准确率升至 98.9%,超过 Opus 4.8 基线,成本降到每工单 2.6 分。

Sonnet 5 · low:继续降低成本

成本降到每工单 1 分,准确率随之降到 88.9%。

读取失败工单,补充提示词

Claude 在提示词中加入路由规则,并补充对退款上限的引用。Sonnet 5 的训练集准确率回到 98.9%,成本不变。

60708090100 每工单成本(分,对数轴) 决策准确率(%,训练集) 起始准确率 74.4% 1 · Opus 4.8 · high 起点(成本原图无标注) 2 · Opus 5 · low 升级模型 + 审计提示词 · 2.6 分 3 · Sonnet 5 · low 改用 Sonnet 5 · 1 分 4 · Sonnet 5 · low 补充路由规则与退款上限 · 1 分 采用的路径 · 训练集读数
图 6 · hillclimb 采用的路径,纵轴为训练集读数 · 重画自官方图 6
90.5%
最终配置在 14 张测试工单上的准确率
78.6%
原配置在同一批测试工单上的准确率
约 1/5
最终配置相对原配置的成本

换成 Sonnet 5 后,训练集准确率一度下降;Claude 随后读取失败工单、补充规则,才在不增加成本的情况下恢复到 98.9%。这次搜索同时调整了模型、effort 和提示词。

最后,用搜索期间未见过的 14 张工单测试:新配置准确率为 90.5%,原配置为 78.6%,成本约为原来的五分之一。这与训练集上的 98.9% 对 74.4% 是两组结果。

让命令审计成本 · cost-optimize

cost-optimize:四个基准,降本手段各不相同

cost-optimize 审计调用 Claude API 的应用代码,先确认成本花在何处,再依次应用降本手段。它优先使用 Claude Admin API key 获取组织级用量与成本报表;如果应用保存了每次响应的 usage 对象,就读取其中的 token 用量;两者都没有时,才根据构造请求的代码进行估算。

优化顺序相对固定:先检查缓存,再精简每次请求携带的内容,其中包括运行 prompt-audit;随后限制输出,并把无人值守的工作交给 Batch API。只有提供 eval 后,它才会继续计算 effort 与模型选择带来的成本和性能取舍。

四个公开基准都以 Sonnet 5 为起点,但采用的降本手段不同。

在法律分类基准 LegalBench 上,cost-optimize 建议跨任务共享缓存前缀、使用 low effort,并通过 Batch API 执行任务。thinking token 从 102,779 降到 8,284,pass rate 的变化未超出运行噪声范围,成本约降 58%。

在客服 agent 基准的零售场景 tau2-bench retail 上,优化集中在提示缓存和显式 breakpoint,成本降 73%,pass rate 持平。

在文档问答基准 OfficeQA Pro 上,加入批处理和文档缓存后,成本从 $136.20 降到 $64.87,约降 52%。

在编码 agent 基准 SWE-bench Verified 上,原配置已经正确使用缓存,节省来自将 effort 调到 medium,并把 agent 输出限制为几句简短的话。每项任务的中位步数从 29 降到 17,prompt token 从 75.2M 降到 33.7M,成本约降 55%。

每次运行成本(占基线比例) 分数变化(百分点) -12-8-40+4+8+12 0%25%50%75%100% tau2-bench retail 客服 agent −72.7% $25.88 → $7.05 +1.3pp 95% CI −4.6 to +7.2 LegalBench 法律分类 −57.6% $13.67 → $5.79 −0.3pp 95% CI −0.8 to +0.3 OfficeQA Pro 文档问答 −52.4% $136.20 → $64.87 +4.5pp 95% CI −2.1 to +11.1 SWE-bench Verified agentic coding −55.1% $39.74 → $17.86 −3.3pp 95% CI −9.6 to +3.1 成本占基线比例 分数变化(pp)与 95% CI 起点均为 Sonnet 5 · 四个置信区间都跨零 · 重画自官方图 7
图 7 · 在四个公开基准上运行 cost-optimize 后的成本与分数变化 · 重画自官方图 7
基准降本手段成本变化绝对成本分数变化
tau2-bench retail缓存 + 显式断点−72.7%$25.88 → $7.05+1.3pp(95% CI −4.6 到 +7.2)
LegalBench共享前缀缓存 + low + Batch API−57.6%$13.67 → $5.79−0.3pp(95% CI −0.8 到 +0.3)
OfficeQA Pro批处理 + 文档缓存−52.4%$136.20 → $64.87+4.5pp(95% CI −2.1 到 +11.1)
SWE-bench Verifiedmedium + 限制输出−55.1%$39.74 → $17.86−3.3pp(95% CI −9.6 到 +3.1)

成本与分数变化取自图 7;「降本手段」取自正文。起点均为 Sonnet 5。pp 表示百分点,95% CI 是分数变化的统计不确定范围。

四个基准的分数变化置信区间都跨零。成本虽都下降,节省的来源却不同:tau2-bench 靠缓存,SWE-bench Verified 的缓存原本已正确,改的是 effort 和输出长度。cost-optimize 先检查应用的实际开销,再选择优化手段。

第三条主线 · 缓存

缓存:查未命中原因,把握更新时机

缓存未命中时,Claude Console 可以显示原因;缓存诊断 API 则能指出相邻两次请求从哪个位置开始不同。博客在缓存机制之外,还给出了请求排布、预热和更新时机的具体做法。机制详见站内《从零自建 agent harness》

请求中,工具定义和系统提示等稳定内容放在前面,持续增长的对话放在后面。为保持前缀不变,博客给出了两项配套做法:不常用的工具标记为 defer_loading,保留声明,但等 Claude 通过工具搜索找到后再加入对话;系统指令需要更新时,以新消息追加,不改原有系统提示。

Claude Console 缓存诊断面板截图:缓存读比例 71.3%,缓存读 token 12.4B,Claude Opus 5 的未命中 token 按 Messages、System、Tools、Model changed 四类拆分
来源图 1 · Claude Console 的缓存诊断:缓存读比例、缓存读 token,以及按原因拆分的未命中 token · [官方] claude.com/blog 原图 1
系统指令 全局缓存 工具定义 全局缓存 CLAUDE.md、memory 按项目缓存 会话状态 按会话缓存 消息 每轮增长 稳定 → 变动
图 2 · 请求排布:静态内容在前、增长的对话在后 · 重画自官方图 2

换模型或调整 effort 的时机,也会影响缓存开销。博客建议等到缓存本来就要重写时再改,例如对长对话做 compaction(压缩重写)时。对话持续增长后,缓存断点也要后移;Claude Platform 的自动缓存可以将断点放在最后一个可缓存块上。

预热则可以提前完成:发送带显式缓存断点的 max_tokens: 0 请求,只处理提示词、写入缓存,不生成内容。第一个真实请求就能直接读取已准备好的缓存。

等待工具或子 agent 返回的时间,也计入缓存的有效期。默认的 5 分钟 TTL 从请求发出时开始计时;工具调用或子 agent 请求若耗时超过 5 分钟,父级缓存可能在结果返回前过期。下一轮便要重新写入缓存,价格为正常输入价的 1.25 倍,1 小时档则为 2 倍。针对这类长时间等待,博客建议考虑为前缀设置 1 小时 TTL。

一条产品变化

通常,修改 effort 或 thinking 设置会改变缓存前缀。Opus 5 与 Fable 5.1 是例外,可以在不中断缓存的情况下调整 effortfork 出的子 agent 只有在前缀字节、模型和 effort 全部相同时,才能共享父级缓存。

口径

口径与出处

全部实测结果都来自 Anthropic 自测,并非第三方复现。博客未附运行次数与噪声带;图 7 单独给出了四个基准分数变化的 95% 置信区间,均跨零。以下列出博客正文、图表与前篇文档页之间需要区分的口径。

口径项说明
与文档页数字的一处差异图 3 里 Opus 4.8 旧提示词与 Opus 5 未审计两点的准确率分别是 89.4% 与 91.7%;文档页《Optimizing for cost and intelligence》(站内前篇的表格)写的是 89.5% 与 91.8%,差 0.1 点。成本 2.52¢ / 3.43¢ / 2.93¢ 两处一致。本篇以博客图为准,不改前篇。图内标注的「审计一步 −0.49¢」与正文的「成本降 14.6%」各归其位,不做算术换算。
训练集与测试集hillclimb 那组的 74.4% 是训练集起始读数(图 6 标注),78.6% 是 14 张 held-out 工单上原配置的读数(正文)。98.9% 是训练集、90.5% 是 held-out。
未标注数值的图表点图 4 的 med / high / xhigh 三点、图 5 全部点、图 6 起点的成本,图上都没有数字;重画仅保留曲线形态,不补写数值。
正文与图的口径并列FrontierCode Diamond 那组正文写「+19 点」,图 4 标 +19.4 点;四个基准正文写约 58% / 73% / 约 52% / 约 55%,图 7 标 −57.6% / −72.7% / −52.4% / −55.1%。
缓存读价博客只写缓存读「按完整输入价的一部分计费」,未给倍率;0.1 倍是文档页的数字,不属本篇。CursorBench 那组给的 $0.25 对 $1.00 每百万 token 是两个模型的缓存读牌价。
评测名称按博客原文customer support benchmark(本篇写「客服基准」)、FrontierCode Diamond(the hardest 50 tasks)、Humanity's Last Exam(without tools)、CursorBench 3.2、LegalBench、tau2-bench retail、OfficeQA Pro、SWE-bench Verified。博客未说明 hillclimb 所用客服基准与 prompt-audit 实验所用是否同一份数据集,本篇写「同样在一个客服基准上」指名称相同。三个基准的来路(Cognition / Cursor / Center for AI Safety 与 Scale AI)取自各自官网,不是博客内容。
作者身份Lance Martin 的身份取自 ai.engineer 讲者页(Anthropic member of technical staff,负责 Claude Platform 与 Claude Code 里的 claude-api skill,此前是 LangChain 早期工程师),不是博客正文内容。