从 0 理解 AgentBench:大模型不是会聊天就会做事

如果你刚接触大模型,可能会有一个疑问:

ChatGPT、Qwen、Claude 这些模型已经能回答问题、写代码、总结文章了,为什么还要专门做一个叫 AgentBench 的评测?

一句话回答:

因为会聊天,不等于会做事。

传统大模型评测更像考试,比如问模型一道选择题、一道数学题、一道翻译题,看它最后答案对不对。

但 Agent 不一样。Agent 更像一个“能在环境里行动的人”。它不只是回答,还要观察环境、做决定、执行动作、根据反馈继续调整。

举个生活例子:

你问一个模型:

帮我买一瓶 100 元以内、容量 6.7 oz 左右的香水。

普通问答模型可能会直接给你推荐一个商品。

但真正的 Agent 要做的是:

  1. 打开购物环境;
  2. 搜索关键词;
  3. 看商品列表;
  4. 点进商品详情;
  5. 检查价格、容量、品牌;
  6. 如果不符合要求,就返回继续找;
  7. 最后点击购买。

这就不是“答题”了,而是“完成任务”。

AgentBench 做的事情,就是给大模型搭一个“做事的考场”。


1. 什么是 Agent?

我们先不要急着看论文,先理解 Agent 这个词。

我更喜欢这样解释:

Agent = 一个会观察环境、做出动作、根据反馈继续行动的智能体。

它的基本循环是:

用户给任务
   ↓
Agent 观察当前环境
   ↓
Agent 思考下一步
   ↓
Agent 执行动作
   ↓
环境返回反馈
   ↓
Agent 继续下一轮

比如在网页购物任务中:

任务:买一瓶 100 美元以内的香水
观察:当前页面是搜索框
动作:search[香水名称 6.7 oz under 100]
反馈:出现商品列表
动作:click[某个商品]
反馈:进入商品详情页
动作:click[合适容量]
反馈:选中容量
动作:click[Buy Now]

你会发现,Agent 的难点不在某一句话说得漂不漂亮,而在于:

  • 能不能看懂当前状态;
  • 能不能选对下一步动作;
  • 能不能遵守动作格式;
  • 能不能在多轮交互里不忘目标;
  • 能不能失败后修正自己。

这就是 AgentBench 要评测的核心能力。


2. 为什么普通 benchmark 不够?

传统 benchmark 像笔试。

比如:

问题:法国首都是哪里?
答案:巴黎。

这类任务很干净,输入一次,输出一次。

但真实世界不是这样。真实世界更像:

你现在在一个陌生房间里。
你要找到一块干净肥皂,并把它放到台面上。
你每次只能执行一个动作。
你需要根据环境反馈继续行动。

模型可能第一步说:

Action: look around

环境告诉它:

你看到 cabinet、sink、countertop、toilet...

然后模型继续决定:

Action: open cabinet

这就变成了多轮任务。

所以 AgentBench 的价值在于:
它不是只问模型“你懂不懂”,而是问模型“你能不能一步一步把事情做成”。


3. AgentBench 到底评什么?

AgentBench 是清华 THUDM 等团队提出的一个大模型 Agent 评测基准,论文名叫 AgentBench: Evaluating LLMs as Agents,发表于 ICLR 2024。

它的目标很明确:

系统性评测大语言模型作为 Agent 时,在交互环境中的推理、决策和执行能力。

AgentBench 原始版本设计了 8 个环境,可以分成三大类。

第一类:代码和工具环境

这类任务考察模型能不能使用工具、写命令、查数据库。

1. Operating System,操作系统任务

让模型在类似 Ubuntu 的终端环境里完成任务。

例子:

找出系统里有多少用户的 home 目录不在 /home 下。

模型不能只说“我觉得是几个”,它要真的执行命令,比如:

cat /etc/passwd

然后分析输出,再给答案。

这考察的是:

  • 会不会用 shell;
  • 能不能理解文件系统;
  • 能不能根据反馈继续操作;
  • 会不会乱执行无效命令。

2. Database,数据库任务

让模型通过 SQL 操作真实数据库。

例子:

查询某个球队的主场容量是多少。

模型要生成 SQL:

SELECT capacity FROM team_info WHERE team = 'Princeton Tigers';

难点不是“会不会 SQL”这么简单,而是:

  • 能不能理解表结构;
  • 能不能查对字段;
  • 能不能在多表关系里推理;
  • 输出格式是否严格符合要求。

3. Knowledge Graph,知识图谱任务

