24. AgentBench、AgentBoard 与 GAIA:通用 Agent Benchmark 怎么看
Benchmark 专题 · 3~4 小时
学习目标
- 理解三类通用 Benchmark 各自测什么
- 学会从 Environment、Task、Metric 角度拆 Benchmark
- 避免只比较排行榜分数
前置知识
- 第 23 章
本章产物: 完成三张 Benchmark Card,并写出它们与你的 Agent 场景的相似/差异。
24.1 AgentBench:把 Agent 放进交互环境
AgentBench 的核心贡献是把 LLM 当 Agent 放进多个交互环境,而不是只做静态问答。它强调多轮决策、环境反馈和动作执行。
学习重点不是某个模型得分,而是:
统一 Agent Interface
+
不同 Environment
+
多轮交互
+
失败模式分析借鉴
- 给不同领域建立一致 Runner;
- 统一记录 action / observation;
- Benchmark 应分析 failure reason。
局限
跨环境平均分容易掩盖某一能力完全失败;Environment 与工具设计也会影响模型表现。
24.2 AgentBoard:从 Success 到 Progress
AgentBoard 关注一个重要问题:
Binary final success 对长任务的诊断信号太稀疏。
因此它强调 fine-grained progress rate 和过程分析。
这启发我们:
Release Gate → final success
Debugging → progress / failure attribution二者不能替代。
24.3 GAIA:现实问题 + 简短可验证答案
GAIA 设计的一个重要思想是:
- 任务看起来接近日常真实助手;
- 需要 reasoning、web、tool、多模态;
- 尽量保留短、可判定最终答案。
这让开放式 Agent 能力仍然有比较明确的评分。
24.4 开源 Agent 评测项目地图
先记住一个边界:社区项目并不在同一层。评测运行框架负责组织任务、运行 Agent 和产生结果;可观测性平台负责记录 Trace、数据集和线上实验;Benchmark / Environment负责提供任务、工具、状态和验证器;模型评测 Harness主要测单轮模型能力。把这些项目放在一张排行榜里比较,会得到错误结论。
下面这张表按“它解决的工程问题”整理,链接指向项目的官方文档或仓库。项目状态以 2026-08-09 为准;开源项目的许可证、依赖和接口会变化,真正接入前仍应锁定版本并做一次安全审查。
| 层级 | 项目 | 主要解决的问题 | 不应把它当成 | 适合什么时候用 |
|---|---|---|---|---|
| 运行框架 | Inspect AI | Task、Dataset、Solver、Scorer、Tool、Sandbox、EvalLog 的统一运行模型 | 生产监控平台或业务真值数据库 | 需要可复现、多步、工具和沙箱评测;安全研究优先考虑 |
| 运行框架 | OpenAI Evals | 以 registry 和可扩展 Eval 形式运行模型或 LLM 系统测试 | 长期状态环境和完整 Agent orchestration | 已有 JSONL/Completion Function 测试,想快速做模型或系统回归 |
| CI/回归 | Promptfoo | YAML/CLI 驱动的 Prompt、模型、RAG、Agent 对比、断言和 CI 检查 | 复杂环境的 State Checker 或长任务模拟器 | 想把 prompt/model 变化接入本地命令和 CI,先做快速回归 |
| CI/回归 | DeepEval | Python 测试式的 LLM 应用指标、LLM Judge、RAG 和 Agent 断言 | 可信的 Ground Truth;默认指标仍需校准 | Python 应用需要快速写单元级、组件级和回归级评测 |
| RAG 专项 | Ragas | Retrieval、Context Precision/Recall、Faithfulness 等 RAG 指标 | 完整 Agent Outcome、Tool Policy 或副作用安全评测 | 诊断“检索错了”还是“生成错了”,而不是验收整个 Agent |
| 观测/实验 | Phoenix | OpenTelemetry/OpenInference Trace、Span、数据集、实验、评估和回放 | Benchmark 环境或自动提供业务成功标准 | 已经有线上 Trace,需要从失败运行生成数据集并做离线/线上实验 |
| 观测/实验 | Langfuse | 自托管 Trace、Prompt 版本、Dataset、Experiment、LLM Judge 和成本监控 | 领域 Benchmark 或沙箱验证器 | 要把离线评测和生产监控放进同一条反馈闭环 |
| 模型基线 | lm-evaluation-harness | 统一接口运行大量标准模型任务,支持 YAML 任务定义 | Agent 的工具调用、状态变化和长轨迹 | 先回答“模型基础能力是否够”,再进入 Agent 评测 |
| 模型基线 | HELM | 多场景、多指标、可复现的基础模型透明评估 | 你的私有业务 Agent 上线门禁 | 需要跨模型做广覆盖基线,并同时观察准确率、效率和风险 |
| 通用环境 | AgentBench | 把 Agent 放进 OS、DB、Web、知识图谱等多环境做多轮交互 | 与生产系统等价的业务验收 | 研究跨环境 Agent 能力和 Environment Harness 设计 |
| 客服/工具 | τ-bench / τ²-bench | 用户模拟器、工具调用、领域政策、状态变化和 pass^k 可靠性 | 通用 Agent 能力总榜 | 客服、预订、零售等“用户—Agent—工具”交互任务 |
| Web 环境 | WebArena / BrowserGym | 可重置网站、浏览器动作、长链路 Web 任务与执行结果 | 不稳定的真实互联网线上测试 | 浏览器 Agent、网页操作和导航能力评测 |
| Coding 环境 | SWE-bench | 真实仓库 Issue、代码修改和测试执行结果 | 通用软件工程能力的唯一指标 | Coding Agent 的修复能力;必须锁定仓库、测试和污染审计 |
| Tool Calling | BFCL / ToolBench | 函数选择、参数、格式、多轮和部分 Agentic Tool Use | 完整任务成功或真实副作用安全 | 评估工具调用协议和函数选择能力 |
| 安全环境 | AgentDojo | 不可信工具数据中的 Prompt Injection、任务成功和安全属性 | 所有安全风险的完整覆盖 | 需要动态攻击、防御和 Consequence Checker |
| 终端环境 | Terminal-Bench / TUA-Bench | 真实终端、执行型任务、环境初始化和验证脚本 | 只测代码补全的模型基准 | Terminal-use Agent、部署、数据处理和系统操作 |
| 执行编排 | Harbor | 将任意 Agent 接入沙箱任务,批量并行运行、收集 Trial/Job 结果 | 具体领域的任务集本身 | 需要对 Claude Code、OpenHands、Codex CLI 等 Agent 做统一执行对比 |
24.4.1 选型决策树
先问:你测的是模型、组件,还是完整 Agent?
├─ 模型基础能力 → lm-evaluation-harness / HELM
├─ Prompt、RAG、单步回归 → Promptfoo / DeepEval / Ragas
├─ 完整多步 Agent + Tool + Sandbox → Inspect AI
├─ 生产 Trace、数据集和线上回放 → Phoenix / Langfuse
└─ 领域能力与公开对比
├─ 客服工具交互 → τ-bench
├─ 浏览器操作 → WebArena / BrowserGym
├─ 代码修复 → SWE-bench
├─ 函数调用 → BFCL / ToolBench
├─ Prompt Injection → AgentDojo
└─ 终端操作 → Terminal-Bench / TUA-Bench24.4.2 选择项目时必须记录的六个问题
- 被测边界是什么? 是模型、Prompt、工具选择器、完整 Agent,还是 Agent 加外部环境?
- 真值在哪里? 是 Exact Match、State Diff、执行测试、人工标签,还是 Judge 分数?
- 环境能否 Reset? 如果不能重置,结果就很难区分 Agent 失败和环境残留。
- 结果能否复现? 至少记录项目版本、任务版本、镜像、模型、Prompt、工具、随机种子、超时和成本。
- 项目是否与你的业务同构? 公开 Benchmark 的分数只能作为参考,不能替代私有 EvalSuite。
- 项目的失败模式是否可诊断? 只有总分而没有 Trace、State 或失败分类的项目,不适合单独作为 Release Gate。
24.4.3 GoClaw 的建议组合
对 GoClaw 这类需要工具、审批、Workspace 和可恢复运行的 Agent,建议采用分层组合,而不是押注一个框架:
确定性与 API 合约 → Go 测试 + State / Schema Checker
多步 Agent 离线评测 → Inspect AI 或自有 Runner
Trace 与生产回放 → OpenTelemetry + Phoenix / Langfuse(二选一)
工具调用专项 → BFCL 风格 AST + 执行验证
安全专项 → AgentDojo 风格攻击 + GoClaw 权限/审批断言
发布门禁 → 私有 EvalSuite + pass^k + 成本/延迟预算外部项目负责提供方法、Harness 或参考环境;业务成功标准、权限边界和真实状态真值必须由 GoClaw 自己维护。
24.5 三者对比
| Benchmark | 重点 | 最值得借鉴 |
|---|---|---|
| AgentBench | 多环境交互 | Environment Harness |
| AgentBoard | 过程诊断 | Progress / Analysis |
| GAIA | 通用助手 | 现实任务 + 可验证答案 |
24.6 什么时候用公开 Benchmark
适合:
- 模型/Agent 基础能力 sanity check;
- 与社区方案对比;
- 验证 Harness。
不适合直接回答:
我的客服 Agent 是否可以上线?
24.7 验收问题
- AgentBench 为什么比静态 QA 更接近 Agent Eval?
- AgentBoard 的 Progress Rate 解决什么问题?
- GAIA 为什么强调答案容易验证?
- 为什么 Inspect AI、Phoenix、τ-bench 和 SWE-bench 不能互相替代?
- 如果 GoClaw 要评估“调用工具并改变 Workspace 状态”,你会选择哪些项目作为参考,哪些部分必须自己实现?
本章依据
- AgentBench: Evaluating LLMs as Agents — Liu et al., 2023
- AgentBoard: An Analytical Evaluation Board of Multi-turn LLM Agents — Ma et al., 2024
- GAIA: a benchmark for General AI Assistants — Mialon et al., 2023
- Inspect AI 官方文档
- OpenAI Evals
- Promptfoo 文档
- DeepEval 文档
- Ragas 文档
- Phoenix 文档
- Langfuse 文档
- EleutherAI lm-evaluation-harness
- HELM
- τ-bench / τ²-bench
- WebArena
- SWE-bench
- BFCL
- AgentDojo
- Harbor