技巧精选

Skillgrade 2.0 开源:标准化的AI Agent Skill单元测试工具

给 Agent Skills 写单元测试 Skillgrade 2.0 开源发布 @mgechev https://t.co/3k3tYpzwNl 作者 Minko 对 Skillgrade 的...

精选理由

写 Agent Skill 总翻车?用 Skillgrade 2.0,像加单测一样自动评估你的 Skill 质量,CI 集成还带阈值阻拦,比手动试错高效多了。

AI 摘要

Minko Gechev 发布了 Skillgrade 2.0,一款全局安装的 CLI 工具,专门用于给 AI Agent 的 Skill 编写和执行单元测试。它采用确定性评分器(占 70% 权重)与 LLM Rubric 评分器(占 30% 权重)混合打分模型,分别检查结果“对不对”和过程“好不好”。内置 --smoke(5 次试验)、--reliable(15 次)、--regression(30 次)三档预设,支持 Docker 隔离或 local 运行,CI 中可通过 --threshold=0.8 自动判定通过率。工具兼容 Gemini、Claude、Codex 及自定义 CLI 智能体,并已实现自举(用自身评估自身仓库技能)。

原文 · shao__meng

给 Agent Skills 写单元测试 Skillgrade 2.0 开源发布 @mgechev https://t.co/3k3tYpzwNl 作者 Minko 对 Skillgrade 的...

给 Agent Skills 写单元测试 Skillgrade 2.0 开源发布 @mgechev github.com/mgechev/skillg… 作者 Minko 对 Skillgrade 的核心主张是:指令也需要测试,不要发布没有评估的 Skills("Don't ship skills without evals") 它的前身是作者的框架式项目 Skill Eval,后来被彻底重写:从"你在框架之上搭建项目"变成"一个全局安装、指向 Skill 目录即可运行的工具",所有配置收敛到单个 eval.yaml 文件,零脚手架、零项目结构学习成本。 工作原理 整个流程就三步: npm i -g skillgrade cd my-skill/ && skillgrade init skillgrade --smoke 运行时它做的事情是:把任务的 workspace 文件(待修复的代码、工具二进制等)复制进一个隔离环境(默认 Docker 容器,可选 local),把任务指令交给真实的 AI Agent 去执行,然后对执行后的工作区状态进行打分。由于大模型输出有随机性,每个任务会跑多次试验(trial)统计通过率,而不是一锤定音。 两类评分器(Grader)——设计上最值得借鉴的部分 Skillgrade 采用"确定性检查 + LLM 评审"的混合打分模型,加权求和得出最终分数: · Deterministic(确定性评分器):运行一段脚本(bash/TypeScript 均可),输出 JSON 格式的 {score, details, checks}。用于回答"结果对不对"——文件是否生成、内容是否符合预期。通常占 70% 权重。 · LLM Rubric(评分细则评分器):把智能体的完整会话记录交给另一个 LLM,按照你写的评分细则做定性评估。用于回答"过程好不好"——是否遵循了技能规定的工作流、是否高效、有没有绕开你的工具自己乱改。通常占 30% 权重。 以仓库自带的 superlint 示例来说:确定性评分器检查 .superlint-passed 文件是否存在、代码是否真的改成了 const 和单引号;LLM 评分器则检查智能体是否遵循了 check → fix → verify 三步工作流、是否在 5 条命令内完成。这种"结果 + 过程"双维度设计,正是 Anthropic 评估方法论(该项目明确引用了 SkillsBench 论文和 Anthropic 的 agent evals 文章)的落地实践。 工程化亮点 · 三档预设:--smoke(5 次试验,开发时快速冒烟)、--reliable(15 次)、--regression(30 次,合并前高置信度回归检测)——把统计意义上的试验次数选择直接产品化了。 · CI 原生支持:--ci --threshold=0.8 一个标志搞定,通过率低于阈值直接非零退出,可以像跑单测一样在 GitHub Actions 里守护技能质量。CI 环境建议用 --provider=local(runner 本身就是沙箱,省去 Docker 开销)。 · 智能体适配层非常开放:内置 Gemini/Claude/Codex,还支持 OpenCode、ACP 协议(JSON-RPC over stdio,无需管理 API key),以及最通用的 command 模式——任何能从 stdin 读指令的自定义 CLI 都能接入,因为评分只看工作区最终状态,与智能体实现完全解耦。 · 自举(Dogfooding):仓库根目录自己就有一份 eval.yaml,用 Skillgrade 评估自家的 skillgrade-setup 和 skillgrade-graders 两个技能——工具用自己测自己。 · 细节考究:配置中的 instruction/rubric/run 字段支持文件引用;.env 自动加载且密钥在持久化日志中自动脱敏;提供 --validate 用参考答案先验证评分器本身是否可靠;自带 CLI 报告和浏览器 Web UI 两种结果查看方式。 官方总结的最佳实践 README 中提炼的四条经验值得单独记住:评结果而非评步骤(检查文件被修好,而不是检查跑了某条命令);指令必须点名输出文件(评分器查 output.html,指令就得让智能体存成 output.html);先用参考解验证评分器;从小做起——3–5 个精心设计的任务胜过 50 个噪声任务。 Minko Gechev @mgechev Just released skillgrade v0.2.0! 🚀 You can now bring your own CLI agents using the new command agent. Just pipe instructions directly to your script/orchestrator. github.com/mgechev/skillg… I Your browser does not support the video tag. 🔗 View on Twitter 🔗 View Quoted Tweet 💬 2 🔄 0 ❤️ 6 👀 628 📊 3 ⚡