cli-eval について
cli-eval は、評価スイートの作成、モデルでの実行、結果確認に使う OmniRoute CLI の操作をまとめたスキルです。ライブ進捗、スコアカード、モデル比較、CI チェックに対応します。
主な機能
- 01サンプルと評価基準によるスイート作成
- 02指定モデルでの評価実行
- 03実行状況のライブ表示
- 04結果とスコアカードの確認
- 05モデルスコアの比較
- 06CI での評価スコア利用
活用シーン
- 01期待する回答に基づくモデル出力の評価
- 02評価実行で失敗したサンプルの確認
- 03同じスイートでモデルを比較
- 04スコアがしきい値未満なら CI を失敗させる
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ cheaper-inference/ omniroute --skill cli-evalインストール後、Claude Code で/cli-evalを入力して読み込まれたか確認します。
詳細
概要
評価スイートを作成して実行し、ベンチマークの進捗をリアルタイムで確認し、スコアカードを表示してモデルのパフォーマンスを比較し、CLI から評価の実行を CI ワークフローに統合できます。
クイックインストール
npm install -g omniroute # or: npx omniroute
omniroute --version
サブコマンド
eval
例:
omniroute eval
eval suites
例:
omniroute eval suites
eval list
例:
omniroute eval list
eval get <suiteId>
例:
omniroute eval get <suiteId>
eval create
フラグ:
--file <path>
例:
omniroute eval create
eval run <suiteId>
フラグ:
-m, --model <id>--combo <name>--concurrency <n>--tag <tag>--watch
例:
omniroute eval run <suiteId>
eval list
フラグ:
--suite <id>--status <s>--since <ts>--limit <n>
例:
omniroute eval list
eval get <runId>
例:
omniroute eval get <runId>
eval results <runId>
フラグ:
--failed
例:
omniroute eval results <runId>
eval cancel <runId>
フラグ:
--yes
例:
omniroute eval cancel <runId>
eval scorecard <runId>
例:
omniroute eval scorecard <runId>
simulate [prompt]
フラグ:
--file <path>-m, --model <id>--combo <name>--reasoning-effort <level>--thinking-budget <n>--explain
例:
omniroute simulate [prompt]
OmniRoute — CLI 評価
omniroute CLI が必要です。インストール方法とグローバルフラグについては、CLI エントリーポイントスキルを参照してください。
評価とは?
評価とは、LLM の出力を期待される回答または評価基準と照らし合わせて採点する自動テストスイートです。OmniRoute は、スイートと実行結果をローカルデータベースに保存します。
評価スイート
omniroute eval suites list # List all eval suites
omniroute eval suites list --json # JSON output
omniroute eval suites get <suiteId> # Full suite definition
スイートを作成する
omniroute eval suites create \
--name "code-quality" \
--rubric "exact-match" \
--samples-file ./samples.jsonl # JSONL: {input, expected_output}
評価基準のオプション:exact-match、contains、llm-judge、regex。
--samples-file の形式(1 行につき JSON オブジェクト 1 つ):
{"input": "What is 2+2?", "expected_output": "4"}
{"input": "Translate 'hello' to Spanish", "expected_output": "hola"}
評価を実行する
omniroute eval suites run <suiteId> \
--model claude-sonnet-4-6 # Run suite against a specific model
omniroute eval suites run <suiteId> \
--model gpt-4o \
--watch # Live TUI progress (EvalWatch)
実行は非同期です。--watch を使用してターミナルのライブダッシュボードを表示するか、手動でポーリングしてください。
RUN_ID=$(omniroute eval suites run <suiteId> --model claude-sonnet-4-6 --output json | jq -r '.id')
omniroute eval get $RUN_ID
実行を管理する
omniroute eval list # List all eval runs
omniroute eval list --json
omniroute eval get <runId> # Run details (status, model, score)
omniroute eval results <runId> # Per-sample results
omniroute eval scorecard <runId> # Full scorecard with pass/fail per sample
omniroute eval cancel <runId> # Cancel a running eval
スコアカードの出力
omniroute eval scorecard <runId> --output json
サンプルごとのレスポンスフィールド:
{
"id": "sample-1",
"score": 0.95,
"passed": true,
"input": "What is 2+2?",
"output": "4",
"expected": "4"
}
モデルを比較する
同じスイートを複数のモデルに対して実行し、比較します。
for MODEL in claude-sonnet-4-6 gpt-4o gemini-2.0-flash; do
omniroute eval suites run $SUITE_ID --model $MODEL --output json | jq '{model: .model, score: .score}'
done
CI 統合
# Run and fail CI if score drops below threshold
SCORE=$(omniroute eval suites run $SUITE_ID --model claude-sonnet-4-6 --output json | jq -r '.score')
python3 -c "import sys; score=float('$SCORE'); sys.exit(0 if score >= 0.90 else 1)"
エラー
suites createがinvalid rubricで失敗する → 次のいずれかを使用してください:exact-match、contains、llm-judge、regexsuites runがmodel not foundを返す →omniroute models --search <name>でモデル ID を確認してくださいeval getにstatus: failedと表示される →omniroute logs --search evalでエラーの詳細を確認してくださいscorecardが空の結果を返す → 実行がまだrunningの可能性があります。statusがcompletedになるまでomniroute eval get <runId>をポーリングしてください
コメント
Markdown 対応