mgechev/skillgrade

"Unit tests" for your agent skills

Skillgrade – 一个用于评估 AI 编码代理的工具

功能 – Skillgrade 让您定义与编码相关的任务(例如,修复 lint 错误、实现 API、审查代码),并自动对其执行任何 AI 驱动的编码代理。每次运行后,它使用确定性脚本、基于 LLM 的评分标准或人工审核者对结果进行评分,产生通过率或加权分数。

使用方式

  1. 全局安装(npm i -g skillgrade)。
  2. 在文件夹中运行 skillgrade init 以创建 eval.yaml 模板(如果存在 SKILL.md 文件和 API 密钥,也可以让它生成 AI 建议的任务)。
  3. 编辑 eval.yaml 以描述任务、工作区文件、上下文文件和评分器。
  4. 使用单个命令执行评估,例如 skillgrade --smoke。该工具会从环境变量(GEMINI_API_KEY、ANTHROPIC_API_KEY、OPENAI_API_KEY)自动检测代理,或者您可以使用 --agent 强制指定一个。
  5. 在终端(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
  • 项目