Agent Eval

affaan-m/ECC/docs/zh-CN/skills/agent-eval

作者 affaan-mef648e01899ba3e8dc6371642deaaf64b4477775無授權條款275K 個星標收錄於 2026年10月9日更新於 2026年10月9日儲存庫4 天前更新

编码代理(Claude Code、Aider、Codex等)在自定义任务上的直接比较,包含通过率、成本、时间和一致性指标

僅含說明AI & Agents
AI 產生的概覽

在自訂任務上比較編碼代理,提供通過率、成本、時間與一致性指標。

功能
此技能說明一個輕量級 CLI 工具,用於在可重現任務上對 Claude Code、Aider、Codex 等編碼代理進行頭對頭比較。任務以 YAML 檔案宣告,指定提示詞、目標檔案、儲存庫與提交,以及判斷準則。每次執行會建立獨立的 git 工作樹,將提示交給代理,執行判斷器並記錄通過/失敗、成本與時間。接著產生包含通過率、成本、時間與多次執行一致性的比較報告。
適用情境
適用於在自己的程式庫上比較編碼代理、在採用新工具或模型前衡量代理效能、在代理更新模型或工具後執行回歸檢查,或為團隊做出有資料支持的代理選擇決策。
執行需求
需要從其 git 儲存庫安裝 agent-eval 套件、Python/pip、用於工作樹隔離的 git,以及被比較的編碼代理。判斷類型可能需要 pytest、npm 等指令,LLM 判斷器需要模型存取權限。安裝與呼叫 API 的代理需要網路存取。此技能僅提供說明,不含指令碼。

Agent Eval 技能

一个轻量级 CLI 工具,用于在可复现的任务上对编码代理进行头对头比较。每个“哪个编码代理最好?”的比较都基于感觉——本工具将其系统化。

何时使用

  • 在你自己的代码库上比较编码代理(Claude Code、Aider、Codex 等)
  • 在采用新工具或模型之前衡量代理性能
  • 当代理更新其模型或工具时运行回归检查
  • 为团队做出数据支持的代理选择决策

安装

bash
# pinned to v0.1.0 — latest stable commitpip install git+https://github.com/joaquinhuigomez/agent-eval.git@6d062a2f5cda6ea443bf5d458d361892c04e749b

核心概念

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"  # pin to specific commit for reproducibility

Git 工作树隔离

每个代理运行都获得自己的 git 工作树——无需 Docker。这提供了可复现的隔离,使得代理之间不会相互干扰或损坏基础仓库。

收集的指标

指标衡量内容
通过率代理生成的代码是否通过了判断?
成本每个任务的 API 花费(如果可用)
时间完成所需的挂钟秒数
一致性跨重复运行的通过率(例如,3/3 = 100%)

工作流程

1. 定义任务

创建一个 tasks/ 目录,其中包含 YAML 文件,每个任务一个文件:

bash
mkdir tasks# Write task definitions (see template above)

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 作为判断器)

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

最佳实践

  • 从 3-5 个任务开始,这些任务代表你的真实工作负载,而非玩具示例
  • 每个代理至少运行 3 次试验以捕捉方差——代理是非确定性的
  • 在你的任务 YAML 中固定提交,以便结果在数天/数周内可复现
  • 每个任务至少包含一个确定性判断器(测试、构建)——LLM 判断器会增加噪音
  • 跟踪成本与通过率——一个通过率 95% 但成本高出 10 倍的代理可能不是正确的选择
  • 对你的任务定义进行版本控制——它们是测试夹具,应将其视为代码

链接

來源與署名

來源:affaan-m/ECC位於docs/zh-CN/skills/agent-eval提交ef648e0

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架