这个 GitHub 爆火的 Agent Eval 到底能干嘛?实测来了

1352 字
7 分钟
这个 GitHub 爆火的 Agent Eval 到底能干嘛?实测来了

每次选编程智能体都靠感觉?这个工具终结了#

“Claude Code 和 Aider 哪个更好用?”

如果你也问过这个问题,你一定得到了各种回答:有人吹 Aider 便宜,有人夸 Claude Code 聪明,还有人拿 Benchmark 排行榜说事。

但没有人问过:在你的代码库上,针对你实际要做的任务,到底哪个更靠谱?

这就是 agent-eval 要解决的问题——一个轻量级 CLI 工具,让你用真实任务对编程智能体做正面比对,产出可复现的通过率、成本、时间和一致性数据。

这个项目被收录在 affaan-m/everything-claude-code 仓库(⭐ 16.5 万星),是 ECC 生态中的核心 Skill 之一。

核心理念:用数据说话,不用感觉#

agent-eval 的设计哲学很简单:

每次”哪个编程智能体最好?“的对比往往靠感觉(vibes)——这个工具让它系统化。

它通过三步完成智能体对比:

  1. 定义任务:用 YAML 声明式描述你要做什么、改哪些文件、如何判断成功
  2. 运行智能体:在隔离的 git worktree 中让不同智能体执行同一个任务
  3. 对比报告:自动生成通过率、成本、时间、一致性等指标的表格报告

核心功能#

功能说明
YAML 任务定义声明式定义任务:提示词、目标文件、评判标准、锁定 commit
Git Worktree 隔离每个智能体运行在独立 worktree,互不干扰,无需 Docker
三种评判类型代码级(pytest/build)、模式级(grep)、模型级(LLM 当裁判)
多维指标通过率、API 成本、耗时、多次运行的一致性
对比报告一键生成表格格式的多智能体对比报告

快速上手#

第一步:定义任务#

创建一个 YAML 文件,描述你要智能体完成的任务:

name: add-retry-logic
description: 为 HTTP 客户端添加指数退避重试
repo: ./my-project
files:
- src/http_client.py
prompt: |
为所有 HTTP 请求添加重试逻辑,使用指数退避。
最多 3 次重试。初始延迟 1 秒,最大延迟 30 秒。
judge:
- type: pytest
command: pytest tests/test_http_client.py -v
- type: grep
pattern: "exponential_backoff|retry"
files: src/http_client.py
commit: "abc1234"

这个任务要求智能体为 HTTP 客户端添加重试逻辑,用 pytest 测试验证功能,用 grep 检查代码模式。

第二步:运行对比#

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

这会让 claude-code 和 aider 各跑 3 次同一个任务。每次运行都会:

  1. 从指定的 commit 创建全新 git worktree
  2. 把提示词交给智能体
  3. 运行评判标准
  4. 记录通过/失败、成本和时间

第三步:查看报告#

Terminal window
agent-eval report --format table

输出类似这样的对比表格:

任务: add-retry-logic(各 3 次运行)
═══════════════════════════════════════════════════
智能体 通过率 成本 时间 一致性
───────────────────────────────────────────────────
claude-code 3/3 $0.12 45s 100%
aider 2/3 $0.08 38s 67%
═══════════════════════════════════════════════════

一眼就能看出:Claude Code 通过率 100% 但贵一些,Aider 便宜但偶尔会翻车。

三种评判方式#

1. 代码级评判(确定性)#

跑测试、跑构建——结果非黑即白:

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

2. 模式级评判#

检查代码中是否包含特定模式:

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

3. 模型级评判(LLM 当裁判)#

让 LLM 判断实现质量:

judge:
- type: llm
prompt: |
这个实现是否正确处理了指数退避?
检查项:最大重试次数、递增延迟、抖动。

适用场景#

适合

  • 团队选型:在引入新编程智能体前做客观评估
  • 模型回归:智能体更新模型后,验证性能是否下降
  • 成本优化:找到”够用且便宜”的智能体组合
  • 技术决策:用数据而非感觉支持选型决策

不适合

  • 一次性对比:如果你只对比一次,手动试就行
  • 非编程任务:这个工具专为代码任务设计
  • 没有测试的项目:没有评判标准的对比没意义

最佳实践#

原作者给出了 6 条黄金法则:

  1. 从 3-5 个真实任务开始,别用玩具示例
  2. 每个智能体至少跑 3 次,因为智能体是非确定性的
  3. 锁定 commit,确保结果跨天可复现
  4. 至少包含一个确定性评判(测试/构建),LLM 评判会引入噪声
  5. 成本与通过率一起看——通过率高 5% 但贵 10 倍未必划算
  6. 任务定义也要版本管理——它们就是测试夹具

个人评价#

推荐指数:⭐⭐⭐⭐☆(4.5/5)

Agent Eval 解决了一个真实痛点——编程智能体选型缺乏客观数据。它的设计优雅:用 YAML 定义任务、用 git worktree 做隔离、用多维度指标做对比。不需要 Docker、不需要复杂的评测框架,几分钟就能上手。

扣分的地方:

  • 依赖 git worktree,对不熟悉 git 的用户有一定门槛
  • 成本统计依赖智能体的 API 计费能力,不是所有智能体都支持
  • 项目本身还比较年轻,生态还在建设中

总结:如果你在使用多个编程智能体(或者正在考虑切换),Agent Eval 是最轻量、最直接的对比工具。告别”凭感觉选”,用数据说话。

相关链接#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

这个 GitHub 爆火的 Agent Eval 到底能干嘛?实测来了
https://boke.hackerdream.xyz/posts/agent-eval-introduction/
作者
晴天
发布于
2025-01-12
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
晴天
Hello, I'm 晴天.
公告
欢迎来到我的博客!这是一则示例公告。
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
125
分类
17
标签
287
总字数
257,955
运行时长
0
最后活动
0 天前

目录