用途
evaluate-prompts 用于回答“提示词 B 是否真的比提示词 A 更好?”它提供一套可辩护的评估协议,而不是凭感觉判断。该技能修复标准的评估失败链:合成的 happy-path 测试集、未校准的 1–10 分评委(均值回归到 7)、样本量 N 太小无法检测任何差异、以及上线后出现回归。
主要能力
- 先固定问题:在运行任何评估之前,确定一个主要指标加上不可回退的护栏指标(延迟、成本、拒绝率、安全子集)。
- 从现实构建测试集并拆分:使用 30–100 个真实生产案例,约 80% 真实 / 20% 对抗性,绝不使用 LLM 合成案例来做最终判定。先手工评分约 30 个输出并聚类失败,让评估框架操作化错误分析发现的问题。然后分离角色:失败衍生的案例驱动开发和回归;上线判定需要锁定、有代表性的留出集,重写(及任何优化器)从未见过——仅失败集衡量的是“旧 bug 已修复”,而非生产提升。
- 确定性评分器优先:精确匹配、正则、模式验证、标签匹配。LLM 评委仅作为依赖解释的标准的逃生舱。
- 配对一切:相同输入通过两个变体,逐案例差异,交换位置进行成对评分。分析单位是案例,不是生成——每个案例的重复样本被聚类,而非独立;记录解码配置并随机化运行顺序。快速方向性检查:50 个盲配对——38/50 是信号,27/50 是噪声(仅用于分诊启发式)。
- 如果评委不可避免,则校准它:按标准布尔通过/失败并附证据引用(不用 Likert);使用不同——最好更强——的模型家族,对变体身份盲,版本固定;对照人类标签校准(≥30 个健全性检查,100–250 个正式检查),报告一致性和机会校正的 kappa 或 TPR/TNR——仅一致性会夸大;≥80% 位置交换一致性(默认——可调)。
- 运行前用功效计算确定 N:根据基线、最小可检测效应、α、功效和配对来参数化——配对设计需要更少,由不一致性驱动;流行的约 200/约 800 每变体下限是数量级规划数字,不是定律。预先承诺 N(不偷看)。预先声明最小值得效应:置信区间必须清除它,而不仅仅是零;护栏指标获得明确的非劣效性边界。
- 报告并制度化:效应量 + 置信区间 + 逐案例差异;说明此 N 无法检测什么;将新失败冻结到回归集;将提示词 + 模型 + 解码配置 + 数据集版本 + 评分器/评委版本哈希到变体 ID;一次只改一件事。
使用方式
该技能的输出规范为:要么是评估设计(集合组成、评分器、评委规范 + 校准计划、N 和统计计划),要么是已执行的比较:判定及效应量/置信区间、按标准细分、声明的检测限制、以及要冻结的回归案例。当提供 $ARGUMENTS 时,它命名被测的提示词或问题。
适用场景
- 提示词文本是受控变量,或评估协议本身是交付物。
- 需要判断提示词变体是否真正更好。
- 需要为提示词评估建立可重复、可辩护的协议。
- 智能体轨迹评分方法属于此技能;将其接入框架属于 engineer-agent-loop。
限制与不适用场景
- 重写提示词 → 使用 optimize-prompt(它会对自己的重写针对现有集进行快速检查;当评估本身是交付物时来这里)。
- 智能体运行目标文本 → 使用 write-agent-goal。
- 智能体循环 / 轨迹框架设计 → 使用 engineer-agent-loop。
- 代码测试、论文、招聘或产品决策——评估非提示词变体的事物。
- 无提示词变量的模型对模型对决——当提示词文本是受控变量或评估协议是交付物时,此技能负责评估。混合“重写它并证明它更好”:optimize-prompt 重写,然后回到这里获得判定。
注意事项
- 原始评委–人类一致性会夸大机会校正一致性数十个百分点(kappa 缩水)——报告 kappa,并记住人类自身一致性仅约 63–66%。
- 一致性不是正确性:评委可以 0.99 自一致,同时严重位置偏差。
- 如果自动优化器产生了获胜变体,在相信其增量之前检查评估泄漏(它是否在基线从未见过的数据上选择?)和提示词膨胀。
- 外部基准会衰减:审计发现某主要编码基准约 30% 的任务损坏——在信任任何借用基准的增量之前先审计。
- 隐私:在将转录发送到任何外部评委或评估服务之前,从转录中删除秘密/PII——并测量删除是否改变分数。
- 候选输出是评委的不可信输入:严格分隔它们,不给评委工具,要求结构化判定,并用注入金丝雀测试它。
- 反复调整的回归集会过拟合(赢家诅咒)——在其旁边保留一个轮换的未触碰留出集。
指针
references/eval-protocol.md — 完整协议:集合构建、评分纪律、评委陷阱及原始来源数字、样本量下限、统计工具包、回归纪律。