Communitygithub.com

YoursSarcastically/eval-design

将“AI功能是否有效”转变为一份可被argue的记分卡。包含评估准则、失败分类、门槛值和置信区间——渲染为自包含HTML。

eval-design 是什么?

这是一个用于AI Agent评估设计的专业技能(skill),旨在帮助开发者构建可验证、可辩护的评估框架,而非简单的分数排名。它强调评估应服务于“下一步该修复什么”的决策,而非仅为系统排序。该技能支持包括Claude Code、Cursor、Codex在内的平台,通过定义可争议的评估准则、基于真实输出构建失败分类、使用人类标注作为基准、以及强制报告非AI基线等原则,确保评估结果可信且可操作。其工作流从识别决策点开始,依次编写失败分类、构建评估准则、制作黄金测试集、人类标注、校准自动化评判器,最后渲染为独立HTML记分卡和摘要。技能还提供了完整的工具链,包括渲染脚本和校验脚本,用于生成符合规范的记分卡并防止常见的评估陷阱。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add YoursSarcastically/eval-design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

eval-design 是做什么的?

你在设计的是测量方法,而不是产品。这项技能的输出,是一个能够在会议室里让人为之辩护的决策,而不仅仅是一个数字。

大多数情况下,决策内容是 下一步该修复什么。一个只能对系统进行排名的评估只是一份报告;而一个能指出最耗成本的两件事,并在重新运行时证明修复生效的评估,才是一个开发循环。请为后者构建——失败分类和每个准则的分解比总体得分更重要,因为这些才是人们可以采取行动的部分。

核心立场

四条规则。它们是观点,也是这项技能的核心。

1. 拒绝模糊感受。 “感觉更好了”不是结果。如果一个改动无法表现为在固定数据集上对已定义准则的数值变化,那它就没有被评估过。你可以直接发布——只是别声称它经过了测试。

2. 每个准则都必须具有可争议性。 如果一个准则,两位谨慎的评审者无法站在对立面,那它就什么也没衡量。“输出是否有帮助?”不是准则。“回复是否以天为单位说明了退款窗口?”才是。评估表中的每一条准则都承载着它被写出来要解决的具体分歧——参见 references/rubric-design.md。

3. 默认不采用LLM作为评判者。 评判者是一个自带错误率的系统,未经验证的评判者会将其错误混入你的初始分数中。先由人类进行标注,再将评判者针对这些标注进行校准,并且校准结果需与评判者生成的所有结果一同公布。参见 references/judges.md。

4. 报告基线,否则评估就是营销。 正则表达式、关键词规则、当前生产系统、或者什么都不做。大约三分之一已发布的AI功能在至少一个准则上输给成本为零的方案,你需要在招聘经理或VP发现之前就找出这一点。

由此引出两条结构性规则:

  • 门槛是底线,而非权重。 安全、法律或信任准则不能被用来折抵平均性能。低于底线的系统无论价格如何都不是候选。加权平均值恰恰掩盖了这一点。
  • 不提供置信区间则禁止排名。 当 n=150 时,3分的差异是噪声。在噪声范围内对系统进行排名,是评估工作误导读者的最常见方式。

工作流程

按此顺序工作。不要跳过步骤直接评分——每一次评估的失败都可以追溯到之前被跳过的内容。

  1. 找到决策点。 结果会改变什么?“我们发布哪个模型”、“这个是否可以无人监督”、“提示词的改动是否导致了性能下降”。如果什么都不会改变,就停下来并如实说明——这是整个过程中最有价值的一步,有时诚实的答案是“你根本不需要评估”。
  2. 先编写失败分类。 在编写准则之前。收集30-50个真实输出,阅读每一个,并将错误聚类。从观察到的失败中推导出的准则,每次都胜过凭空想象的准则。 → references/failure-taxonomy.md
  3. 将分类转化为准则。 每个准则都有权重、分歧描述,以及可选的底线门槛。 → references/rubric-design.md
  4. 构建黄金测试集。 分层、对抗性、有版本控制,并且小到人类能够实际标注。 → references/golden-sets.md
  5. 由人类进行标注,测量一致性。 如果两个标注者无法达成一致,是评估表有问题,而不是标注者。修复评估表并重新标注。 → references/statistics.md
  6. 只有现在才考虑评判者,且必须经过校准。 → references/judges.md
  7. 运行所有系统,包括非AI基线,写入 results.json,然后渲染。 → references/scorecard-spec.md
  8. 亲自撰写结论。 记分卡显示数字;由人类陈述正在做的权衡以及什么会逆转决策。

渲染

python3 skills/eval-design/scripts/render_scorecard.py results.json --md

会生成一个自包含的 scorecard.html(无外部请求,支持浅色和深色主题)和一份用于在仓库中阅读的 SUMMARY.md。结构:references/scorecard-spec.md。

python3 skills/eval-design/scripts/validate_rubric.py results.json

会检查那些让记分卡不诚实的错误:权重之和不等于1、准则未标明分歧、门槛缺乏理由、缺少基线、或在置信区间内声称排名。

何时不应使用此技能

  • 一次性的提示词调整,且没有关联决策。 直接看输出就好。
  • 没有用户,也没有示例。 先获取30个真实输入。基于想象出的输入构建的评估,衡量的是你的想象力。
  • 任务有程序可以检查的正确结果 —— 比如算术运算、合法的JSON、可编译的构建。编写检查代码,而不是评估表。
  • 有人想要一个数字来证明已经做出的决定。 直接说出来,而不是去构建评估。

参考文件

按需加载,不要一开始就读完所有。

文件何时阅读
references/rubric-design.md编写或修正准则时
references/failure-taxonomy.md从真实输出开始工作时
references/golden-sets.md选择和分层测试用例时
references/judges.md当有人提议使用LLM作为评判者时
references/statistics.md涉及样本量、置信区间、标注一致性和漂移分析时
references/scorecard-spec.md编写 results.json 时
references/antipatterns.md评审他人的评估时

相关技能