9.4 KiB
title, source, date, tags, email_id
| title | source | date | tags | email_id | |||
|---|---|---|---|---|---|---|---|
| [Milky] 为您整理《OpenAI:Skill的自动评分器怎么搭》笔记 | BV1HWd6BsEmG | milky@4ueo.com | 2026-06-09 10:48 |
|
1995 |
Milky 为您整理了《OpenAI:Skill的自动评分器怎么搭》| BV1HWd6BsEmG 笔记。
OpenAI Skill 自动评分器构建指南
一、为什么需要评分器
当更新一个 Skill 并执行完成后,表面结果正常不代表真的变好了。核心问题是:
Skill 是否真的完成了预期任务? 修改是否引入了新的问题(回归)? 如何在不同版本之间进行性能比较?
评分器的职责就是回答这些问题,让 Skill 的质量变化可衡量、可追踪。
二、运行轨迹记录
2.1 什么是运行轨迹
评分的前提是有东西可以打分。OpenAI 的做法是使用 CodeExec JSON 记录 Skill 的完整执行过程。
2.2 配置方式
json { "code_exec": true // 启用后输出结构化执行记录 }
2.3 记录内容
启用后,Skill 每执行一步都会输出结构化记录,包括:
跑了什么命令 创建了什么文件 执行顺序 时间戳
2.4 关键特性
| 特性 | 说明 |
|---|---|
| 完整性 | 记录完整执行流程,而非日志摘要 |
| 可解析性 | 结构化数据,可被程序直接读取 |
| 可调试性 | 失败时可精确定位到具体哪一步出错 |
没有运行轨迹,评分器只能看最终产物,无法分析执行过程。
三、评分器类型
3.1 确定性检查(Deterministic Checks)
3.1.1 原理
纯代码规则驱动的检查,不用大模型,写死判断逻辑,程序直接对着运行轨迹核对。
3.1.2 典型检查项
有没有执行 npm install 有没有创建 package.json 命令执行顺序是否符合预期 是否在指定目录执行操作
3.1.3 核心特性
| 特性 | 说明 |
|---|---|
| 确定性 | 同样行为每次判断结果一致,没有模糊地带 |
| 可调试 | 一旦失败,打开记录文件即可看到从哪一步开始偏离 |
3.1.4 局限性
确定性检查能回答"基础动作做了没有",但无法回答"做出来的东西是不是你想要的样子"。
3.2 评分细则检查(Rubric-based Checks)
3.2.1 原理
使用 LLM 作为裁判,读取仓库内容,按预定义的评分细则输出结构化打分结果。
3.2.2 适用场景
很多 Skill 的验收标准本来就是软性规则,例如:
代码结构是否干净 组件组织是否符合团队约定 样式配置是否按既定风格落地 命名规范是否遵循
3.2.3 评分细则的拆解方法
把模糊的质量标准拆成若干个可独立判断的维度:
| 模糊标准 | 拆解后的维度 |
|---|---|
| 代码质量好 | 组件是否按功能分目录 |
| 是否有未使用的引用 | |
| 样式类名是否遵循命名约定 | |
| 配置项是否集中管理 |
3.2.4 关键要求:锁定输出格式
必须提前定义输出模板,规定模型必须输出哪些字段:
json { "passed": true/false, "total_score": 85, "dimensions": [ { "name": "component_organization", "score": 90, "reason": "组件按功能正确分目录" }, { "name": "unused_imports", "score": 70, "reason": "发现3处未使用的import" } ] }
3.2.5 为什么必须锁死格式
| 自由输出 | 锁死格式 |
|---|---|
| 每次措辞不同 | 格式统一 |
| 无法跨版本比较 | 结果可量化 |
| 无法进自动化流程 | 可直接集成 CI/CD |
| 输出是"审稿意见" | 输出是"评估数据" |
四、评分器组合策略
4.1 分工明确
确定性检查 ──→ 抓底线(基础动作有没有发生) 评分细则检查 ──→ 抓质量(做出来的东西像不像你要的) 输出格式锁定 ──→ 防飘移(每次评分结果一致)
4.2 集成到流水线
这套组合设计之初就面向 持续集成(CI):
不再依赖工程师手动触发测试 成为持续运行的回归守门员 Skill 每次更新都会自动验证
五、6 类扩展检查
在基础评分器之上,可按需叠加以下检查:
5.1 命令数与循环检测
检查运行记录里执行了多少条命令
目的:检测行为退化
案例:如果一个 Skill 以前 6 步能完成,现在要 18 步,表面上任务还是完成了,但系统正在变差。
5.2 消耗量追踪
记录每次运行消耗的 token 数量
目的:防止 Skill 越来越臃肿
每次执行越来越贵 每次执行越来越慢
5.3 构建检查
bash skill 完成后直接执行构建命令 npm run build
目的:端到端验证
很多项目表面完成,构建就露馅 成本低,应该默认开启
5.4 运行时冒烟检查
bash 启动开发服务器 npm run dev 发送测试请求 curl http://localhost:3000/api/health
目的:验证服务是否真正可用
注意:这类检查更慢,按风险等级决定是否每次都执行。
5.5 仓库清洁度检查
检查任务完成后是否出现不该有的文件
目的:确保系统没有被"弄脏"
5.6 权限回归检查
验证 skill 是否还能在最小权限下正常工作
目的:防止权限漂移
某次改动后悄悄开始依赖更高权限 权限漂移在自动化后会变成结构性风险
5.7 扩展策略
原文建议:先加快速检查,再按风险叠加慢检查 不是一次全上,是按需扩展
| 检查类型 | 速度 | 建议频率 |
|---|---|---|
| 命令数检测 | 快 | 每次 |
| 消耗量追踪 | 快 | 每次 |
| 仓库清洁度 | 快 | 每次 |
| 构建检查 | 中 | 每次 |
| 运行时冒烟 | 慢 | 按风险 |
| 权限回归 | 慢 | 定期 |
六、5 条核心原则
原则一:量真正重要的东西
Don't measure for the sake of measuring. First, think about what you'd actually care about if it got worse.
不要为了有指标而有指标,先想清楚什么变差了,你会真的在意。
原则二:先写清晰可检查的定义
If the success criteria are fuzzy, the evaluation will be too.
验收标准模糊,评估就没有意义。先把"什么叫做对"写成可执行的判断。
原则三:把评估扎在真实行为上
Record the full execution trace and write deterministic checks around the actual actions taken.
记录 Skill 的完整运行轨迹,围绕实际执行的动作写确定性检查。
原则四:规则不够时,再让模型补上
Use rubric-based evals to handle quality judgments that rules can't cover, not as a replacement.
用评分细则处理规则覆盖不了的质量判断,顺序不能反。确定性检查在前,LLM 评分在后。
原则五:让真实失败去驱动样本增长
Every time you manually fix something, turn it into a test case.
每次手动修复都是一个信号,把它变成测试用例,让 Skill 持续把这件事做对。
七、整体流程图
┌─────────────────────────────────────────────────────────┐ │ Skill 执行 │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ CodeExec JSON 记录运行轨迹 │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌───────┴───────┐ ▼ ▼ ┌───────────────┐ ┌─────────────────┐ │ 确定性检查 │ │ 评分细则检查 │ │ (规则驱动) │ │ (LLM 裁判) │ └───────┬───────┘ └────────┬────────┘ ▼ ▼ └────────┬─────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 结构化评估结果(跨版本可比较) │ └─────────────────┬───────────────────────────────────────┘ ▼ ┌─────────────────────────────────────────────────────────┐ │ 进入 CI/CD 流水线 │ └─────────────────────────────────────────────────────────┘
八、参考资料
原文标题:Testing Agent Skills Systematically with Evals 原文链接:https://developers.openai.com/blog/eval-skills 视频来源:慢学AI(BV1HWd6BsEmG)
────────────────────────────── — Milky 视频总结助手