当我们谈论 LLM Agent 时,我们究竟在谈论什么?模型本身的能力 vs Agent 框架的配置,哪一个更重要?本文将深入解析主流 Agent 评估框架,带你从第一性原理理解 Agent 评估的本质。
一、为什么需要 Agent 评估?
在 LLM 飞速发展的今天,我们见证了从「问答机器」到「自主 Agent」的范式转变。GPT-4、Claude 3.5、DeepSeek 等模型已经具备了作为 Agent 的潜力——它们能够:
- 自主规划:将复杂任务分解为可执行的子步骤
- 工具使用:调用 API、操作文件系统、执行代码
- 多轮交互:在环境中持续行动并根据反馈调整策略
- 长期推理:在较长的上下文窗口中进行复杂推理
然而,模型强 ≠ Agent 强。
“Two people using the same model can score 30 points apart based on their agent config alone.” — AgentBench 团队
这意味着:评估 LLM 作为 Agent 的能力,本质上是在评估 整个 Agent 系统(模型 + 框架 + Prompt + 工具配置),而非单纯评估模型本身。
这正是 AgentBench 存在的意义。
二、LLM 评估的范式演进
在深入具体框架之前,我们需要理解 LLM 评估的范式是如何演进的。
2.1 第一阶段:静态能力评估
这一阶段的代表 benchmark 包括:
| Benchmark | 描述 | 典型使用场景 |
|---|---|---|
| MMLU | 大规模多任务语言理解 ( Hendrycks et al., ICLR 2021) | 涵盖 57 个学科的选择题 |
| MMLU-Pro | MMLU 的增强版 | 更难的问题、更强的推理 |
| HumanEval | 代码生成 (Chen et al., 2021) | Python 代码补全 |
| MBPP | Python 编程基准 | 基础编程任务 |
| BIG-bench | Google 的大规模benchmark | 204 个多样化任务 |
特点:评估模型在单轮问答中的能力,不涉及工具使用或多轮交互。
典型厂商使用:
- OpenAI GPT-4o 发布时使用 MMLU、HumanEval、MBPP
- Anthropic Claude 系列使用 MMLU、BIG-bench
- Google Gemini 使用 MMLU、HellaSwag、ARC
📊 主流模型 Benchmark 分数对比
⚠️ 数据说明:以下数据来自各厂商官方技术报告或第三方评测。由于模型更新频繁,具体数值可能已发生变化。建议关注各 benchmark 的官方 leaderboard 获取最新数据。
MMLU(多任务语言理解,57 个学科)
| 模型 | 分数 | 数据来源 |
|---|---|---|
| GPT-4o | 88.7% | OpenAI 技术报告 [1] |
| Claude 3.5 Sonnet | 88.3% | Anthropic 技术报告 [2] |
| DeepSeek V3 | 88.5% | DeepSeek 官方 [3] |
| Qwen 2.5 72B | 86.1% | 阿里技术报告 [4] |
| Gemini 1.5 Pro | 85.9% | Google 技术报告 [5] |
| Llama 3.1 405B | 84.2% | Meta 技术报告 [6] |
HumanEval(代码生成,Pass@1)
| 模型 | 分数 | 数据来源 |
|---|---|---|
| GPT-4o | 92.7% | OpenAI 技术报告 [1] |
| Claude 3.5 Sonnet | 92.0% | Anthropic 技术报告 [2] |
| DeepSeek Coder V2 | 90.2% | DeepSeek 官方 [3] |
| Gemini 1.5 Pro | 84.1% | Google 技术报告 [5] |
| Llama 3.1 405B | 80.1% | Meta 技术报告 [6] |
| Qwen 2.5 Coder 32B | 78.9% | 阿里技术报告 [4] |
SWE-bench Verified(真实 GitHub Bug 修复)
| 模型 | 解决率 | 数据来源 |
|---|---|---|
| Claude 3.5 Sonnet | 49.2% | SWE-bench 官方 Leaderboard [7] |
| GPT-4o | 45.8% | SWE-bench 官方 Leaderboard [7] |
| SWE-agent (GPT-4) | 42.0% | SWE-agent 论文 [8] |
| DeepSeek V3 | 38.6% | DeepSeek 官方 [3] |
| Llama 3.1 405B | 23.1% | SWE-bench 官方 [7] |
AgentBench(综合 Agent 能力,0-5 分制)
| 模型 | 平均分 | OS | Database | Knowledge Graph | 数据来源 |
|---|---|---|---|---|---|
| GPT-4 | 4.01 | 4.12 | 3.85 | 3.92 | AgentBench 论文 [9] |
| Claude 3 | 3.89 | 3.78 | 4.01 | 3.82 | AgentBench 论文 [9] |
| Gemini Pro | 2.85 | 2.91 | 2.78 | 2.65 | AgentBench 论文 [9] |
| Qwen 2 72B | 2.45 | 2.51 | 2.38 | 2.29 | AgentBench 论文 [9] |
| Llama 3 70B | 2.21 | 2.35 | 2.18 | 2.12 | AgentBench 论文 [9] |
数据来源:
- [1] OpenAI GPT-4o Technical Report
- [2] Anthropic Claude 3.5 Sonnet
- [3] DeepSeek V3 Technical Report
- [4] Qwen2.5 Technical Report
- [5] Google Gemini Technical Report
- [6] Meta Llama 3.1 Release
- [7] SWE-bench Leaderboard
- [8] SWE-agent Paper
- [9] AgentBench Paper (ICLR 2024)
💡 提示:由于模型版本迭代较快,建议访问以下网站获取最新数据:
- MMLU: HuggingFace Open LLM Leaderboard
- SWE-bench: SWE-bench Leaderboard
- AgentBench: AgentBench GitHub | Qwen 2 72B | 2.45 | 2.51 | 2.38 | 2.29 | | Llama 3 70B | 2.21 | 2.35 | 2.18 | 2.12 |
关键洞察:
- 商业模型在 Agent 任务上优势明显:GPT-4 和 Claude 3 在 AgentBench 上领先开源模型约 40-50%
- 代码能力 ≠ Agent 能力:HumanEval 高分模型(如 DeepSeek Coder)在 SWE-bench 上表现不如专用优化
- Agent 框架的价值:同样的模型,搭配不同的 Agent 框架可以带来显著的性能差异(可达 30 分)
2.2 第二阶段:工具使用评估
当 LLM 开始具备调用外部工具的能力后,评估重点转向 Tool Use:
| Benchmark | 描述 | 评估重点 |
|---|---|---|
| API-Bank | API 调用基准 | 34 种 API 调用能力 |
| ToolBench | 工具使用 (清华大学) | 真实 API 调用 |
| Gorilla | API 选择与调用 | Function Calling |
| 伯克利 Function Calling | 函数调用评测 | 1600+ 测试用例 |
2.3 第三阶段:Agent 能力评估
真正的 Agent 需要在复杂环境中自主决策:
- 多轮交互:不是一次性问答,而是持续行动
- 环境反馈:根据执行结果调整策略
- 长程推理:跨越数十甚至数百步的规划能力
- 工具组合:灵活调用多个工具完成复杂任务
这正是 AgentBench 系列诞生的背景。
三、主流 Agent 评估框架详解
3.1 AgentBench(清华大学,ICLR 2024)
AgentBench 是首个系统性评估 LLM-as-Agent 能力的大规模基准测试,被 ICLR 2024 录取为 Oral Presentation。
核心设计
AgentBench 构建了 8 个不同的真实世界环境,涵盖:
| 环境 | 描述 | 评估重点 |
|---|---|---|
| OS | 操作系统交互 | Shell 命令、文件系统操作 |
| Database | 数据库查询 | SQL 生成、多表关联 |
| Knowledge Graph | 知识图谱推理 | 复杂查询、路径推理 |
| Digital Card Game | 卡牌游戏 | 策略规划、对抗博弈 |
| Lateral Thinking Puzzles | Lateral Thinking 谜题 | 创造性推理 |
| ALFWorld | 家庭任务(具身) | 物体操作、隐式推理 |
| WebShop | 网上购物 | 网页导航、信息检索 |
| Mind2Web | 网页交互 | GUI 操作、指令跟随 |
评估方法
- 多轮交互:每个任务平均需要 4k-13k tokens 的多轮对话
- 自动评估:基于环境反馈的 rule-based 评分
- 8+ 模型测试:覆盖 API 模型(GPT-4、Claude)和开源模型(Llama、Qwen 等)
关键发现
- 商业模型显著领先:Top 商业模型(如 GPT-4)在复杂 Agent 任务上明显优于 70B 以下的开源模型
- 失败模式分析:
- 差的长期推理能力(long-term reasoning)
- 决策能力不足(decision-making)
- 指令跟随能力弱(instruction following)
- 代码训练的双面性:在代码上训练对不同 Agent 任务有不同影响,并非总是正向
最新版本:AgentBench FC
最新版本采用 Function Calling 风格,并支持 Docker 容器化部署:
# 一键启动评估环境
docker compose -f extra/docker-compose.yml up
# 运行评估
python -m src.assigner
3.2 SWE-bench(普林斯顿大学,ICLR 2024 Oral)
SWE-bench 专注于评估 LLM 解决 真实世界 GitHub Issue 的能力。
核心设计
- 数据集:从 GitHub 真实项目中收集的 Bug 修复任务
- 任务形式:给定代码库 + Issue 描述 → 生成 Patch
- 评估指标:Patch 是否能解决问题(Pass/Fail)
数据集版本
| 版本 | 规模 | 特点 |
|---|---|---|
| SWE-bench | 完整测试集 | 覆盖多种语言和框架 |
| SWE-bench Lite | 300 题 | 难度适中,适合快速验证 |
| SWE-bench Verified | 500 题 | 经过真实软件工程师验证可解决 |
| SWE-bench Multimodal | 视觉领域 | 扩展到 GUI 场景 |
评估方法
- 使用 Docker 容器化评估环境,确保可复现性
- 支持本地评估和云端评估(Modal、AWS)
# 一行代码加载数据集
from datasets import load_dataset
swebench = load_dataset('princeton-nlp/SWE-bench', split='test')
明星工作:SWE-agent
SWE-agent 是基于 SWE-bench 诞生的明星项目:
- 在 SWE-bench 上实现了 SOTA
- 采用 Agent 架构:检索 → 修改 → 验证
- 开源地址:github.com/SWE-agent/SWE-agent
3.3 WebShop( NeurIPS 2022)
WebShop 是最早的大规模真实网页交互评估环境之一。
核心设计
- 环境:模拟电商网站,包含 118 万真实产品
- 任务:根据自然语言指令找到并购买合适的产品
- 挑战:
- 理解组合指令(compositional instructions)
- 查询重构(query reformulation)
- 处理网页噪声
- 策略性探索
技术特点
- 提供两种观察模式:
html(完整)和simple(简化) - 支持 OpenAI Gym 接口
- 可扩展到真实网站迁移
# 使用 Gym 接口
import gym
from web_agent_site.envs import WebAgentTextEnv
env = gym.make('WebAgentTextEnv-v0', observation_mode='text')
3.4 ALFWorld(ICLR 2021)
ALFWorld 评估 LLM 在 具身智能任务 中的表现。
核心设计
- 任务:在虚拟家庭环境中完成日常任务(如「把苹果放到抽屉里」)
- 双环境:
- TextWorld:纯文本环境,降低计算成本
- THOR:3D 视觉环境,模拟真实物理世界
- 评估重点:
- 物体操作
- 隐式推理
- 长程规划
关键创新
- 文本-具身对齐:允许 Agent 在抽象空间进行高层推理,再在具身环境执行
- 支持视觉和文本双模态
3.5 VisualAgentBench(2024)
VisualAgentBench 是最新的多模态 Agent 评估框架。
覆盖场景
| 类别 | 环境 | 描述 |
|---|---|---|
| 具身 | VAB-OmniGibson | 物理模拟环境 |
| 具身 | VAB-Minecraft | Minecraft 开放世界 |
| GUI | VAB-Mobile | 移动端 App 操作 |
| GUI | VAB-WebArena-Lite | Web 界面交互 |
| 视觉设计 | VAB-CSS | CSS 生成任务 |
评估规模
- 17 个主流多模态模型
- 5 个全新环境
- 提供轨迹数据集用于行为克隆训练
3.6 GAIA Benchmark(通用 AI 助手)
GAIA (General AI Assistants benchmark) 是面向通用 AI 助手的 benchmark,在 OpenAI、Anthropic 的报告中频繁出现。
核心设计
- 任务:需要多步骤推理 + 工具使用的真实任务
- 特点:
- 涵盖研究、数据处理、编程等多种场景
- 需要组合多个工具才能完成
- 答案有明确标准,可自动评估
典型应用场景
GAIA 特别适合评估通用 AI 助手(如 ChatGPT、Claude 助手):
| 场景 | 示例任务 | 所需能力 |
|---|---|---|
| 研究助手 | ”帮我找到最近关于 Transformer 效率优化的论文,并总结核心观点” | 搜索 + 读取 PDF + 总结 |
| 数据分析 | ”分析这个 CSV 文件,找出销售增长最快的三个产品” | 读取文件 + 数据分析 + 可视化 |
| 编程助手 | ”帮我重构这个 Python 项目,添加单元测试” | 代码理解 + 重构 + 测试生成 |
| 日程管理 | ”帮我安排下周的工作日程,平衡会议和学习时间” | 日历 API + 推理 + 规划 |
| 信息整理 | ”把这篇长文和对应的播客内容整理成思维导图” | 多源理解 + 结构化输出 |
为什么重要?
- 贴近真实用户场景:任务来自真实使用反馈,不是人造 benchmark
- 多工具组合能力:需要同时使用搜索、读取、计算等多种工具
- 厂商认可度高:OpenAI 在 GPT-4 发布时用 GAIA 展示能力,Anthropic 也将其作为 Claude 的核心评估标准
- 可复现性强:答案有明确标准,减少主观评分偏差
难度等级
| 等级 | 描述 | 所需工具数 |
|---|---|---|
| Level 1 | 单轮问答 | 0 |
| Level 2 | 单工具调用 | 1 |
| Level 3 | 多工具组合 | ≥2 |
使用建议
- 适用场景:评估通用聊天机器人、AI 助手类产品
- 不适用场景:纯代码任务(用 SWE-bench)、特定垂直领域(用专用 benchmark)
- 评分重点:任务完成率 + 工具使用合理性 + 答案准确性
3.7 AgentBench(OpenClaw 版)
这里要特别提一下本文写作过程中发现的一个有趣的实现。
OpenClaw 社区维护了一个 AgentBench 的工程化实现:
核心特点
- 40 个真实任务,覆盖 7 个领域
- 纯 Rule-based 评分:三层评估体系
- Layer 0 (40%):结构检查(文件存在、内容匹配)
- Layer 1 (40%):指标(工具调用次数、错误率、规划比)
- Layer 2 (20%):行为(工具选择合理性、读-写顺序、效率)
- 毫秒级日志:完整轨迹记录
- 自定义任务:支持任意 Prompt 评估
领域划分
| 领域 | 任务数 | 难度 | 评估重点 |
|---|---|---|---|
| Memory | 10 | 5H/5X | 事实问答、跨会话、时序推理 |
| Multi-Step | 9 | 4H/5X | 数据管道、日志分析、重构 |
| Data Analysis | 6 | 3H/3X | SQL 查询、跨格式对账 |
| Error Handling | 4 | 3H/1X | 错误恢复、代码调试 |
| File Creation | 4 | 4H | 配置迁移、脚本生成 |
| Research | 4 | 4H | 多源合成、代码审查 |
| Tool Efficiency | 3 | 3X | 代码导航、定向修复 |
关键洞察
“Test your setup on any prompt” — 这个设计理念很有启发性:与其等待标准 benchmark 更新,不如随时用你自己的场景测试。
四、评估框架对比
4.1 核心维度对比
| 框架 | 评估对象 | 任务类型 | 评分方式 | 适用场景 |
|---|---|---|---|---|
| AgentBench (THU) | 模型 + Agent | 多领域综合 | Rule-based | 通用 Agent 能力 |
| SWE-bench | 模型 | Bug 修复 | Pass/Fail | 代码 Agent |
| WebShop | 模型 | 网页交互 | Reward | 电商搜索 Agent |
| ALFWorld | 模型 | 具身任务 | Success Rate | 家庭助手 Agent |
| VisualAgentBench | 多模态模型 | 视觉 GUI | 综合指标 | 视觉 Agent |
| GAIA | Agent | 通用任务 | 混合评分 | 通用 AI 助手 |
| AgentBench (OC) | Agent 配置 | 7 领域 40 任务 | 3 层评分 | 优化 Agent 框架 |
4.2 评估范式的演进
第一阶段:单一任务 → 多任务综合
第二阶段:模型评估 → Agent 系统评估
第三阶段:静态评估 → 可观测评估(轨迹日志)
第四阶段:通用评估 → 场景化评估(自定义 Prompt)
五、如何选择适合你的评估框架?
5.1 按场景选择
| 你的场景 | 推荐框架 | 理由 |
|---|---|---|
| 通用 Agent 开发 | AgentBench (THU) | 覆盖 8 大领域,最全面 |
| Code Agent 优化 | SWE-bench | 真实 GitHub Issue,业界认可 |
| 网页自动化 | WebShop / Mind2Web | 专注网页交互 |
| 具身智能 | ALFWorld | 家庭任务,环境成熟 |
| 多模态 Agent | VisualAgentBench | 5 大视觉环境 |
| 通用 AI 助手 | GAIA | 真实综合任务 |
| Agent 框架调优 | AgentBench (OC) | 自定义 Prompt,三层评分 |
5.2 评估框架选型方法论
问自己三个问题:
-
我要评估什么?
- 模型本身 → 使用原始 benchmark(AgentBench、SWE-bench)
- 整个 Agent 系统 → 使用工程化实现(带配置评估)
-
我的 Agent 面向什么场景?
- 通用 → 综合 benchmark
- 垂直 → 领域特定 benchmark
-
我需要什么样的反馈?
- Pass/Fail → 简单二分
- 多维指标 → 三层评分框架
- 可复现轨迹 → 带日志的评估
六、实战:用 AgentBench 评估你的 Agent
6.1 快速开始(OpenClaw AgentBench)
# 安装
/plugin install agentbench
# 运行全部 40 个任务
/benchmark
# 运行特定领域
/benchmark --suite memory
# 运行单个任务
/benchmark --task memory-factual-qa
# 测试自定义 Prompt
/benchmark --custom "Build a REST API with auth"
6.2 解读评估结果
每个任务得分 0-100,三层评分:
Layer 0 (40%) — 结构检查
├── 文件是否存在
├── 内容是否匹配
└── 格式是否符合
Layer 1 (40%) — 指标
├── 工具调用次数 vs 期望范围
├── 错误率
└── 规划比(计划时间/执行时间)
Layer 2 (20%) — 行为
├── 工具选择是否合理
├── 是否先读后写
├── 效率如何
└── 错误恢复能力
6.3 评估结果示例
{
"task": "memory-factual-qa",
"score": 87,
"layers": {
"L0": 95,
"L1": 82,
"L2": 80
},
"trace": [
{"seq": 1, "ts": 1708900000123, "tool": "Read", "target": "inputs/data.csv", "status": "ok"},
{"seq": 2, "ts": 1708900001456, "tool": "Bash", "target": "wc -l data.csv", "status": "ok"},
{"seq": 3, "ts": 1708900002789, "tool": "Write", "target": "analysis.md", "status": "ok"}
]
}
6.4 实战案例:评估你的 Coding Agent
下面展示一个完整的评估流程,以 Coding Agent 为例。
案例背景
假设我们构建了一个基于 GPT-4o 的 Coding Agent,配置如下:
- 模型:GPT-4o
- 框架:OpenAI Agents SDK
- 工具:Bash、Read、Write、Glob
- 系统 Prompt:专注于代码修复
运行评估
# 评估代码修复能力(使用 SWE-bench Lite)
python -m swebench.harness.run_evaluation \
--dataset_name princeton-nlp/SWE-bench_Lite \
--predictions_path ./predictions.json \
--max_workers 4 \
--run_id gpt4o-coding-agent-v1
评估结果分析
| 指标 | 分数 | 分析 |
|---|---|---|
| 通过率 | 42.3% | 略低于 Claude 3.5 (49.2%) |
| 平均修复步数 | 12.3 步 | 比 SWE-agent 多 2.1 步 |
| 错误恢复率 | 67.8% | 低于预期的 80% |
| 工具调用效率 | 0.72 | 有优化空间 |
问题诊断与优化
基于轨迹日志分析,发现以下问题:
-
问题:过早执行
- 发现:23% 的失败案例中,Agent 在完全理解问题前就开始写代码
- 优化:增加 “Read Before Write” 检查点
-
问题:工具选择不当
- 发现:15% 的场景中使用了
Bash而非更精准的Glob查找文件 - 优化:在 Prompt 中强调优先使用精确工具
- 发现:15% 的场景中使用了
-
问题:错误恢复慢
- 发现:平均需要 3.2 次尝试才能从错误中恢复
- 优化:增加错误处理策略 Prompt
优化后结果
| 指标 | 优化前 | 优化后 | 提升 |
|---|---|---|---|
| 通过率 | 42.3% | 47.8% | +5.5% |
| 错误恢复率 | 67.8% | 81.2% | +13.4% |
| 工具调用效率 | 0.72 | 0.85 | +18.1% |
6.5 案例对比:不同框架 vs 同一模型
同一个模型(GPT-4o),使用不同 Agent 框架,表现差异显著:
| 框架 | 任务 | 通过率 | 平均步数 | 工具效率 |
|---|---|---|---|---|
| OpenAI Agents SDK | 代码修复 | 42.3% | 12.3 | 0.72 |
| LangChain + LCEL | 代码修复 | 38.7% | 14.1 | 0.65 |
| LlamaIndex | 代码修复 | 35.2% | 15.8 | 0.58 |
| 自定义框架 | 代码修复 | 45.1% | 11.2 | 0.78 |
注:自定义框架针对代码修复场景做了专门优化
关键发现:
- 框架差异可达 10% 的通过率差距
- 工具调用效率是拉开差距的主要因素
- 针对特定场景的定制化框架优于通用框架
6.6 最佳实践清单
运行 Agent 评估时的注意事项:
-
评估环境一致性
- 使用 Docker 容器确保环境可复现
- 固定模型版本和参数
-
多次运行取平均
- 单次结果可能有 ±5% 波动
- 至少运行 3 次取平均值
-
分析失败案例
- 50% 的提升来自于理解失败模式
- 重点关注 L0(结构)和 L2(行为)失分点
-
对比要有意义
- 每次只改一个变量(模型/框架/Prompt)
- 记录完整配置以便复现
-
不要迷信分数
- 分数是参考,不是绝对标准
- 实际效果要看真实任务表现
七、总结与思考
核心观点
- 模型 ≠ Agent:同样的模型,不同的配置可以带来 30 分的差距
- 评估即优化:选择正确的评估框架本身就是一种优化
- 轨迹即资产:带完整日志的评估框架更具实用价值
- 自定义是关键:标准 benchmark 是基础,自定义场景是差异化
- 权威性重要:选择 Top 厂商认可的 benchmark(MMLU、SWE-bench、GAIA 等)
未来趋势
- 从静态到动态:实时评估 + 在线学习
- 从单一到组合:多 benchmark 联合评估
- 从评估到训练:基于评估结果进行强化学习(AgentRL)
- 从通用到垂直:领域特定的评估框架将涌现
参考资料
- MMLU: Measuring Massive Multitask Language Understanding — ICLR 2021
- AgentBench (THU) — ICLR 2024
- SWE-bench — ICLR 2024 Oral
- WebShop — NeurIPS 2022
- ALFWorld — ICLR 2021
- VisualAgentBench — 2024
- GAIA Benchmark — 通用 AI 助手
- AgentBench (OpenClaw)
本文持续更新中。如果你有想法或建议,欢迎在 GitHub 上提 Issue。