mgechev/skillgrade
"Unit tests" for your agent skills
Skillgrade – 一个用于评估 AI 编码代理的工具
功能 – Skillgrade 让您定义与编码相关的任务(例如,修复 lint 错误、实现 API、审查代码),并自动对其执行任何 AI 驱动的编码代理。每次运行后,它使用确定性脚本、基于 LLM 的评分标准或人工审核者对结果进行评分,产生通过率或加权分数。
使用方式
- 全局安装(
npm i -g skillgrade)。 - 在文件夹中运行
skillgrade init以创建eval.yaml模板(如果存在SKILL.md文件和 API 密钥,也可以让它生成 AI 建议的任务)。 - 编辑
eval.yaml以描述任务、工作区文件、上下文文件和评分器。 - 使用单个命令执行评估,例如
skillgrade --smoke。该工具会从环境变量(GEMINI_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY)自动检测代理,或者您可以使用--agent强制指定一个。 - 在终端(
skillgrade preview)或浏览器 UI(skillgrade preview browser)中查看结果。
关键概念
- 代理 – 任何由 LLM 支持的编码助手(Gemini、Claude、Codex、OpenCode 或任何 ACP 兼容的 CLI)。您也可以将其指向任意命令。
- 工作区 vs. 上下文 –
workspace文件是代理处理的可变代码;context文件是只读的参考资料。 - 评分器类型 –
- 确定性:运行一个返回 JSON 分数的脚本。
- LLM 评分标准:将代理的记录与评分标准一起发送给 LLM,并解析返回的分数。
- 人工:暂停以进行人工审查。 评分器可以加权;最终分数是加权平均值。
- 试验与预设 – 多次运行任务(
trials)以估计可靠性。像--smoke(5 次试验)或--regression(30 次试验)这样的预设提供快速或彻底的检查。 - 多轮任务 – 任务可以有一系列指令(
turns),其中工作区在轮次之间持续存在。 - 数据集扩展 – 单个任务模板可以在 JSONL/CSV 数据集上扩展,将行字段插入指令中。
- 筛选 – 使用
--filter/--not-filter根据元数据字段选择任务子集。 - 报告 – 将结果导出为 JSON、JUnit XML、CSV 或 Markdown;适用于 CI 管道。
典型工作流程示例
# 安装
npm i -g skillgrade
# 创建评估套件
mkdir my-evals && cd my-evals
skillgrade init # 创建 eval.yaml
# 编辑 eval.yaml – 添加一个在损坏的文件上运行 superlint 的任务
# (完整语法请参阅 README)
# 对默认的 Gemini 代理运行快速冒烟测试
GEMINI_API_KEY=… skillgrade --smoke
# 查看漂亮的网页 UI
skillgrade preview browser
# 在 CI 中您可能会使用:
skillgrade --regression --ci --provider=local --threshold=0.85
重要性 – 随着 AI 编码助手变得普遍,开发人员需要系统性的方法来衡量其可靠性、正确性和工作流程合规性。Skillgrade 提供了一个灵活、与语言无关的工具,可与许多 LLM 提供商配合使用,并可集成到自动化测试管道中。
范围 – 此项目是一个用于评估 AI 编码代理的真实软件工具,完全符合 AI/ML 工具生态系统。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目