14—从 0 到 1 搭建 AI Skill 测评体系:四步落地路线图

很多团队开始做 AI 评估时,会掉进两个极端。

一种是完全不测:先上线,看用户反馈,有问题再修。这个做法短期省事,长期代价很高。AI Skill 的问题往往不是"完全不能用",而是 80% 情况看起来正常,20% 边界场景悄悄出错。

另一种是一上来就想做完整平台:黄金数据集、LLM-as-Judge、线上监控、人工复核、CI 门禁、报表系统全都规划进去。结果三个月过去,第一批可执行用例还没跑通。

对 AI Skill 来说,更合理的路线不是先建一个庞大的"评估平台",而是先把最小闭环跑起来:

text 复制代码
规则能不能被测?
测评能不能自动跑?
结论能不能用于发布?
线上失败能不能回流?

这篇给出一条从 0 到 1 的路线图。它不是通用 ML benchmark 的路线,而是面向 AI Skill 的测评体系搭建方法。


四步路线图总览

text 复制代码
Step 1:规则可测化
    把 SKILL.md 里的规则变成 EvalCase
        ↓
Step 2:离线执行闭环
    executor 执行,grader-report 独立评审,报告结构化输出
        ↓
Step 3:可信发布门禁
    用 exact_match、IFR、Delta、PASS/FAIL 做发布判断
        ↓
Step 4:regression 活水机制
    把线上失败回流成下次发布前必跑的用例

这四步不是四个工具,而是四个能力层级。

你可以不用 SkillSentry,也可以自己用脚本、pytest、Langfuse、Braintrust 或 OpenAI Evals 搭类似流程。但如果你做的是 AI Skill,而不是传统模型任务,核心顺序建议不要反过来。

先让规则可测,再让流程可跑,然后让结论可信,最后让测评集持续变活。


Step 1:规则可测化

目标

把 Skill 里的自然语言规则,改造成可以被执行、被验证、被复用的测评用例。

这一步不是"先堆 50 条黄金数据",而是先回答一个更基础的问题:

这个 Skill 到底有哪些行为必须发生,哪些行为绝对不能发生?

如果这个问题答不清,后面的通过率、报告、CI 都没有意义。

为什么第一步不是黄金数据集

传统 AI 评估常常从黄金数据集开始:

text 复制代码
输入 prompt
人工标准答案
模型输出
对比得分

但 AI Skill 的评估对象不是一个普通问答模型,而是一组可触发、可执行、可约束的能力规则。

所以第一步应该从 SKILL.md 出发,把规则拆成 EvalCase:

text 复制代码
触发条件:什么请求应该调用这个 Skill?
排除条件:什么请求不应该调用这个 Skill?
工具调用:必须调用哪个 MCP/API/脚本?
参数约束:字段、状态、金额、时间、ID 是否正确?
输出约束:最终回复必须包含什么,不能包含什么?
失败处理:接口失败、权限不足、数据缺失时应该怎么做?

黄金数据集可以是产物之一,但不是第一性目标。第一性目标是让每条关键规则都有对应的可验证场景。

具体怎么做

text 复制代码
1. 通读 SKILL.md,标出所有强制规则
   - 必须做什么
   - 禁止做什么
   - 什么时候触发
   - 什么时候不触发

2. 把规则改写成 EvalCase
   - prompt:用户会怎么说
   - expected_behavior:期望行为
   - assertions:可验证断言
   - tier:事故级别
   - source:来自规则、线上失败还是人工补充

3. 给断言分级
   - exact_match:工具名、参数、状态码、字段值等硬标准
   - semantic:解释是否合理、语气是否清楚、是否给出正确建议
   - existence:只检查是否出现某类内容,不能单独作为准入依据

4. 加入负向用例
   - 不该触发时不能触发
   - 不该提交时不能提交
   - 不该编造时不能编造

最小产物

text 复制代码
inputs/<skill-name>/
├── cases.md             # 人读版本,方便审查
├── cases.json           # 机器读版本,方便执行
└── README.md            # 覆盖范围、断言口径、风险分层

如果刚开始做,不需要一口气写 100 条。先写 10 到 20 条高风险用例就够:

  • 核心 happy path
  • 关键边界条件
  • 明确禁止行为
  • 线上最可能翻车的场景

验收标准

检查项 最低要求
核心规则覆盖 每条高风险规则至少 1 条用例
exact_match 断言 能硬判的地方必须硬判
负向用例 至少覆盖主要误触发场景
事故分层 标出哪些用例失败后不能上线
可复用 用例能被下一步自动执行

