从 0 理解 AgentBench
从 0 理解 AgentBench:大模型不是会聊天就会做事
如果你刚接触大模型,可能会有一个疑问:
ChatGPT、Qwen、Claude 这些模型已经能回答问题、写代码、总结文章了,为什么还要专门做一个叫 AgentBench 的评测?
一句话回答:
因为会聊天,不等于会做事。
传统大模型评测更像考试,比如问模型一道选择题、一道数学题、一道翻译题,看它最后答案对不对。
但 Agent 不一样。Agent 更像一个“能在环境里行动的人”。它不只是回答,还要观察环境、做决定、执行动作、根据反馈继续调整。
举个生活例子:
你问一个模型:
帮我买一瓶 100 元以内、容量 6.7 oz 左右的香水。
普通问答模型可能会直接给你推荐一个商品。
但真正的 Agent 要做的是:
- 打开购物环境;
- 搜索关键词;
- 看商品列表;
- 点进商品详情;
- 检查价格、容量、品牌;
- 如果不符合要求,就返回继续找;
- 最后点击购买。
这就不是“答题”了,而是“完成任务”。
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
↓
继续循环
↓
任务完成或失败
这里最关键的是两个词:
Observation 和 Action。
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 证明自己。
它需要被评测,被诊断,被修正,然后变得更可靠。
或者在总结一下:
- AgentBench 是用来评测大模型 Agent 能力的 benchmark。
- Benchmark 可以理解成标准化考试。
- Agent 不是只会聊天,而是要能理解目标、使用工具、根据反馈行动。
- AgentBench 原始版本包含 8 类交互环境。
- 它的核心不是单轮问答,而是多轮交互。
- 它的框架主要包括 Agent Server、Task Server 和 Client。
- 学 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
更多推荐

所有评论(0)