Agent Eval

作者 affaan-mef648e01899b无许可证275K 个星标收录于 2026年10月8日更新于 2026年10月8日仓库3天前更新

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

仅含说明AI & Agents
AI 生成的概览

在可复现的 YAML 任务上对编码代理进行对比评测,衡量通过率、成本、耗时与一致性。

功能
该技能记录了一套轻量级 CLI 工作流,用于在相同任务上对 Claude Code、Aider、Codex 等编码代理进行基准比较。任务以 YAML 文件声明,包含提示词、目标文件、固定提交和评判标准,每次代理运行都会获得独立的 git 工作树以实现隔离。它记录通过与否、成本、实际耗时以及重复运行的一致性,并生成对比报告表格。
适用场景
适用于在自己的代码库中比较编码代理或模型、在采用新工具之前评估,或在模型或工具更新后重新检查代理表现。也适合希望基于数据做出代理选型决策的团队。
运行要求
需要从代码仓库安装 agent-eval CLI、用于工作树隔离的 git,以及被比较的各个代理。评判类型可能需要 pytest、npm 等命令,基于模型的评判需要 LLM。该技能不附带脚本,仅为说明文档。

エージェント評価スキル

再現可能なタスクでコーディングエージェントをヘッドツーヘッドで比較するための軽量 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% のエージェントが正しい選択でない場合もある
  • タスク定義をバージョン管理する — それらはテストフィクスチャであり、コードとして扱う

リンク

来源与署名

来源:affaan-m/ecc位于docs/ja-JP/skills/agent-eval提交ef648e0

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架