独立价值

即使你暂时没有自动化执行,规则可测化本身也有价值。

它会迫使团队把"这个 Skill 应该表现好"改成"这个 Skill 在这些场景下必须做对这些事"。这一步完成后,你已经有了一套可以讨论、可以评审、可以回归的质量基准。


Step 2:离线执行闭环

目标

让测评从"人工看几条样例"变成"一条命令跑完整个闭环"。

这个闭环至少包括四件事:

text 复制代码
读取用例
    ↓
执行 Skill
    ↓
保存 transcript
    ↓
独立评审并生成报告

这里的关键不是自动化本身,而是证据链。

测评报告不能只写"模型回答得不错"。它必须能回到原始 transcript,看到模型到底读了什么、调用了什么工具、拿到了什么结果、最后怎么输出。

SkillSentry 对应机制

能力 SkillSentry 中的对应
用例执行 executor step / sentry-executor
原始证据 transcript 双分离格式
独立评审 grader-report
结构化结果 grading-summary.json / session.json
历史记录 history.json
回归流程 regression 工作流复用已有用例

这里要特别注意:执行者不能评审自己。

如果 executor 运行完之后自己总结"我完成得很好",这不是测评,只是自述。可信的测评必须让独立 Grader 读取证据,再按断言逐项判断。

具体怎么做

text 复制代码
1. 固定输入
   每次测评读取同一批 EvalCase,不临时凭感觉挑样例。

2. 固定执行
   executor 对每个 case 生成独立 transcript,失败也要留下证据。

3. 固定评审
   grader-report 按断言逐项判断,不允许只给总体印象分。

4. 固定输出
   报告里同时保留自然语言解释和结构化 JSON 字段。

产出物

text 复制代码
runs/<run-id>/
├── session.json
├── transcripts/
│   ├── case-001.with_skill.md
│   └── case-002.with_skill.md
├── grading-summary.json
└── report.md

验收标准

检查项 最低要求
一条命令跑完 不需要人工逐条复制粘贴
每个 case 有 transcript 成功和失败都能追溯
评审独立 executor 不给自己打分
结构化结果 CI 和历史分析能读取
可重复运行 同一批用例能跨版本比较

独立价值

做到这一步,你已经能回答一个最基础但很重要的问题:

我改了 Skill 之后,有没有把原来能做对的事情改坏?

很多团队不需要一开始就做在线监控。先把离线闭环跑起来,就已经能挡住大部分"改一行 prompt,坏一片行为"的回归事故。


Step 3:可信发布门禁

目标

让测评结论真正能用于发布决策。

这一步要解决的问题不是"能不能打分",而是:

这个分数够不够可信,能不能决定上线?

AI Skill 测评最危险的地方,是看起来有报告、看起来有通过率、看起来有结论,但这些结论其实来自模糊判断或执行者自评。

可信门禁要做三件事:

text 复制代码
硬标准用代码判。
语义标准让独立 Grader 判。
发布结论读结构化指标,而不是读自然语言感觉。

门禁指标怎么设计

指标 解决的问题 用法
authoritative_pass_rate 核心通过率到底是多少 发布准入主指标
exact_match pass rate 硬断言有没有过 能脚本判就不交给 LLM
IFR 事故级失败是否为 0 S 级红线
Delta 有 Skill 是否真的更好 防止 Skill 帮倒忙
stability 多次运行是否稳定 防止单次运气好

不是每次测评都要跑全量指标。smoke/quick 可以更轻,full 发布前要更完整。

和通用 LLM-as-Judge 的区别

很多评估体系会把 Step 3 写成"引入 LLM-as-Judge"。这句话不够准确。

SkillSentry 的原则不是"多用 LLM Judge",而是"只在该用的地方用":

判断类型 推荐方式
工具名是否正确 exact_match / 脚本判断
参数值是否正确 exact_match / 脚本判断
状态码是否正确 exact_match / 脚本判断
是否遵守流程 transcript 证据 + Grader
回复是否解释清楚 semantic Grader
A/B 哪个更好 盲测 Comparator
失败原因归因 Analyzer 解盲分析

一句话:LLM Judge 不是地基,证据和断言才是地基。

发布结论

最终不要只输出"通过率 87%"。发布决策应该落到明确结论:

