精选阅读

用 Claude 自动设计评测与爬坡优化:方法精读

原文发表于 2026 年 9 月 28 日。本站为详细精读。

自动优化 Agent,首先需要一套值得相信的评测。否则,迭代越快,越可能把系统推向错误目标。这篇文章把工作分成两部分:用 /claude-api build-eval 建立评测,再用 /claude-api hillclimb 搜索更好的提示词、模型配置或执行方式。

下面按“如何判断评测可靠、如何执行优化、如何解释结果”梳理方法,保留原文 9 张图及关键实验数据。图下的阅读提示和文末的方法边界为本站编辑解读。

一、评测要先过哪些检查?

作者提出的四个观察角度,可以整理成一张诊断表:

检查项应当看到什么异常时优先排查
任务代表性覆盖真实业务关心的问题是否只选了容易生成、容易评分的题目
能力与得分的关系更强模型、更多思考通常带来更好表现题意是否含糊,评分器是否误判
有效提升空间最强配置仍有可解决的失败任务是否不可能完成,评分要求是否未写进题目
运行稳定性重复运行的波动足够小评分一致性、effort 配置、环境残留及基础设施错误
评测设计:能力曲线、提升空间与误差条
评测设计:能力曲线、提升空间与误差条

图 1|可靠评测的四个观察角度。读图时同时看曲线走势、距满分的差距和误差条:单看最高分,无法判断一套评测是否适合做优化。

还有一个容易忽略的偏差:只收集当前模型做错的题目,会过度关注这个模型特有的弱点。选题应结合人工难度判断、真实故障和业务价值。线上流量也不天然完整,因为用户可能只尝试自己认为能成功的功能。

对抗式采样与人工选取难例的对比
对抗式采样与人工选取难例的对比

图 2|两种采样方式。左图集中选择当前模型能力曲线的低谷;右图依据人的难度判断选题。重点是让评测覆盖有价值的问题,而非只针对一个模型的失败模式。

二、build-eval 如何把想法变成可用评测?

先审输入,再审评分

样例来源有优先级:生产交互记录、缺陷与支持工单、少量人工编写案例,最后才是根据代码库合成的任务。使用生产记录前,需要明确数据留存和敏感信息要求;合成样例也应以真实业务为依据。

生成后先逐项审阅,确认输入具有代表性。图 3 展示的邮件分流评测有 24 个输入,标签帮助人检查任务类型和难度覆盖。这一步需要用户确认,而不是生成完就直接开跑。

邮件分流评测的输入审阅页面
邮件分流评测的输入审阅页面

图 3|输入审阅页。它解决的是“测什么”的问题,先于“得多少分”。

评分方式应与输出类型匹配。固定标签、JSON 结构、测试结果等,优先用代码验证;开放式答案可以让另一个模型依据可核查标准评分,并给出理由。做两两比较时,应隐藏基线身份并随机排列顺序;评委模型也应与被测模型分开。

人还需要检查一批已评分的完整记录,确认评分器的判断符合预期。之后再估算案例数、重复次数、模型数与运行成本,执行基线,报告置信区间。

基线评分与每次运行记录的结果页面
基线评分与每次运行记录的结果页面

图 4|结果与执行记录相连。原图中的基线均值为 0.681;逐案例得分可以继续追溯到每次运行的 JSON 记录。总分负责概括,记录负责解释。

实际交付物包括样例、评分器、运行器、逐案例 JSON、完整交互记录和结果页。运行时还应检查同一输出重复评分是否一致,排除超时、API 错误和回答截断。如果基线已在约 95% 以上,应考虑把目标转向成本或延迟。

三、hillclimb 怎样避免越改越偏?

先限定目标和修改范围

提示词、Skill 说明和工具描述容易试验与撤销,也更容易把结果变化归因到具体改动。模型、effort 和其他 API 参数同样可以优化;允许修改执行框架代码时,则要更加明确范围。

目标最好可以直接验证,例如“质量不下降时降低成本”。开始前,还要确认评测噪声小于值得采取行动的最小收益;否则先增加样例或重复次数。

留出集用于检查泛化

训练集允许优化器查看失败记录,留出测试集的具体样例则不开放。这里的“训练”指搜索配置与改动,并不意味着训练模型权重。不要把失败案例原样写进提示词,也要防止模型从文件或仓库直接获得参考答案。

评测信息进入执行框架的过拟合路径
评测信息进入执行框架的过拟合路径

