vitest-evals について
ハーネスでシステムを実行し、通常のアサーションで結果を検証する Vitest 評価スイートの作成・レビュー用スキルです。AI SDK や Pi AI との連携、ジャッジ、ツールの記録と再生、セッション履歴やスパンの検証を扱います。
主な機能
- 01describeEval とハーネスで評価を作成
- 02出力、ツール呼び出し、メッセージを検証
- 03スパンと失敗したスパンを確認
- 04ジャッジを設定し使用量を記録
- 05ツールの記録と再生を設定
活用シーン
- 01AI アプリケーションの Vitest 評価を作成
- 02カスタムアプリ用のハーネスを構築
- 03ツール呼び出しとセッション動作を評価
- 04トレース欠落や評価失敗を診断
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ getsentry/ vitest-evals --skill vitest-evalsインストール後、Claude Code で/vitest-evalsを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdSOURCES.mdSPEC.mdreferences/custom-harness.mdharness-ai-sdk.mdharness-pi-ai.mdjudges-and-assertions.mdsuite-authoring.mdtool-replay.mdtroubleshooting.mdutilities.md詳細
vitest-evals
作成モデルとして、ハーネスに基づく API のみを使用してください。
はじめに
- 変更するパッケージ、アプリ、または eval ファイルを読みます。
- 実行時の対象を特定し、必要なリファレンスのみを開きます。
- スイートは Vitest に近い形に保ちます。各
describeEval(...)にハーネスを 1 つ割り当て、各テスト内で明示的にrun(...)を実行し、返された結果に対して通常のexpect(...)アサーションを使用します。
リファレンス案内
| 必要な内容 | 開くファイル |
|---|---|
| 通常の eval スイートを作成またはレビューする | references/suite-authoring.md |
ファーストパーティーアダプターなしでカスタムアプリ Harness を構築する | references/custom-harness.md |
AI SDK の generateText、generateObject、ツール、または AI SDK 形式のエージェントを統合する | references/harness-ai-sdk.md |
| Pi AI または Pi Mono 形式のエージェントを統合する | references/harness-pi-ai.md |
カスタムジャッジ、スイートジャッジ、組み込みジャッジ、または toSatisfyJudge(...) アサーションを追加する | references/judges-and-assertions.md |
| メッセージ、ツール呼び出し、またはスパンの履歴をアサートする | references/utilities.md |
| ツールの記録または再生を設定する | references/tool-replay.md |
| 失敗、トレースの欠落、予期しない出力を診断する、または検証コマンドを選ぶ | references/troubleshooting.md |
実行時の既定値
vitest-evalsからdescribeEval(...)、ジャッジ、ヘルパーをインポートします。- スイートにはハーネスを 1 つだけ割り当てます。
- システムを実行するテストでは
run(input)を呼び出します。 - アプリの動作を確認するには、
result.outputをアサートします。 - 正規化されたセッションのアサーションには、
toolCalls(result)とメッセージヘルパーを使用します。 - スパンのアサーションには、
spans(result)、spansByKind(result, kind)、failedSpans(result)を使用します。 HarnessRun、NormalizedSession、使用量、アーティファクト、ツール記録は JSON 形式でシリアライズ可能な状態に保ちます。- 判明しているトークン数と米ドルのコストは
run.usageで報告します。costUsdが不明な場合は省略し、実行が無料であると判明している場合にのみ0を使用します。 - ルーブリックのテキストと解析はジャッジに含めます。プロバイダー呼び出しは
judgeHarnessに配置し、使用量が記録されるようにctx.runJudge(...)経由で呼び出します。 - シナリオ固有の基準は入力値に含めます。直接チェックする期待値は Vitest のケース行に記述します。ケースごとのジャッジ基準は明示的なマッチャーオプションで渡し、スイート全体に適用する基準はジャッジの設定で指定します。
- カスタムジャッジには
createJudge(...)を使用し、レポーターで安定したラベルを付けます。
検証
編集したファイルを網羅できる、最小限のコマンドを優先します。
| タスク | コマンド |
|---|---|
| ファイルのリント | pnpm exec biome lint path/to/file.ts |
| ファイルのフォーマット | pnpm exec biome format --write path/to/file.ts |
| ファイルのテスト | pnpm exec vitest run path/to/file.test.ts -c vitest.config.ts |
| Eval ファイル | pnpm exec vitest run path/to/file.eval.ts -c vitest.config.ts --reporter=./packages/vitest-evals/src/reporter.ts |
| 型の確認 | pnpm typecheck |
| パッケージのビルド | pnpm build |
コメント
Markdown 対応