中文版由 Skillverdict 翻译,仍在校对中;如有出入,以英文版为准。
方法 · 语料库 v1
本站每一个数字都能用三条命令复现
语料库清单、运行脚本和汇总结果是公开的。逐个技能的引擎原始输出在本地重新生成而不再分发,因为它引用了他人的代码。
技能是如何选出的
发现。 GitHub 代码搜索 filename:SKILL.md,结合各语言的特征短语(俄语:навык, используй, когда пользователь;德语:verwende, wenn der Benutzer, Anleitung;中文:技能, 使用, 当用户;英语:Use this skill when, Instructions, Workflow)。候选文件以原始形式获取;在计算脚本占比前先去掉围栏代码块,再根据剩余文本判定语言(西里尔字母 ≥ 50% → 俄语;中日韩文字 ≥ 30% → 中文;拉丁字母 ≥ 80% → 若德语功能词密度超过 4% 且出现变音符号则为德语,否则为英语)。
资格。 Frontmatter 含 name 和 description;不是 fork;至少 400 字节;检测到的语言在目标集合内。
选取。 每个仓库最多三个技能,按所有者轮询,避免高产作者占主导;优先带许可证的技能,其次是较大的。每个条目通过 git ls-remote 固定到选取时的仓库 HEAD。
存储。 采用宽松或 copyleft SPDX 许可证的技能以副本存储;其他全部存为指针(URL + SHA),运行时获取。清单记录来源 URL、提交、许可证、语言占比、是否含代码块,以及找到它的查询。
攻击样本。 十种模式 × 四种语言,每种语言由同一模板生成,因此只有语言不同。每个样本都已去害——占位主机、无效命令、frontmatter 后附有说明——存放在 benchmark/corpus/malicious/synthetic/ 下。它们从不被执行;语料库中没有任何东西会被执行。
| 语料库 v1 | en | ru | de | zh | 合计 |
|---|---|---|---|---|---|
| 正常技能 | 39 | 38 | 30 | 39 | 146 |
| 合成攻击样本 | 10 | 10 | 10 | 10 | 40 |
引擎是如何运行的
# NVIDIA/skillspector @ 6d0b7c8 (v2.12.0) skillspector scan <dir> --no-llm --format json # cisco-ai-skill-scanner==2.3.2 (PyPI) skill-scanner scan <dir> --format json --policy balanced skill-scanner scan <dir> --format json --policy quiet # 我们的对照检查器 python3 -I scripts/check_hidden_chars.py <dir>
每个包单独扫描,超时 900 秒。没有产生可解析报告的条目被排除在所有比率之外,并连同其大小列在“运行错误”下。引擎版本、超时和部分运行的历史写在结果旁边的 results/raw/<engine>/_run.json 中。
指标
- 判定层面的 FP — 引擎自身未判为 SAFE 的正常技能占比(SkillSpector
risk_assessment.recommendation;Ciscois_safe)。判定层面的 FN — 被判为 SAFE 的攻击样本占比。 - 发现项层面的 FP,MEDIUM+ 和 HIGH+ — 至少有一个该级别发现项的正常技能占比。
- 仅文本的 FP — 同上,但只统计位于
.md文件中的发现项。这把指令的语言和附带的代码量分离开来。 - 模式 × 语言矩阵 — 每种攻击模式在每种语言中报告的最高严重级别。
- 评分与代码量 — SkillSpector 评分与代码文件数(
.py .js .ts .sh .mjs .cjs .rb .go .ps1)的关系,附 Spearman 秩相关系数。
还有谁在衡量扫描器
我们不是第一个追问技能扫描器是否可信的人,而迄今的答案都指向同一方向。这份评分卡增加的是语言切分——同一攻击用四种语言书写,同样的规则按语言分别计数——以及静态评分跟随包内代码量这一观察。
- SkillTrustBench(香港中文大学(深圳)与腾讯朱雀实验室,2026 年 6 月)— 从 62 652 个市场技能中抽取 5 520 个测试用例,九类威胁,公开排行榜。测试的引擎与我们相同(Cisco Skill Scanner、NVIDIA SkillSpector),外加 Skill Vetter,并比较扫描器背后的 LLM。规模是我们语料库的三十倍;没有按语言的分析。
- MalSkillBench(Guo 等,2026 年 6 月)— 3 944 个在沙箱中运行时验证过的恶意技能,4 000 个匹配的良性技能,数据集和基线已发布。其结论与我们一致:读代码的检测器会漏掉由指令承载的攻击,而两部分从未被一起推理。
- AI Agent Skill Scanners: Bypassed Across the Board(云安全联盟关于 Trail of Bits 工作的研究简报,2026 年 6 月)— 每一个受测扫描器都在一小时内被绕过;后续的 SkillCloak(2026 年 7 月)专门展示了对市场扫描器的绕过。
- OWASP Agentic Skills Top 10 — AST08 “Poor Scanning” — 命名了这份评分卡所衡量的风险。
- OASB Skills Security Benchmark(OpenA2A)— 该厂商自家流水线的精确率/召回率表格。为完整起见列出;由被排名扫描器的制造者运营的基准回答的是另一个问题。
如果你运营一个技能扫描器基准而这里没有列出,请写信至 andrey@skillverdict.dev。
代码与数据于 2026年11月12日 开放
仓库 AndreyVomKeg/skillverdict-benchmark——语料库清单、攻击样本、运行脚本、运行日志和汇总评分卡——将在那一天连同引擎维护者的回应一起发布;七天的披露窗口正在进行。命令现在就列出,以便在代码之前先读到流程。
三条命令
git clone https://github.com/AndreyVomKeg/skillverdict-benchmark cd skillverdict-benchmark python3 -I scripts/fetch_corpus.py # 固定的 SHA → corpus/_work/ python3 -I scripts/run_engines.py # results/raw/<engine>/*.json python3 -I scripts/report.py # results/scorecard.md + .json
用 python3 -I 并在语料库目录之外运行这些读取脚本:技能内容按定义就是敌对输入。先安装引擎(pip install git+https://github.com/NVIDIA/skillspector.git@6d0b7c8 cisco-ai-skill-scanner==2.3.2)。
许可证
基准代码:Apache-2.0。语料库清单、合成样本和汇总结果:CC BY 4.0——可自由复用,请注明 skillverdict.dev。复制的技能保留各自的许可证,逐条记录。
披露政策
引擎维护者至少在仓库开放前七天收到发现项文件(语料库 v1:2026年11月5日 → 2026年11月12日)。他们的回应原样发布。关于单个正常技能的发现项只以汇总形式报告;我们不发布“未通过的技能”清单。语料库中技能的作者可通过 andrey@skillverdict.dev 请求移除;该条目将变为指针,或在下一版语料库中删除。
技能页面上线时收到通知
第二阶段上线时发一封邮件,仅此而已。选择你的邮件服务;邮件已写好,直接发送即可。
或写信至 andrey@skillverdict.dev。如果你维护一个扫描器并希望在发布前拿到原始结果,也用这个地址。