知识图谱可以理解为一个巨大的关系网。

比如:

姚明 - 出生地 - 上海
姚明 - 职业 - 篮球运动员
上海 - 所属国家 - 中国

模型需要通过查询接口找到答案。

这考察的是模型在信息不完整时,能不能一步一步探索关系。


第二类:游戏环境

游戏不是为了好玩,而是因为游戏天然适合评测“规划能力”。

4. Digital Card Game,数字卡牌游戏

模型要根据规则、当前局面、卡牌效果做决策。

这很像人打牌:

  • 不能只看眼前;
  • 要考虑对手;
  • 要规划几步之后;
  • 要理解规则约束。

如果模型只会“说得有道理”,但动作不合法,就会失败。

5. Lateral Thinking Puzzle,海龟汤

海龟汤是一种情境推理游戏。

主持人只回答:

yes / no / irrelevant

模型要通过提问还原真相。

这考察的是:

  • 提问策略;
  • 假设能力;
  • 反常识推理;
  • 多轮信息整合。

6. House-Holding,家务环境

这个任务来自 ALFWorld,可以理解成文字版家务模拟器。

例子:

把一个干净的肥皂放到台面上。

模型要执行:

go to cabinet
open cabinet
take soapbar
go to sink
clean soapbar
go to countertop
put soapbar on countertop

难点是:模型很容易中途忘记自己要干什么。

这就是 Agent 的典型问题:
一开始计划很好,走着走着就偏了。


第三类:网页环境

网页任务更接近真实产品场景。

7. Web Shopping,网页购物

模型要根据用户需求,在模拟购物网站中搜索、筛选、点击、购买。

例子:

我需要一瓶 100 美元以内、6.76 fl oz 的香水。

这要求模型同时处理:

  • 商品名;
  • 价格;
  • 容量;
  • 页面按钮;
  • 搜索结果;
  • 最终购买动作。

8. Web Browsing,网页浏览

模型要在网页里执行用户指令,比如点击、选择、输入。

这类任务很像今天大家说的 Browser Agent。

难点是网页环境复杂,而且每一步动作都要合法。


4. AgentBench 的核心不是“题目多”,而是“环境真实”

普通评测是:

输入问题 → 模型输出答案 → 判断对错

AgentBench 是:

任务开始
   ↓
环境给观察 Observation
   ↓
模型输出 Thought + Action
   ↓
环境执行 Action
   ↓
环境返回新 Observation
   ↓
继续循环
   ↓
任务完成或失败

这里最关键的是两个词:

ObservationAction

Observation 是环境告诉模型“你现在看到了什么”。

Action 是模型告诉环境“我下一步要做什么”。

比如 WebShop 里:

Observation:
当前页面有搜索框。

Available Actions:
search[keywords]

Agent:
Thought:
我应该搜索目标商品。

Action:
search[l'eau d'issey 6.76 fl oz under 100]

环境再返回商品列表,Agent 再决定点哪个。

这就像一个人在现实世界中做事:
看一眼,想一下,动一下,再看反馈。


5. AgentBench 如何判断模型失败?

这是我觉得 AgentBench 最值得学习的地方。

它不是简单说“模型错了”,而是把失败类型拆开。

常见失败有几种:

1. Invalid Format,格式错误

任务要求模型这样输出:

Thought:
...

Action:
...

但模型输出了一大段解释,没有给合法 Action。

这说明模型不是不会知识,而是不听规则

2. Invalid Action,动作无效

比如当前页面只能点击:

click[Buy Now]
click[Back]

但模型输出:

click[Purchase immediately]

听起来意思差不多,但环境不认识。

这说明 Agent 做事时,不能只“语义差不多”,必须动作合法。

3. Task Limit Exceeded,超过最大轮数

模型一直绕圈,没有完成任务。

比如找商品时反复搜索,或者家务任务中反复打开同一个柜子。

这说明模型的长期规划能力不够。

4. Context Limit Exceeded,上下文超长

多轮交互太长,超过模型上下文窗口。

这个问题在早期模型上更明显。

5. Complete,正常完成

任务在规定步骤内结束,并达到目标。


6. 为什么这些失败类型很重要?

因为它让评测结果变得“可诊断”。

如果只看最终分数:

模型 A:60 分
模型 B:40 分

你只能知道谁强谁弱,但不知道为什么。

但如果拆成失败原因:

模型 A 主要是 Invalid Action
模型 B 主要是 Task Limit Exceeded
模型 C 主要是 Invalid Format

