omk 快速上手:跑出第一份 verdict
5 分钟跑出第一份报告,然后把 demo 换成你自己的 skill。目标读者:手里有一版(或几版)skill,想用数据看看「这版 skill 到底好不好」「v2 有没有变好」「能不能带证据发布」。
前置(1 分钟)
npm i oh-my-knowledge -g
omk --version # 能输出版本号即装好默认 runtime 使用 claude CLI 作为执行器和评委,所以需要先安装并登录 Claude Code。如果你在 Codex 或 OpenAI 兼容 API 环境里,也可以继续往下看,首跑命令里会标出 runtime 参数怎么替换。
如果你想用「自然语言让 agent 帮你跑」的方式(推荐),还需要把 omk Agent Skill 装到你的 agent 工具里:
omk install omk-agent-skill默认只会安装到本机已检测到、且 omk 明确支持的目标:检测到 ~/.codex 或 ~/.agents 时写入 Codex/AGENTS,检测到 ~/.claude 时写入 Claude Code。要强制写入当前 omk 已知的全部目标,用 --to all;要指定自定义 skill 根目录,用 --dest。装好之后,agent 收到含「omk」「评测」「benchmark」之类的关键词就会自动加载 SKILL 上下文。
最快首跑:先用 demo 脚手架
如果你第一次用 omk,先不要急着接自己的文件,从这里开始:
omk init demo
cd demo
omk eval --control code-review-v1 --treatment code-review-v2 --dry-run
omk eval --control code-review-v1 --treatment code-review-v2omk init 会创建两版 skill 和三条评测用例。--dry-run 先预览任务计划和预估调用次数;真跑后会打开 HTML 报告。demo 只有三条用例,verdict 经常是 UNDERPOWERED,这是正常教学结果,不是运行失败。
如果默认 Claude runtime 不可用,同一套 demo 可以加 runtime 参数:
# Codex CLI 路径
omk eval --control code-review-v1 --treatment code-review-v2 \
--executor codex --model <codex-model> \
--judge-models codex:<codex-model>
# OpenAI 兼容 API 路径
export OPENAI_API_KEY="..."
export OPENAI_BASE_URL="https://api.example.com/v1"
omk eval --control code-review-v1 --treatment code-review-v2 \
--executor openai-api --model <model> \
--judge-models openai-api:<model>Codex 的 <codex-model> 要换成本机 Codex 可用模型;可查看 ~/.codex/config.toml 或 $CODEX_HOME/config.toml 里的 model。OpenAI 兼容 API 则要确认模型名和 OPENAI_BASE_URL 指向的端点匹配。
准备 skill(1 分钟)
按 omk 默认布局把 skill 放到 skills/ 目录下。推荐用单 .md 文件,最简单:
skills/
├── my-skill-v1.md
└── my-skill-v2.md只有当 skill 内容超长、想把示例 / 参考资料拆到独立文件时,再用目录式(每版一个目录):
skills/
├── my-skill-v1/
│ └── SKILL.md
└── my-skill-v2/
├── SKILL.md
└── references/ 长示例 / 参考资料
└── examples.md两种形式 omk 都能识别,混用也行。要跑 v1 vs v2 对比就按上面放两版;只想看「有 skill vs 没 skill」的差距,放一份就够,用 baseline 对照。
把 demo 换成你自己的 skill
路径 A:自然语言(推荐)
打开你的 coding agent,进入项目目录,直接说一句话:
用 omk 对比 skills/my-skill-v1 跟 skills/my-skill-v2
omk skill 会自动判断:没有 eval-samples.json 就先帮你生成用例,然后跑评测,最后把报告浏览器弹出来。Claude Code 可以直接使用已安装的 omk skill;在 Codex 里则让 agent 执行 omk CLI。常见说法:
- 「用 omk 对比 skills/my-skill-v1 跟 skills/my-skill-v2」
- 「用 omk 给 skills/audit 跑 baseline 对照(有 skill vs 没 skill)」
- 「用 omk 跑 skills/ 下面所有 skill 的批量评测」
- 「用 omk evolve 自动改进 skills/my-skill-v2,跑 5 轮」
路径 B:直接命令行
如果你只有一版 skill,最短有用对比是「有这个 skill」vs baseline:
omk sample skills/my-skill.md # 第一次:让 AI 给你的 skill 生成评测用例
omk eval --control baseline --treatment my-skill --dry-run
omk eval --control baseline --treatment my-skill如果你已经有 v1 / v2 两版,再做版本对比:
omk sample skills/my-skill-v2.md # 第一次:让 AI 给你的 skill 生成评测用例
omk eval --control my-skill-v1 --treatment my-skill-v2 --dry-run # 预览要跑什么
omk eval --control my-skill-v1 --treatment my-skill-v2 # 真跑
omk studio # 启动报告浏览器variant 名来自 skills/ 下的 skill 文件名或目录名;skills/my-skill.md 对应 my-skill,上面的 v1 / v2 布局对应 my-skill-v1 和 my-skill-v2。
--dry-run 预览时会告诉你预估调用次数和成本,确认 OK 再去掉 flag 真跑。omk eval 默认会先跑一次 doctor 健康度检查当门禁,发现 skill 写法有大问题就直接拦下来;如果你确认知道自己在干嘛,加 --skip-doctor 绕过。
模型或执行器失败时
CLI 会尽量把首跑失败变成可执行的下一步:
- Claude 失败:先登录 Claude Code,或按上面的参数切到 Codex / OpenAI API。
- Codex 模型失败:换成
~/.codex/config.toml或$CODEX_HOME/config.toml里配置的模型,再用codex exec -m <codex-model> "hi"验证。 - OpenAI / Anthropic API 模型失败:检查
--model、--judge-models、base URL,以及账号是否有该模型权限。 - 如果只是想先验证断言和报告链路,加
--no-judge;它会跳过 LLM 评委,只使用断言分数。
看结果(1 分钟)
报告浏览器自动弹出(默认 http://127.0.0.1:7799/),重点看三个地方:
verdict(跨版本结论):PROGRESS(变好)/ NOISE(差距在置信区间内不可区分)/ REGRESS(变差)/ CAUTIOUS(趋势好但置信不足);外加两档边界情况 UNDERPOWERED(用例太少不足以下结论)与 SOLO(单变体,无可对比)。这是你能直接拿出去对焦的一句话结论。
综合分:每版 0-5 分平均,跟基线比 +Δ 多少。Δ 旁边的置信区间决定 verdict 落点 —— 默认 95%,多个实验组共用一个对照时按 Bonferroni 提到更高置信水平。
低分用例:点开看 LLM 在哪条用例上崩了。对照「rubric 期望」跟「LLM 实际输出」找差距 —— 通常能直接看出 skill 文档哪段写得不够清楚。
按 verdict 行动
| Verdict | 下一步 |
|---|---|
PROGRESS | 可以走正常发布流程。留存报告作为发布证据;如果这是已用 omk install 纳管的 skill,再运行 omk promote <name> 记录接受决定。 |
CAUTIOUS | 不要盲发。先看触发的告警(分层门控、评委分歧、稳定性或 holdout),修完再重跑;只有明确人工复核后才放宽门禁。 |
REGRESS | 不要发布。从最差层和失败用例开始定位,修好 artifact 后重跑评测。 |
NOISE | 暂不做发布判断。增加用例,或提高用例集区分度,让差异能从噪声里分离出来,再重跑。 |
UNDERPOWERED | 把用例扩到约 20 条以上,或至少按当前规模 2× 扩充后重跑。 |
SOLO | 先补对照组,通常用 omk eval --control baseline --treatment <name>,再做发布 / 不发布判断。 |
关键提示
用例生成会花时间。omk 默认让 AI 给你的 skill 生成 10-20 条用例,但 AI 生成的用例有偏:容易扎堆在 skill 文档已经写清楚的「happy path」上,对边界 / 反例 / 误用场景覆盖不足。强烈建议第一次跑完之后花 30 分钟人工筛一遍:删掉不合理的、补缺关键边界、补几条「故意写错的用户指令」看 skill 会不会被带偏。这是评测结果可信度的最大变量。
评测会产生 LLM 费用。粗算单条用例 × 单 variant 约 $0.01-0.05 美元,10 条用例 × 2 variants 约 $0.2-1 美元。跑前 --dry-run 预览。
结论只对你给定的用例集负责。「我这版 skill 更好」这句话的天花板是「在你设计的 N 条用例上更好」。换用例集结论可能翻盘。所以用例设计本身就是结论可信度的源头 —— 不要把它当成「跑评测前的麻烦事」,它就是评测本身。
常见场景速查
| 想做什么 | 自然语言说法 | 等价命令 |
|---|---|---|
| 第一次给 skill 跑分 | 给 skills/X 跑 baseline 对照 | omk eval --control baseline --treatment X |
| 改完前后对比 | 对比 git 历史里的 skills/X 跟当前版本 | omk eval --control git:X --treatment X |
| 让 omk 帮我自动改 skill | 用 omk evolve skills/X 跑 5 轮 | omk evolve skills/X.md --rounds 5 |
| 批量评测一批 skill | 给 skills/ 下所有 skill 跑评测 | omk eval --batch |
| 只生成用例不跑评测 | 给 skills/X 生成测试用例 | omk sample skills/X.md |
| 单独跑健康度检查 | 给 skills/X 做 doctor 体检 | omk doctor skills/X.md |
| 看历史报告 | 打开 omk studio | omk studio |
跑完第一份报告,对焦时拿这些信息走
- verdict + 综合分 + Δ + 95% CI 区间
- 哪几条用例分数最低,rubric 期望 vs LLM 实际差在哪
- 你对哪些用例的设计有疑问(避免「数据说话也要怀疑数据」的盲信)
- doctor 健康度结论(eval 默认会跑,报告里有;如果想单独审一次跑
omk doctor)
更深的玩法
- 心智模型 —— 三阶段:doctor / eval / observe
- 一次运行到底怎么跑:工作原理
- 详细 CLI / executor / judge / observe 参考:README.zh.md
- 评分管道(assertion / llm / judge / dimension / composite 五层):scoring.md
- 测量学严谨性(Bootstrap CI / Krippendorff α / length-debias 等):statistical-rigor.md
- 用例设计规范(mocks / environment / tripwire / mocksStrict):sample-design-spec.md