结论 含义
PASS 核心指标达标,没有事故级失败,可以发布
CONDITIONAL PASS 主路径可用,但有明确条件或低风险问题
FAIL 事故级失败、核心指标不足或明显退化,不应发布

CI 怎么接上

CI 不应该解析自然语言报告,而应该读取结构化结果:

text 复制代码
grading-summary.json
session.json
history.json

然后用确定性脚本做判断:

text 复制代码
if IFR > 0:
    FAIL
elif authoritative_pass_rate < threshold:
    FAIL
elif delta < 0:
    FAIL
else:
    PASS or CONDITIONAL PASS

SkillSentry 里对应的是 sentry_ci.py。它的价值不是"把测评放进 GitHub Actions",而是把 AI Skill 的质量结论变成 CI 能识别的 exit code。

验收标准

检查项 最低要求
exact_match 不靠 LLM 判断 硬断言有脚本或结构化证据
发布结论结构化 PASS / CONDITIONAL PASS / FAIL
事故级失败一票否决 S 级 IFR 必须为 0
历史可比较 能看出新版本是否退化
CI 可读取 不依赖 grep 自然语言报告

独立价值

做到这一步,测评体系才真正从"辅助观察"变成"发布门禁"。

它能回答管理层最关心的问题:

text 复制代码
这次能不能上?
不能上,卡在哪?
如果要条件发布,条件是什么?

Step 4:regression 活水机制

目标

让测评集随着真实失败持续进化。

前面三步解决的是上线前质量保障。但上线后还会遇到新的问题:

  • 用户输入方式和设计时不一样;
  • MCP/API 返回了没见过的异常;
  • 上游字段变了;
  • 模型服务更新后行为漂移;
  • 某个边界场景在线上第一次出现。

这些问题不能只靠事后修复。每一次真实失败,都应该变成下一次发布前会自动执行的 regression 用例。

最小闭环

不需要一开始就搭完整线上监控平台。最小版本只要做到:

text 复制代码
线上失败
    ↓
保存 trace / transcript
    ↓
人工归因
    ↓
补充 regression case
    ↓
下次发布前自动执行

这就是测评集的活水机制。

回流用例怎么写

一条线上失败不应该直接复制成用例。需要先归因:

失败类型 回流方式
触发失败 补 trigger / negative case
工具调用错 补 exact_match 参数断言
输出格式错 补输出模板断言
流程跳步 补 e2e case
用户表述长尾 保留脱敏后的原始表达
上游异常 补 fallback / error handling case

和 Step 1 的关系

Step 1 不是一次性工作。Step 4 会不断把新失败送回 Step 1。

text 复制代码
初始规则 → 初始 EvalCase
线上失败 → regression EvalCase
版本迭代 → history 对比
CI 门禁 → 发布前拦截

这就是闭环。

验收标准

检查项 最低要求
失败可追溯 有 trace / transcript
失败可归因 知道是触发、执行、评审还是输出问题
用例可回流 能变成 regression case
发布前必跑 regression 不只是文档记录
历史可见 history.json 能看到修复前后变化

独立价值

做到这一步,测评体系不再是静态资产,而是会随着真实使用不断变强的质量系统。

真正有价值的测评集,不是第一天写得多完整,而是每次线上踩坑之后都能多拦住一个坑。


四步之间的依赖关系

text 复制代码
Step 1 → Step 2
规则可测化之后,离线流程才知道要执行什么、验证什么。

Step 2 → Step 3
有 transcript 和结构化结果之后,发布门禁才有可靠输入。

Step 3 → Step 4
有明确门禁之后,regression 用例才知道应该拦截什么。

Step 4 → Step 1
线上失败回流之后,初始用例集持续扩充。

这四步不是线性项目,而是一个循环。


团队规模怎么适配

团队情况 建议路径 目标
独立开发者 Step 1 精简版 + Step 2 手动/半自动 先有 10 到 20 条核心用例
2 到 3 人小组 Step 1 到 Step 3 建立离线门禁和发布结论
5 人以上团队 Step 1 到 Step 4 建立回流、CI、历史追踪
已有测试团队 从 Step 1 重审规则可测性,再接 Step 2 把传统用例改造成 Skill EvalCase

最小可行版本可以很小:

text 复制代码
10 条核心用例
1 条执行命令
1 份结构化报告
1 条发布红线

这已经比"上线后祈祷"强很多。


SkillSentry 在四步中的位置

SkillSentry 不是把传统评估体系包装一下,而是把 AI Skill 的测评闭环产品化。