结论就完全不同。

  • Invalid Format 多:要加强指令跟随和输出格式训练;
  • Invalid Action 多:要加强动作空间约束;
  • TLE 多:要加强长期规划和自我纠错;
  • SQL 错多:要加强工具使用和数据库任务数据。

这才是 benchmark 真正有价值的地方:

好的评测不是为了给模型排座次,而是为了告诉我们下一步该怎么改。


7. AgentBench 的系统架构怎么理解?

官方项目里有几个重要角色。

你可以把它想象成一个考试系统。

Agent Server:考生的大脑
Task Server:考场和题目环境
Client:监考老师和调度员
Task Worker:具体某一个考场
Task Controller:考场管理员

更具体一点:

Client 发起测试
   ↓
Task Controller 分配一个空闲 Task Worker
   ↓
Task Worker 返回初始任务和环境观察
   ↓
Client 把观察发给 Agent
   ↓
Agent 返回动作
   ↓
Client 把动作交给 Task Worker
   ↓
Task Worker 执行动作并返回新观察
   ↓
循环直到完成或失败

这套设计的好处是:模型和环境解耦。

也就是说,你可以换模型:

GPT-4
Claude
Qwen
ChatGLM
本地模型

也可以换任务环境:

数据库
操作系统
网页购物
知识图谱
自定义任务

只要接口统一,就能放进同一套评测框架里跑。


8. 读 AgentBench 项目时应该抓哪条主线?

零基础不要一上来就钻代码。

我建议按这个顺序读:

第一步:先读 README

先搞清楚:

  • 它是什么;
  • 有哪些任务;
  • 怎么快速启动;
  • 当前版本和原始版本有什么区别。

注意:现在 GitHub 主分支里已经引入了 AgentBench FC,也就是 function-calling 风格的新版本;README 下面仍然保留了原始 AgentBench 的介绍。

第二步:读 docs/Introduction

这里是项目的概念地图。

重点看:

  • 8 个任务环境;
  • Agent Server / Task Server / Client;
  • Task Controller / Task Worker;
  • 多轮交互流程。

第三步:读 configs

配置文件告诉你一次评测到底跑哪些模型、哪些任务、多少并发。

这一步可以理解成:

考试名单、考场安排、考试科目。

第四步:读 src/client

Client 是整个评测流程的调度中心。

它负责把 Agent 和 Task 接起来。

第五步:读具体 task

比如你对数据库感兴趣,就看 DBBench。

你对网页 Agent 感兴趣,就看 WebShop / Web Browsing。

不要一开始全看,会迷路。


9. 最后总结

AgentBench 的核心可以压缩成一句话:

它把大模型放进真实或模拟的交互环境中,让模型通过多轮 Observation-Action 循环完成任务,并根据成功率、奖励、动作合法性和失败类型来评估模型作为 Agent 的能力。

如果再说得更直白一点:

普通 benchmark 考模型会不会答题,AgentBench 考模型会不会做事。

它最值得学习的不是“有 8 个任务”这个表面信息,而是这套评测思想:

  • 先构建环境;
  • 再定义可执行动作;
  • 再定义成功条件;
  • 再记录完整轨迹;
  • 再分析失败原因;
  • 最后用评测结果反向改进模型和系统。

这也是为什么 AgentBench 对做大模型应用、Agent 系统、自动化评测、Paper2PPT、代码智能体、网页智能体的人都有参考价值。

因为真正的智能系统,不能只靠 demo 证明自己。

它需要被评测,被诊断,被修正,然后变得更可靠。

或者在总结一下:

  1. AgentBench 是用来评测大模型 Agent 能力的 benchmark。
  2. Benchmark 可以理解成标准化考试。
  3. Agent 不是只会聊天,而是要能理解目标、使用工具、根据反馈行动。
  4. AgentBench 原始版本包含 8 类交互环境。
  5. 它的核心不是单轮问答,而是多轮交互。
  6. 它的框架主要包括 Agent Server、Task Server 和 Client。
  7. 学 AgentBench 不要先啃源码,要先理解“模型—环境—反馈—评分”这条主线。

参考资料:

  • AgentBench GitHub:https://github.com/THUDM/AgentBench
  • AgentBench 论文:https://arxiv.org/abs/2308.03688
  • 官方 Introduction 文档:https://github.com/THUDM/AgentBench/blob/main/docs/Introduction_en.md
  • 官方 Config 文档:https://github.com/THUDM/AgentBench/blob/main/docs/Config_en.md
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