写了一个 Agent Skill,怎么证明它真的有用?
SkillEvaluator 分为三层:静态质量与安全检查、语义重复检测,以及在隔离环境中比较“加载 Skill”和“不加载 Skill”的真实 Agent 运行结果。
写完一个 Agent Skill,不等于它真的有用。更靠谱的做法是让同一个 Agent 分别在“加载”和“不加载”Skill 的条件下完成相同任务,再比较结果。
Agent Skill 越来越像一份写给 AI 的操作手册:什么时候触发、该看哪些资料、调用什么命令、完成后如何验收。
问题也随之出现。一个 Skill 写得很长,可能只是重复说明;规则看起来完整,也可能藏着敏感信息。更麻烦的是,Agent 加载它以后未必更准,反而可能多走步骤、多消耗 Token。
NVIDIA 最近开源的 SkillEvaluator,就是来处理这件事的。它不帮你写 Skill,而是检查这个 Skill 是否安全、清楚,以及它能不能真正改善 Agent 的表现。
第一层:先做不用模型的基础体检
SkillEvaluator 的第一层是静态检查。基础版本不需要 API Key,可以检查 Schema、PII、License、内容质量、Unicode 安全和脚本问题。
SkillEvaluator 通过 uv 安装。uv 支持 Windows、macOS 和 Linux,但第一次使用时,各系统安装 uv 的命令不同。
Windows 可以在 PowerShell 中使用 WinGet:
powershell
winget install --id astral-sh.uv -e
也可以使用 uv 官方 PowerShell 安装程序:
powershell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
macOS 可以使用 Homebrew:
bash
brew install uv
macOS 没有 Homebrew,或 Linux 用户,可以使用官方 Shell 安装程序:
bash
curl -LsSf https://astral.sh/uv/install.sh | sh
安装完成后,重新打开终端并检查:
bash
uv --version
接下来,Windows PowerShell、macOS 和 Linux 都可以运行同一条 SkillEvaluator 安装命令。uv 会自动准备 Python 3.13 环境:
bash
uv tool install --python 3.13 \
"skillevaluator[all] @ git+https://github.com/NVIDIA/SkillEvaluator.git"
确认安装:
bash
skillevaluator --version
如果系统提示找不到 skillevaluator,先运行:
bash
uv tool update-shell
然后关闭并重新打开 PowerShell 或终端。Windows 原生环境和 WSL 是两套独立环境:在 PowerShell 安装的工具不会自动出现在 WSL 中,反过来也一样。
然后把命令指向一个包含 SKILL.md 的目录:
bash
skillevaluator quality-check ./my-skill
它会给出 0~100 分和 A~F 等级,默认 70 分及以上通过。
如果想检查更多项目,同时保持全程不使用 API Key,可以运行:
bash
skillevaluator validate ./my-skill \
--checks schema,pii,license,quality,unicode,lint \
--no-dedup
这一步适合放进日常修改流程:改完 Skill,先确认结构、敏感信息和脚本检查没有问题,再交给真实 Agent 使用。
第二层:检查说明是不是写重了
Skill 很容易越补越长。同一条规则可能在 Overview、Workflow 和 Pitfalls 中各出现一次,多个 Skill 之间也可能大面积重叠。
SkillEvaluator 的第二层使用 Embedding 和模型分析这些重复内容:
bash
skillevaluator context-optimization-check ./my-skill
skillevaluator similarity-check ./skills
前一条检查单个 Skill 内部的重复说明,后一条比较一组 Skills 之间的相似覆盖。这一层需要配置模型或 Embedding Provider,不能像基础检查一样完全离线运行。
它解决的不是“文档够不够长”,而是“这些上下文是否值得每次都交给 Agent”。
第三层:做有无 Skill 的对照实验
真正有意思的是第三层。
SkillEvaluator 会生成测试任务,然后让 Agent 在隔离环境中运行两遍:一遍安装 Skill,一遍不安装。两组结果会按正确性、可发现性、有效性、效率和安全性评分,差值称为 Skill Lift。
可以先生成评估数据集:
bash
skillevaluator create-eval-dataset ./my-skill --full
生成的 evals/evals.json 不应该只包含“明确要求使用这个 Skill”的问题,还要包含隐含触发、依赖上下文判断和不应触发的负面任务。这样才能检查 Skill 的边界,而不是只测试它最擅长的题目。
完整的真实运行支持 Codex、Claude Code 和 OpenCode 等 Agent 路径,但需要对应凭据,以及 Docker、本地或云端 Sandbox。模型调用和托管环境也可能产生费用。
对第一次使用的人来说,先跑基础质量检查,再人工检查评估集,已经能发现不少问题。没必要一开始就搭建完整的 Agent 基准测试环境。

官方结果值得参考,但别当成绝对结论
NVIDIA 表示,他们用这套方法评估了 300 多个已验证 Skill,覆盖 30 多个 NVIDIA 产品。官方报告的平均 Skill Lift 是 31 分;排除原本基线已经很高的安全维度后,平均提升为 39 分。
这组数字说明 Skill 可能有效,但还不足以证明每个 Skill 都稳定提升表现。文章同时披露,85% 的已发布 Skill 每项任务只运行一次,另外 15% 运行两次,而且没有提供置信区间。Agent 本身存在随机性,单次高分可能只是一次顺利的运行。
更稳妥的方法是:先用少量任务验证方向,再增加运行次数;同时单独记录 Token、耗时和失败步骤,而不是只看一个总分。
适合怎么用
如果团队已经开始维护 Agent Skills,可以把 SkillEvaluator 放在三个位置:
- 本地编写阶段:用
quality-check快速找结构和表达问题。 - 提交代码前:用静态检查阻止敏感信息、License 或脚本问题进入仓库。
- 重要 Skill 发布前:设计一组真实任务,比较有无 Skill 的运行差异。
SkillEvaluator 目前只有 0.1.0,官方支持状态也是 Experimental。完整安全扫描还依赖 Semgrep、Gitleaks 和 SkillSpector,真实 Agent 评估的环境成本也不低。它更适合作为一套正在成形的评估方法,而不是拿来盖章“这个 Skill 已经绝对可靠”。
至少它把一个经常被忽略的问题摆到了桌面上:写给 Agent 的说明,也应该像代码一样被检查、测试和持续修改。

声明:Web前端小站 - 前端博客 - 王搏的个人博客|版权所有,违者必究|如未注明,均为原创
转载:转载请注明原文链接 - 写了一个 Agent Skill,怎么证明它真的有用?