回答"这个 skill × 这个模型 × 这个任务,有没有用?"——Skill 生态缺少的是判断层而非跑分层。SkillsBench 证明了 skill 需要度量(策展 +16.2pp / 自生成 -1.3pp),但止步于测量。本工具链把度量做成带偏差控制的工程协议。
本仓库是独立开源版(原项目为「衡能——基于净收益判定的智能体能力准入与选配系统」GOAI 2026 的一部分,
40_Demo/skillops-loop/)。设计文档:DESIGN.md。
不调用任何 API,用仓库自带的样例结果走完 L1 规则检查 + 统计报告,理解整套协议输出:
pip install -r requirements.txt
playwright install chromium
python src/metrics.py examples/results/mood-treehole-home__frontend-design__20260725_113730 # L1 规则检查
python src/report.py examples/results/mood-treehole-home__frontend-design__20260725_113730 # 统计报告样例结果 = frontend-design skill 的首轮 5-run 配对对照(with/without × HTML 产物 + 双视口截图 + 盲评结果),来自真实模型运行。注意 L1 报告中的 corePath 全 FAIL 是预期行为——该轮产物早于 data-testid 约定,正好演示"协议升级后旧产物如何被规则层识别"。
只跑 runner + L1/GT 验证,先感受"skill 注入前后产物差异":
# 1. 配置环境变量(任意 OpenAI 兼容端点)
export HIGRESS_BASE_URL=https://api.deepseek.com # Windows PowerShell: $env:HIGRESS_BASE_URL="..."
export HIGRESS_API_KEY=sk-xxx
# 2. 跑 2 轮对照(示例:lab-unit-harmonization,数据/skill/验证器全部随包)
python src/run_xlsx_experiment.py --mode lab_unit_harmonization \
--task tasks/lab-unit-harmonization.yml --skills lab-unit-harmonization \
--scenario ckd-unit-harmonization --runs 2 --arms without_skill with_skillrun_xlsx_experiment.py 是文件型任务 runner(xlsx/docx/regex/csv_stats/travel_planning/dialogue_parser/lab_unit_harmonization,产物经 ground-truth 验证器打硬指标,不依赖盲评)。文件型任务的被测 skill 需放在 skills/(或 SKILL_HOME 指向的目录);示例 lab-unit-harmonization 已内置;csv_stats 等模式请自备 skill(对应社区 skill 如 data-analysis 需自行获取,本仓不分发第三方 skill)。所有模式无 key 时都会在模型调用处明确报错——fixtures/验证器/workspace 的准备不依赖 API,可先 dry 验证环境。
两种任务形态,选一种:
文件型任务(数值验证,judge 由 ground-truth 验证器替代):
python src/run_xlsx_experiment.py --mode lab_unit_harmonization \
--task tasks/lab-unit-harmonization.yml --skills lab-unit-harmonization \
--scenario ckd-unit-harmonization --runs 5 --arms without_skill with_skill产物含 with/without 的 verify_results(硬指标)+ meta.json(token/时延/成功率);多 run 后对比硬指标。注意 n=5 只有方向性,显著结论需 15~20 对。
HTML/视觉型任务(完整盲评链路,需自备前端类 skill,如你的 SKILL_HOME 里的设计 skill):
python src/run_experiment.py --task tasks/mood-treehole-home.yml --skill <你的前端skill> --runs 5
python src/screenshot.py results/<实验目录> # 双视口截图(视觉 judge 需要;html 模态可跳过)
python src/metrics.py results/<实验目录> # L1 规则检查
python src/judge.py results/<实验目录> # 盲评(judge 模型建议与 runner 不同厂商)
python src/report.py results/<实验目录> # 统计报告- 盲测隐藏实验条件(是否注入 skill / 模型名 / 组别),不隐藏评价目标(judge 看中性任务说明 + rubric + 匿名产物);
- criterion 级成对比较 + 换边复评:A/B 顺序交换评两轮,两轮不一致强制判平,实测消除严重的模型位置偏差(某 judge 曾 A胜28/B胜2);
- 配对 bootstrap 置信区间:delta CI 跨 0 只写"结果不确定",不写"有效/稀释"(n=5 只有方向性,显著结论需 15~20 对);
- 评审前自动脱敏:HTML 注释、skill 名、模型名、生成自述;
- judge 与 runner 不同厂商(防自我偏好;开源版为建议项);
- L1 规则层(零模型) 抓 L2 盲评漏报的硬性问题(如移动端溢出)——三层互补,任何"结论"都要能定位到原始产物;
- 可靠性字段全程落盘:成功率/截断/重试/时延/token 用量,成本与质量并列报告,不合成单值。
| 脚本 | 环节 |
|---|---|
run_experiment.py |
三臂 runner(无 skill / 人工 skill / 自生成 skill),采集可靠性字段 |
screenshot.py |
Playwright 双视口截图(desktop 1440×900 / mobile 390×844) |
metrics.py |
L1 规则层:DOM 硬指标 + data-testid 核心交互路径(零模型) |
judge.py |
L2 盲评:成对比较、换边复评、脱敏、429 退避、断点续评 |
report.py |
统计报告:criterion 胜率、配对 bootstrap CI、成本并列、四分类结论 |
run_xlsx_experiment.py |
文件型任务 runner(Python 执行 + ground truth 验证,如 xlsx/regex/csv) |
higress.py |
OpenAI 兼容端点客户端(环境变量配置,见下) |
断点续跑/续评:所有脚本幂等,重跑自动跳过已完成项(崩溃安全,429/5xx 自动退避)。
- Python 3.10+;
requirements.txt:pyyaml / requests / playwright(+playwright install chromium); - 模型调用 = OpenAI 兼容 chat/completions 协议,端点由环境变量指定:
HIGRESS_BASE_URL(默认http://127.0.0.1:18080,Higress 网关示例,可换成任意兼容端点)HIGRESS_API_KEY(可选)HIGRESS_PATH(默认/v1/chat/completions)
- 兼容端点示例:DeepSeek
https://api.deepseek.com、Moonshothttps://api.moonshot.cn、OpenAIhttps://api.openai.com/v1(PATH=/chat/completions)、阿里云百炼兼容模式https://dashscope.aliyuncs.com/compatible-mode/v1、本地 Ollamahttp://127.0.0.1:11434/v1; - 待测 skill 来自
SKILL_HOME(默认~/.agents/skills),标准 SKILL.md 格式;本仓示例见examples/skills/。
config.yml / config.example.yml 实验配置(模型/温度/视口/统计置信度)
tasks/*.yml 任务定义 + rubric(L2 唯一评分标准)+ 知识层预声明
skills/ 内置示例 skill(lab-unit-harmonization,开箱即用)
examples/results/ 样例结果(脱敏,档位 A 数据)
examples/tasks/ 文件型任务资产(lab-unit-harmonization 数据/skill,来源见 THIRD-PARTY.md)
examples/verifiers/ ground-truth 验证器(lab-unit-harmonization,来源见 THIRD-PARTY.md)
src/ tests/ tools/ 源码、测试、mock 工具(mock-aliyun-cli 供本地 CLI 实验)
DESIGN.md 评估体系设计 v2(术语/协议/统计口径权威文档)
THIRD-PARTY.md 随包第三方资产声明(来源/许可)
- 本仓包含原创代码、自建任务定义与内置示例;被测第三方 Skill(如 Claude 官方 xlsx/docx 封装、阿里云官方 alibabacloud-、SkillsBench 自带 search- 等)不分发,权利归原作者——请把你的被测 skill 放在自己的
skills/目录; examples/tasks/lab-unit-harmonization/与examples/verifiers/为 benchflow-ai/skillsbench 资产(Apache-2.0,未修改),完整声明见THIRD-PARTY.md;- 样例结果来自真实模型运行,已脱敏(无盲评映射、无个人路径);
- 凭据只走环境变量,代码不含任何密钥;
- 运行
judge.py会在结果目录生成_blind_mapping.json(盲评匿名映射,协议保密项)——不要提交到公开仓库(已加入.gitignore兜底)。
- 本仓库为竞赛作品(GOAI 2026 赛道一「衡能」系统)的 Skill 评测环节开源,代码维护仅限队伍成员;欢迎试用后通过 GitHub Issues 提交摩擦与改进反馈,但我们不接受外部代码贡献(PR),以确保竞赛作品贡献边界清晰。
- 反馈与仓库数据均为真实、自发产生,无任何购买/刷量行为。
n=5的结论只有方向性,CI 跨 0 时协议强制写"结果不确定";- 视觉 judge(screenshot 模态)需要多模态模型;纯文本模型请用
input: html; - judge 与 runner 建议不同厂商,否则存在自我偏好风险;
skillops_autoimport.py为原项目 dogfood 链路的可选集成(依赖capability_shadow模块),开源包中不可用,不影响主流程。
Apache License 2.0(见 LICENSE)。