图 5|框架过拟合的不同路径。为了评测添加专用 OCR 工具、硬编码目录命令、针对特定措辞打补丁,都可能让分数提高,却没有改善真实业务;直接获取参考答案则属于更明显的泄漏。

每轮提出一项有明确原因的改动,再检查训练集与测试集。如果只改善训练集而测试集停滞,应警惕过拟合并撤销;发生退步也应回退。原文的质量优化流程会保留两侧都改善的版本。

单项改动、训练集与留出集评估的爬坡循环
单项改动、训练集与留出集评估的爬坡循环

图 6|“分析失败—提出补丁—运行评测—决定保留或回退”的循环。分析器读取的是训练集失败,测试集提供独立的表现反馈。

连续两三轮无进展时,先对失败按根因分类,分清能力不足、题目含糊、评分器错误和环境问题;如果收益小到无法测出,也应暂停微调、改善测量条件。最终报告需要比较基线和选定版本,并展示不确定性;噪声范围内的上涨不足以支持合并。

优化版本的训练集与测试集对比报告
优化版本的训练集与测试集对比报告

图 7|版本比较报告。示例中 v1 的训练集与测试集均为 0.875;v2 加入完整示例后只改善训练集,因此被撤销。更多提示内容不保证更好的泛化。

四、两个案例里,究竟改善了什么?

客服任务:把质量和成本一起看

原文使用 44 张工单,其中 30 张用于搜索,14 张留出。搜索阶段的主要结果如下;这些数字不能与留出集成绩混为一谈。

搜索阶段配置准确率每张工单的 token 成本
Opus 4.8,high effort 基线74.4%4.6 美分
清理提示词后使用 Opus 5.5,low effort87.8%1.9 美分
Sonnet 5,low effort88.9%约 1 美分
Sonnet 5,进一步完善提示词98.9%仍约 1 美分

提示词清理涉及强制工具调用、冗余推演步骤和矛盾规则;后续又完善分流与退款上限规则。降本也有定价因素:文中称 Opus 5.5 相比 Opus 4.8,输入、输出 token 单价低 20%,缓存读取低 60%。

客服任务中准确率与每张工单成本的关系
客服任务中准确率与每张工单成本的关系

图 8|搜索阶段的成本—准确率路径。模型、effort、提示词和价格共同变化,不能把全部收益归因于某一个因素。

最终在 14 张留出工单上,准确率从 78.6% 提高到 90.5%,成本约为原来的五分之一。这组留出结果,比搜索阶段接近满分的数字更值得关注;它仍然只是该工作负载的实验结果。

API Skill:既修说明,也检查测量工具

第二个案例优化 claude-api Skill。得分从约 66% 起步,补足八项功能说明后达到 74%,修正 C# 与 Java 类型表后达到 77%。

进一步分析发现,有些说明虽然存在,模型仍会沿用旧 API 写法。增加新旧写法对照、调整提醒位置后,分数升至 80%。这说明文档的组织方式与纠错提示,可能和信息是否齐全一样重要。

API Skill 各轮优化的通过率曲线
API Skill 各轮优化的通过率曲线

图 9|多轮优化的阶段变化。曲线从 66.1% 到第 24 轮的 87.9%;正文使用了取整后的数字。末段同时包含评分器修正与 Skill 改动。

剩余失败中,有任务要求与评分条件不一致,也有评分器与真实 API 行为冲突。修正这些问题并继续完善 Skill 后,最终得分约为 88%。因此,整条曲线同时记录了应用改进和测量修正,不能视为固定评测下的纯能力增长。

五、开始使用,以及结果的边界

在 Claude Code 中,/claude-api build-eval 适合从业务问题和真实样例出发搭建评测;已有可信评测后,再用 /claude-api hillclimb 按质量或成本目标迭代。工具说明位于 claude-api Skill 仓库。

编辑补充:反复根据同一留出集选择版本,仍可能逐渐适应这个集合。正式决策时,可以再用一组未参与选择的新样例复核。若修改了题目或评分器,也应在修正后的评测上重新运行基线,保证前后可比。

全文与全部原图来源:Lance Martin,Automating eval design and hillclimbing with Claude。文中百分比、模型配置与费用均为原文报告的数据。

目录
查看原图
正在加载图片

这张图片暂时无法加载。

滚轮缩放 · 拖动查看 · Esc 关闭

⌘K搜索知识库

最近收录

正在载入知识索引…