路线图能力 SkillSentry 对应能力
规则可测化 SKILL.md 提炼规则,设计 EvalCase
离线执行闭环 executor + transcript + grader-report
可信发布门禁 authoritative_pass_rate / IFR / Delta / PASS-FAIL
regression 活水机制 regression workflow / history.json / CI gate
成本与效率控制 smoke / quick / full、缓存、Token 计量
可信评审 exact_match 脚本判断、semantic 独立 Grader、盲测对比

如果不用 SkillSentry,也可以照这个表自己搭。但不要跳过前两步直接做"评估平台"。没有可测规则和离线证据链,平台越复杂,结论越不可信。


常见问题

Q:我的 Skill 很简单,也需要这四步吗?

需要,但可以缩小规模。

只有 3 条规则的 Skill,也值得写 10 条 EvalCase。因为 AI Skill 的风险往往不在规则数量,而在边界场景:什么时候不该触发、什么时候不能提交、什么时候必须等待用户确认。

小 Skill 的最小版本是:

text 复制代码
5 条 happy path
3 条 edge case
2 条 negative case

Q:是不是一定要先有 50 条人工黄金数据?

不一定。

对 AI Skill 来说,第一步不是追求样本量,而是追求关键规则可测。10 条高风险用例,比 100 条没有断言强度的泛泛样例更有价值。

当你的 Skill 进入稳定维护阶段,再逐步把线上失败、人工经验、真实用户输入沉淀成 Golden Set。

Q:LLM-as-Judge 到底什么时候用?

只在需要语义判断时用。

工具名、参数、状态码、字段值这些硬标准,应该优先用脚本或结构化断言判断。LLM Grader 适合判断解释是否充分、是否遵守业务语义、是否遗漏关键风险提示。

不要让 LLM Judge 做它不擅长的事,更不要让执行 Agent 给自己判卷。

Q:CI 里要跑 full 吗?

通常不建议每次 PR 都跑 full。

更实用的做法是:

场景 推荐模式
日常小改 smoke
合并前关键改动 quick
正式发布前 full
修线上事故后 regression

CI 的价值是快速拦截明显退化,不一定要替代发布前完整测评。

Q:线上监控是不是必须一开始就做?

不是。

一开始先做最小回流就够:线上出现失败后,保存 trace,人工归因,补一条 regression case。等这个闭环跑顺,再考虑抽样评估、质量日报、自动告警。


总结

从 0 到 1 搭建 AI Skill 测评体系,不要从"大而全平台"开始。

更稳的顺序是:

Step 核心问题 核心产出
1. 规则可测化 这个 Skill 到底测什么? EvalCase / 断言 / 风险分层
2. 离线执行闭环 能不能自动跑并留下证据? transcript / grader-report / report
3. 可信发布门禁 结论能不能决定上线? authoritative_pass_rate / IFR / Delta / PASS-FAIL
4. regression 活水机制 线上失败能不能反哺测评? regression case / history / CI gate

一句话记住:

AI Skill 测评体系的起点不是数据量,而是规则能不能被验证;终点不是一份报告,而是每次失败都会变成下一次发布前的拦截器。

相关推荐
气概3 小时前
claude code+deepseek方案
aigc·ai编程·agi
92year4 小时前
5月12日TanStack被投毒,160+个npm包沦陷——我用Bumblebee扫了一遍开发机,发现3个中招的
aigc
SEO_juper5 小时前
B2B 工厂专属双引擎策略:SEO 承接采购词排名,GEO 抢占 AI 咨询问答
aigc·seo·跨境电商·外贸·geo·谷歌优化·gsc
Z-D-K6 小时前
考验AI的“自我和意识“-AI对《红楼梦》后40回的改写(22)
人工智能·ai·aigc·agent·agi
Prowler_92567 小时前
创新项目实训博客(十一):大模型智能标题生成与多级降维兜底策略
人工智能·flutter·aigc
sunneo8 小时前
本周 AI 新动态精选(2026.06.08–06.14)
人工智能·aigc·ai编程·ai写作·ai-native
leeyi8 小时前
Tool 组件:让 Agent 学会「动手」的统一接口
aigc·agent·ai编程
张申傲9 小时前
拆解 harness9(4):Skills 系统架构
aigc·agent·deepseek·harness
冰^9 小时前
AI CC Switch 解决了什么?
人工智能·gpt·网络协议·chatgpt·github·aigc