Files
obsidian-notes/InBox/milky_BV1HWd6BsEmG.md

9.4 KiB
Raw Blame History

title, source, date, tags, email_id
title source date tags email_id
[Milky] 为您整理《OpenAISkill的自动评分器怎么搭》笔记 | BV1HWd6BsEmG milky@4ueo.com 2026-06-09 21:17
milky
bilibili
notes
1995

Milky 为您整理了《OpenAISkill的自动评分器怎么搭》| 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 视频来源慢学AIBV1HWd6BsEmG

────────────────────────────── — Milky 视频总结助手