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)。任意のコマンドを指定することもできます。
- ワークスペースとコンテキスト –
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
# 見栄えの良い Web UI を表示
skillgrade preview browser
# CI では次のように使用するかもしれません:
skillgrade --regression --ci --provider=local --threshold=0.85
重要性 – AI コーディングアシスタントが一般的になるにつれ、開発者はその信頼性、正確性、ワークフロー準拠を体系的に測定する方法を必要としています。Skillgrade は、多くの LLM プロバイダーと連携し、自動テストパイプラインに統合できる、柔軟で言語に依存しないハーネスを提供します。
範囲 – このプロジェクトは、AI コーディングエージェントを評価するための本格的なソフトウェアツールであり、AI/ML ツールエコシステムに完全に適合します。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト