基于实战实践的改进建议:测试用例生成、dim8 评估与优化优先级
概述
使用 darwin-skill v2.0 对一个生产环境 skill(osau-apply,OSAU 版本发布申请表单自动化填写 skill)完成了一轮完整优化,从 62.9 → 85.3(+22.4 分),共 5 轮(R1-R5)。但优化过程中暴露了 darwin-skill 方法论的三个可改进点:R1-R4 全部优化结构维度,dim8(权重 23%,最高)纹丝不动,直到用户质疑"实测表现真的提升了吗"才触发端到端测试,发现 5 个问答型测试无法暴露的真实操作缺口。
本文提出三条改进建议,附完整实践数据作为证据。
背景:发生了什么
对 osau-apply skill(417 行,指导 agent 在 10 分钟内完成 OSAU 系统表单填写)进行完整优化,过程如下:
| 轮次 |
优化维度 |
分数变化 |
评估方式 |
| R1 |
dim9 反例黑名单 |
+7.7 |
问答型(Judge C) |
| R2 |
dim4 检查点标记 |
+3.6 |
问答型(Judge D) |
| R3 |
dim3 失败模式三段式 |
+2.2 |
问答型(Judge E) |
| R4 |
dim5/dim8 参数文档化 |
+4.4 |
问答型(Judge G) |
| R5 |
dim8 端到端修复 |
+4.5 |
端到端实测(Judge H) |
核心问题:R1-R4 全部优化结构维度,dim8(权重 23%,最高)在问答型评估下看似从 5.0 提升到 8.5,但实际上这是"文档检索准确度"的分数,不是"真实操作能力"的分数。用户一句质疑触发了端到端测试(用真实 WPS 数据填写真实 OSAU 表单),暴露了 5 个文档未覆盖的操作缺口:
- 数量单位转换规则缺失(WPS 写"5w",OSAU 需填 5000)
- 发布机型范围字段是系统自动显示,非 input/textarea(未说明)
- 梯度/全量行有"商店上架"列,索引表中缺失
- 发布来源 checkbox 必须在填 textarea 前勾选(未文档化)
- 梯度/全量阶段商店上架应填"不上架商店"(未说明)
R5 修复这 5 个问题后,dim8 端到端实测评分达 9.5。
建议一:test-prompts.json 应支持执行型测试,而非纯问答型
现状
Phase 0.5 通过读取 SKILL.md 内容,从文档反推问题生成测试用例:
{
"prompt": "读取 SKILL.md,回答:发版背景的 textarea 索引是多少?",
"expect": "textarea[0]"
}
这是文档检索准确度测试,不是能力测试。验证的是"agent 能不能在文档里找到答案",而非"agent 能不能真正完成任务"。
问题
问答型测试与文档内容同源——等于"用文档出题考文档"。这会造成假阳性:skill 在 dim8 得分不错,但真实执行时暴露文档从未覆盖的缺口。
本次实践中,问答型 dim8 = 8.5/10,但端到端实测在 R5 修复前仅约 7.5/10(3 个未文档化的操作导致真实失败),差距 1.0 分完全不可见。
改进建议
在 test-prompts.json 中新增可选的 execution_prompts 字段:
[
{
"id": "E1-execution",
"category": "execution",
"prompt": "用这个 skill 根据提供的 WPS 数据填写 OSAU 表单并保存草稿",
"input_data": "path/to/test_data.json",
"success_criteria": "15/15 字段匹配期望值;草稿保存成功"
},
{
"id": "T1-structure",
"category": "structure",
"prompt": "读取 SKILL.md,回答:发版背景的 textarea 索引是多少?",
"expect": "textarea[0]"
}
]
Phase 1/Phase 2 同时运行问答型 prompt(快速、低成本)和执行型 prompt(慢、需真实环境)来评估 dim8。若执行型不可行(无测试环境),回退为纯问答型并标注 dry_run——但 rubric 应明确标注置信度较低。
建议二:dim8 拆分为 dim8a(问答型)和 dim8b(端到端)
现状
dim8(权重 23)是单一维度,通过运行 test prompts 评分,不区分问答型验证和端到端执行验证。
问题
问答型和端到端测量的是根本不同的东西:
| 对比项 |
问答型 dim8 |
端到端 dim8 |
| 测试什么 |
文档检索准确度 |
真实任务完成能力 |
| 能否发现未文档化的缺口? |
❌ 不能 |
✅ 能 |
| 成本 |
低(文本输入输出) |
高(浏览器/API/真实环境) |
| 假阳性风险 |
高 |
低 |
本次实践中:问答型 dim8 = 8.5,端到端 dim8 = 9.5(R5 修复后)。R5 修复前端到端约 7.5——这 1.0 分的差距在纯问答型评估中完全不可见。
改进建议
将 dim8 拆分为:
- dim8a — 文档验证(权重 10):问答型,快速,用于每轮迭代
- dim8b — 执行验证(权重 13):端到端,仅用于基线评估和最终验收
这与 SkillOpt 的 validation-gated 设计一致:迭代用廉价验证,门禁决策用昂贵验证。Phase 2 各轮可仅用 dim8a;Phase 1 基线和 Phase 3 最终报告必须包含 dim8b。
若 dim8b 不可行(无测试环境),其权重并入 dim8a 并施加 dry_run 置信度惩罚(即当前行为)。
建议三:Phase 2 优化优先级应考虑维度权重,而非仅看原始分数
现状
Phase 2 按原始分数升序排序,优先优化最弱维度:
问题
这忽略了维度权重。本次实践中:
| 维度 |
权重 |
基线分 |
加权短板(weight × (10 - score) / 10) |
| dim9 |
6 |
1.2 |
5.3 |
| dim4 |
6 |
3.0 |
4.2 |
| dim3 |
12 |
7.2 |
3.4 |
| dim8 |
23 |
5.0 |
11.5 ← 最大加权短板 |
dim9 原始分最低(1.2),所以 R1 先优化了它。但 dim8 的加权短板最大(11.5)。我们把 R1-R3 花在低权重维度上(dim9+dim4+dim3 合计权重 24),而 dim8(单独权重 23)纹丝不动。
这是反例黑名单第 8 条("忽视维度相关性单独优化")的权重变体:优先优化低权重维度会制造进步的幻觉,而影响最大的维度始终未被触及。
改进建议
将 Phase 2 诊断从"最低原始分"改为"最大加权短板":
# 现状
找出得分最低的维度
# 建议
找出加权短板最大的维度:weight × (10 - score)
这确保对总分影响最大的维度优先优化。当加权短板相近(差距 ≤ 1.0)时,回退为原始分排序。
证据数据
完整 results.tsv 优化记录:
| 时间 |
commit |
旧分 |
新分 |
状态 |
维度 |
评估方式 |
| 2026-06-24T17:44 |
96c9a52 |
- |
62.9 |
baseline |
- |
full_test |
| 2026-06-24T17:55 |
f20a176 |
62.9 |
70.6 |
keep |
dim9 反例黑名单 |
full_test |
| 2026-06-24T18:02 |
82ba5ba |
70.6 |
74.2 |
keep |
dim4 检查点标记 |
full_test |
| 2026-06-24T18:10 |
190cfb4 |
74.2 |
76.4 |
keep |
dim3 失败模式三段式 |
full_test |
| 2026-06-24T18:22 |
4fcd820 |
76.4 |
80.8 |
keep |
dim5/dim8 参数文档化 |
full_test |
| 2026-06-24T19:15 |
c0dfe69 |
80.8 |
85.3 |
keep |
dim8 端到端修复 |
e2e_test |
关键观察:R1-R4 使用 full_test(问答型),R5 使用 e2e_test(端到端)。eval_mode 的区分是手动添加的——如果将其形式化到 rubric 中,这种差异将默认可见。
总结
三条建议的核心逻辑:
- 测试用例:从"考文档"升级为"考能力",增加执行型测试
- dim8 评估:拆分问答型与端到端,迭代用快验证,门禁用真验证
- 优化排序:从"最弱维度优先"改为"最大加权短板优先",避免低权重维度制造进步幻觉
三条建议的共同目标:让 darwin-skill 的分数更接近真实质量,减少假阳性。 本次实践中,如果没有用户的人工质疑,系统会在 R3 触顶后进入 Phase 3 收尾,dim8 的真实问题永远不会暴露——这正是人在回路的价值,但也说明自动化评估本身有改进空间。
基于实战实践的改进建议:测试用例生成、dim8 评估与优化优先级
概述
使用 darwin-skill v2.0 对一个生产环境 skill(
osau-apply,OSAU 版本发布申请表单自动化填写 skill)完成了一轮完整优化,从 62.9 → 85.3(+22.4 分),共 5 轮(R1-R5)。但优化过程中暴露了 darwin-skill 方法论的三个可改进点:R1-R4 全部优化结构维度,dim8(权重 23%,最高)纹丝不动,直到用户质疑"实测表现真的提升了吗"才触发端到端测试,发现 5 个问答型测试无法暴露的真实操作缺口。本文提出三条改进建议,附完整实践数据作为证据。
背景:发生了什么
对
osau-applyskill(417 行,指导 agent 在 10 分钟内完成 OSAU 系统表单填写)进行完整优化,过程如下:核心问题:R1-R4 全部优化结构维度,dim8(权重 23%,最高)在问答型评估下看似从 5.0 提升到 8.5,但实际上这是"文档检索准确度"的分数,不是"真实操作能力"的分数。用户一句质疑触发了端到端测试(用真实 WPS 数据填写真实 OSAU 表单),暴露了 5 个文档未覆盖的操作缺口:
R5 修复这 5 个问题后,dim8 端到端实测评分达 9.5。
建议一:test-prompts.json 应支持执行型测试,而非纯问答型
现状
Phase 0.5 通过读取 SKILL.md 内容,从文档反推问题生成测试用例:
{ "prompt": "读取 SKILL.md,回答:发版背景的 textarea 索引是多少?", "expect": "textarea[0]" }这是文档检索准确度测试,不是能力测试。验证的是"agent 能不能在文档里找到答案",而非"agent 能不能真正完成任务"。
问题
问答型测试与文档内容同源——等于"用文档出题考文档"。这会造成假阳性:skill 在 dim8 得分不错,但真实执行时暴露文档从未覆盖的缺口。
本次实践中,问答型 dim8 = 8.5/10,但端到端实测在 R5 修复前仅约 7.5/10(3 个未文档化的操作导致真实失败),差距 1.0 分完全不可见。
改进建议
在 test-prompts.json 中新增可选的
execution_prompts字段:[ { "id": "E1-execution", "category": "execution", "prompt": "用这个 skill 根据提供的 WPS 数据填写 OSAU 表单并保存草稿", "input_data": "path/to/test_data.json", "success_criteria": "15/15 字段匹配期望值;草稿保存成功" }, { "id": "T1-structure", "category": "structure", "prompt": "读取 SKILL.md,回答:发版背景的 textarea 索引是多少?", "expect": "textarea[0]" } ]Phase 1/Phase 2 同时运行问答型 prompt(快速、低成本)和执行型 prompt(慢、需真实环境)来评估 dim8。若执行型不可行(无测试环境),回退为纯问答型并标注
dry_run——但 rubric 应明确标注置信度较低。建议二:dim8 拆分为 dim8a(问答型)和 dim8b(端到端)
现状
dim8(权重 23)是单一维度,通过运行 test prompts 评分,不区分问答型验证和端到端执行验证。
问题
问答型和端到端测量的是根本不同的东西:
本次实践中:问答型 dim8 = 8.5,端到端 dim8 = 9.5(R5 修复后)。R5 修复前端到端约 7.5——这 1.0 分的差距在纯问答型评估中完全不可见。
改进建议
将 dim8 拆分为:
这与 SkillOpt 的 validation-gated 设计一致:迭代用廉价验证,门禁决策用昂贵验证。Phase 2 各轮可仅用 dim8a;Phase 1 基线和 Phase 3 最终报告必须包含 dim8b。
若 dim8b 不可行(无测试环境),其权重并入 dim8a 并施加
dry_run置信度惩罚(即当前行为)。建议三:Phase 2 优化优先级应考虑维度权重,而非仅看原始分数
现状
Phase 2 按原始分数升序排序,优先优化最弱维度:
问题
这忽略了维度权重。本次实践中:
dim9 原始分最低(1.2),所以 R1 先优化了它。但 dim8 的加权短板最大(11.5)。我们把 R1-R3 花在低权重维度上(dim9+dim4+dim3 合计权重 24),而 dim8(单独权重 23)纹丝不动。
这是反例黑名单第 8 条("忽视维度相关性单独优化")的权重变体:优先优化低权重维度会制造进步的幻觉,而影响最大的维度始终未被触及。
改进建议
将 Phase 2 诊断从"最低原始分"改为"最大加权短板":
这确保对总分影响最大的维度优先优化。当加权短板相近(差距 ≤ 1.0)时,回退为原始分排序。
证据数据
完整 results.tsv 优化记录:
关键观察:R1-R4 使用
full_test(问答型),R5 使用e2e_test(端到端)。eval_mode的区分是手动添加的——如果将其形式化到 rubric 中,这种差异将默认可见。总结
三条建议的核心逻辑:
三条建议的共同目标:让 darwin-skill 的分数更接近真实质量,减少假阳性。 本次实践中,如果没有用户的人工质疑,系统会在 R3 触顶后进入 Phase 3 收尾,dim8 的真实问题永远不会暴露——这正是人在回路的价值,但也说明自动化评估本身有改进空间。