AgentBench 是首个面向大语言模型作为智能体(LLM-as-Agent)的多环境评测基准,由清华团队提出并发表于 ICLR'24。其目标是更全面地衡量 LLM 在多种场景下作为自主智能体运行的能力。
一、评测环境与用途 原始 AgentBench(v0.2)包含 8 个不同环境:
- 操作系统(OS)
- 知识图谱(KG)
- 数字卡牌游戏(DCG)
- 横向思维谜题(LTP)
- 家务(House-Holding,基于 ALFWorld)
- 网购(Web Shopping,基于 WebShop)
- 网页浏览(Web Browsing,基于 Mind2Web) 每个数据集提供 Dev 和 Test 两个划分。多轮交互要求 LLM 分别生成约 4k 和 13k 次。
二、AgentBench FC(函数调用版本) 当前仓库包含基于函数调用的 AgentBench 版本,集成了 AgentRL——一个端到端多任务、多轮 LLM Agent 强化学习框架。与原始 AgentBench 相比,该版本使用函数调用风格的提示,并为以下任务增加了完全容器化部署支持:
- knowledgegraph(KG)
- os_interaction(OS) 这些任务支持通过 Docker Compose 一键快速搭建。
三、VisualAgentBench(2024.08.13) VisualAgentBench 用于基于大型多模态模型(LMM)的视觉基础智能体的评测与训练,包含 5 个不同环境:
- 具身:VAB-OmniGibson、VAB-Minecraft
- GUI:VAB-Mobile、VAB-WebArena-Lite
- 视觉设计:VAB-CSS 它系统性地对 17 个 LMM(含专有与开源模型)进行基准测试,并提供轨迹数据集,用于在开源 LMM 上进行行为克隆训练,以开发自己的视觉基础智能体。
四、使用方式(以原版 v0.2 快速启动 dbbench-std 与 os-std 为例) 步骤 1:前置条件
- 克隆仓库并安装依赖。注意 AgentBench 固定了较旧的科学计算 Python 依赖(如 numpy~=1.23.x),推荐通过 conda 使用 Python 3.9 安装。
- 确保已正确安装 Docker。
- 为 dbbench-std 和 os-std 构建所需镜像。
步骤 2:配置 Agent
- 在 configs/agents/openai-chat.yaml 中填入 OpenAI API Key(例如 gpt-3.5-turbo-0613)。
- 可用 python -m src.client.agent_test 检查 Agent 是否配置正确。
步骤 3:启动任务服务器
- 启动 task_worker 需要假定 5000 至 5015 端口可用(Mac OS 用户需先释放 5000 端口)。
- 自动化脚本会为 dbbench-std 和 os-std 各启动五个 task_worker,并自动连接到 5000 端口的 controller。执行后约需 1 分钟完成设置,终端显示“…… 200 OK”后可继续。
- 若想以最小并发(每任务 1 个 worker)启动,可使用 lite 预设。
步骤 4:启动 assigner
- 此步骤真正开始执行任务测试。若前面配置正确,即可发起测试。
- 若以 lite 预设启动任务服务器,也可运行 lite 评测预设。
环境部署说明
- 其余五个任务需要下载官方提供的 Docker 镜像。
- 知识图谱(KG)任务依赖在线服务,若需本地部署:先下载数据库并搭建 freebase-setup 服务;然后在 /configs/tasks/kg.yaml 中将 sparql_url 由 “http://164.107.116.56:3093/sparql” 改为自己的 SPARQL 服务地址。注意应在启动 agent 任务服务前先启动 KG 服务。
资源与限制
- webshop 环境启动约需 16GB 内存。
- 当前 alfworld 实现会在任务 worker 重启前泄漏内存与磁盘空间,运行前需确保机器资源充足。
- AgentBench 固定较旧的 Python 科学依赖,建议使用 Python 3.9。
- 原始 AgentBench 结果显示,虽然 LLM 开始展现作为智能体的能力,但模型之间的差距以及距实际可用性的距离仍然显著。
五、扩展 如需向 AgentBench 添加新任务,可参考扩展指南。Avalon 任务由 AvalonBench 合并而来,实现了多智能体框架。