Agent Eval

by affaan-mef648e01899bNo license275K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated 3 days ago

カスタムタスクでコーディングエージェント(Claude Code、Aider、Codex など)をヘッドツーヘッドで比較し、合格率、コスト、時間、一貫性のメトリクスを測定します

Instructions onlyAI & Agents
AI-generated overview

Compares coding agents head-to-head on reproducible YAML tasks, measuring pass rate, cost, time and consistency.

What it does
This skill documents a lightweight CLI workflow for benchmarking coding agents such as Claude Code, Aider and Codex on the same tasks. Tasks are declared in YAML files that specify the prompt, target files, a pinned commit and judge criteria, and each agent run gets its own git worktree for isolation. It records pass/fail, cost, wall-clock time and consistency across repeated runs, then produces a comparison report table.
When to use it
Use it when choosing between coding agents or models for your own codebase, before adopting a new tool, or when re-checking agent performance after a model or tool update. It also suits teams that want data-backed agent selection decisions.
Requirements
Requires the agent-eval CLI installed from its repository, git for worktree isolation, and the agents being compared. Judge types may need pytest, npm or similar commands, and model-based judging needs an LLM. No scripts ship with the skill; it is instructions only.

エージェント評価スキル

再現可能なタスクでコーディングエージェントをヘッドツーヘッドで比較するための軽量 CLI ツールです。「どのコーディングエージェントが最適か?」という比較はすべて感覚に頼りがちです — このツールはそれを体系化します。

起動タイミング

  • 自分のコードベースでコーディングエージェント(Claude Code、Aider、Codex など)を比較する
  • 新しいツールやモデルを採用する前にエージェントパフォーマンスを測定する
  • エージェントがモデルやツールを更新した際にリグレッションチェックを実行する
  • チームにデータに基づいたエージェント選択の判断を提供する

インストール

注意: agent-eval はソースを確認した後、リポジトリからインストールしてください。

コアコンセプト

YAML タスク定義

タスクを宣言的に定義します。各タスクは何をするか、どのファイルを操作するか、成功をどう判定するかを指定します:

yaml
name: add-retry-logicdescription: Add exponential backoff retry to the HTTP clientrepo: ./my-projectfiles:  - src/http_client.pyprompt: |  Add retry logic with exponential backoff to all HTTP requests.  Max 3 retries. Initial delay 1s, max delay 30s.judge:  - type: pytest    command: pytest tests/test_http_client.py -v  - type: grep    pattern: "exponential_backoff|retry"    files: src/http_client.pycommit: "abc1234"  # 再現性のために特定コミットに固定

Git ワークツリー分離

各エージェント実行は独自の git ワークツリーを取得します — Docker 不要。これにより再現性の分離が提供され、エージェントが互いに干渉したりベースリポジトリを破壊したりしません。

収集メトリクス

メトリクス測定内容
合格率エージェントはジャッジをパスするコードを生成できたか?
コストタスクあたりの API 費用(利用可能な場合)
時間完了までのウォールクロック秒数
一貫性繰り返し実行での合格率(例:3/3 = 100%)

ワークフロー

1. タスクの定義

タスクごとに 1 つの YAML ファイルを持つ tasks/ ディレクトリを作成します:

bash
mkdir tasks# タスク定義を作成(上記のテンプレートを参照)

2. エージェントの実行

タスクに対してエージェントを実行します:

bash
agent-eval run --task tasks/add-retry-logic.yaml --agent claude-code --agent aider --runs 3

各実行:

  1. 指定されたコミットから新しい git ワークツリーを作成
  2. エージェントにプロンプトを渡す
  3. ジャッジ基準を実行
  4. 合格・不合格、コスト、時間を記録

3. 結果の比較

比較レポートを生成します:

bash
agent-eval report --format table
Task: add-retry-logic (3 runs each)┌──────────────┬───────────┬────────┬────────┬─────────────┐│ Agent        │ Pass Rate │ Cost   │ Time   │ Consistency │├──────────────┼───────────┼────────┼────────┼─────────────┤│ claude-code  │ 3/3       │ $0.12  │ 45s    │ 100%        ││ aider        │ 2/3       │ $0.08  │ 38s    │  67%        │└──────────────┴───────────┴────────┴────────┴─────────────┘

ジャッジタイプ

コードベース(決定論的)

yaml
judge:  - type: pytest    command: pytest tests/ -v  - type: command    command: npm run build

パターンベース

yaml
judge:  - type: grep    pattern: "class.*Retry"    files: src/**/*.py

モデルベース(LLM-as-judge)

yaml
judge:  - type: llm    prompt: |      Does this implementation correctly handle exponential backoff?      Check for: max retries, increasing delays, jitter.

ベストプラクティス

  • 3〜5 タスクから始める — おもちゃの例ではなく、実際のワークロードを代表するタスク
  • エージェントごとに少なくとも 3 試行実行する — エージェントは非決定論的なので分散を把握する
  • タスク YAML でコミットを固定する — 日や週をまたいで結果が再現可能になる
  • タスクごとに少なくとも 1 つの決定論的ジャッジを含める(テスト、ビルド)— LLM ジャッジはノイズを加える
  • 合格率と一緒にコストを追跡する — 10 倍のコストで 95% のエージェントが正しい選択でない場合もある
  • タスク定義をバージョン管理する — それらはテストフィクスチャであり、コードとして扱う

リンク

Source and attribution

Source:affaan-m/eccindocs/ja-JP/skills/agent-evalat commitef648e0

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal