
🌐 排行榜 (新版) | 🐦 Twitter | ✉️ Google 群组 | 📃 论文
👋 加入我们的 Slack 进行 问答 或 协作开发 下一版 AgentBench!
当前仓库包含 AgentBench 的函数调用版本,集成了 AgentRL——一个端到端多任务、多轮 LLM 智能体强化学习框架。
如果您希望使用旧版本,可以回退到 v0.1 和 v0.2。
与原始 AgentBench 相比,此版本使用了函数调用风格的提示,并为以下任务添加了完全容器化的部署支持:
alfworld (AF)dbbench (DB)knowledgegraph (KG)os_interaction (OS)webshop (WS)我们支持使用 Docker Compose 一键启动上述所有任务。
开始前,请下载或构建任务所需的以下 Docker 镜像:
# dbbench
docker pull mysql:8
# os_interaction
docker build -t local-os/default -f ./data/os_interaction/res/dockerfiles/default data/os_interaction/res/dockerfiles
docker build -t local-os/packages -f ./data/os_interaction/res/dockerfiles/packages data/os_interaction/res/dockerfiles
docker build -t local-os/ubuntu -f ./data/os_interaction/res/dockerfiles/ubuntu data/os_interaction/res/dockerfiles
要运行 KG freebase 服务器,您还需要一份 此处 提供的数据。
下载、解压并将数据放置在 ./virtuoso_db/virtuoso.db(或修改 extra/docker-compose.yml 并将挂载点设置到您的数据位置)。
然后,您可以通过以下命令启动整个服务栈:
docker compose -f extra/docker-compose.yml up
此命令将下载或构建必要的 Docker 镜像,并在 Docker 中启动以下服务:
alfworld 任务工作器 (x1,可按需增加)dbbench 任务工作器 (x1,可按需增加)knowledgegraph 任务工作器 (x1,可按需增加)os_interaction 任务工作器 (x1,可按需增加)webshop 任务工作器 (x1,可按需增加)knowledgegraph 任务)如果您的机器已运行 Redis (版本 7+),可以从 docker-compose.yml 中省略 Redis 服务。
[!WARNING]
请注意,webshop环境启动需要约 16GB 内存,
且当前alfworld的实现存在内存和磁盘空间泄漏问题,直到任务工作器重启。
运行前请确保您的机器有足够的资源。
我们报告了各种模型在 AgentBench FC 测试集上的结果。

完整结果请参见我们的 排行榜。
如有任何问题或希望贡献您的结果,请联系 agentbench_fc@googlegroups.com。
VisualAgentBench 旨在评估和训练基于大型多模态模型 (LMMs) 的视觉基础智能体。我们引入了 5 个不同的环境,涵盖
以系统性地对 17 个 LMMs(闭源和开源 LMMs)进行基准测试。我们还提供了轨迹数据集,用于在开源 LMMs 上进行行为克隆训练,以帮助您开发自己的视觉基础智能体!
以下是原始 AgentBench (v0.2) 的介绍。
https://github.com/THUDM/AgentBench/assets/129033897/656eed6e-d9d9-4d07-b568-f43f5a451f04
AgentBench 是首个旨在跨多种不同环境评估 LLM-as-Agent 能力的基准测试。它包含 8 个不同的环境,以更全面地评估 LLMs 在各种场景中作为自主智能体运行的能力。这些环境包括 5 个新创建的领域,即
以及 3 个从已发布数据集重新编译的领域:

我们为每个数据集提供两个划分:开发集 (Dev) 和测试集 (Test)。多轮交互分别需要 LLMs 生成约 4k 和 13k 次响应。

以下是 AgentBench 测试集(标准)结果的得分。

虽然 LLMs 开始展现出作为智能体的能力,但模型之间的差距以及距离实际可用性仍有显著距离。

本节将指导您如何快速使用 gpt-3.5-turbo-0613 作为智能体来启动 dbbench-std 和 os-std 任务。
关于具体的框架结构,请参考 框架介绍。
更详细的配置和启动方法,请查看 配置指南 和 程序入口指南。
克隆此仓库并安装依赖。
Python 版本说明: AgentBench 固定了较旧的科学计算 Python 依赖(例如
numpy~=1.23.x)。
使用推荐的 Python 3.9(通过 conda)是安装依赖最可靠的方式。
cd AgentBench
conda create -n agent-bench python=3.9
conda activate agent-bench
pip install -r requirements.txt
确保已正确安装 Docker。
docker ps
为 dbbench-std 和 os-std 构建所需的镜像。
docker pull mysql
docker pull ubuntu
docker build -f data/os_interaction/res/dockerfiles/default data/os_interaction/res/dockerfiles --tag local-os/default
docker build -f data/os_interaction/res/dockerfiles/packages data/os_interaction/res/dockerfiles --tag local-os/packages
docker build -f data/os_interaction/res/dockerfiles/ubuntu data/os_interaction/res/dockerfiles --tag local-os/ubuntu
在 configs/agents/openai-chat.yaml 的正确位置填入您的 OpenAI API 密钥。(例如 gpt-3.5-turbo-0613)
您可以尝试使用 python -m src.client.agent_test 来检查您的智能体是否配置正确。
默认情况下,将启动 gpt-3.5-turbo-0613。您可以通过修改参数来替换为其他智能体:
python -m src.client.agent_test --config configs/agents/api_agents.yaml --agent gpt-3.5-turbo-0613
启动任务工作器涉及特定任务。手动启动可能很繁琐;因此,我们提供了一个自动化脚本。
此步骤的假设是端口 5000 到 5015 可用。对于 Mac OS 系统,您可能需要参考 此处 释放端口 5000 以供使用。
python -m src.start_task -a
这将为 dbbench-std 和 os-std 任务各启动五个任务工作器,并自动将它们连接到端口 5000 上的控制器。执行此命令后,请等待大约 1 分钟让任务设置完成。 如果终端显示 ".... 200 OK",您可以打开另一个终端并执行步骤 4。
如果您想以最小的并发度启动(每个任务 1 个工作器),请使用轻量预设:
python -m src.start_task -a --config configs/start_task_lite.yaml
此步骤是实际开始执行任务。
如果到目前为止一切配置正确,您现在可以启动任务测试。
python -m src.assigner
如果您使用轻量预设启动了任务服务器,也可以运行轻量评估预设:
python -m src.assigner --config configs/assignments/lite.yaml
如果您希望启动更多任务或使用其他模型,可以参考 配置指南 和 程序入口指南 中的内容。
对于其余五个任务的环境,您需要下载我们提供的 Docker 镜像。
longinyu/agentbench-ltp
longinyu/agentbench-webshop
longinyu/agentbench-mind2web
longinyu/agentbench-card_game
longinyu/agentbench-alfworld
八个任务中单个任务工作器的资源消耗大致如下;启动时请考虑此因素:
| 任务名称 | 启动速度 | 内存消耗 |
|---|---|---|
| webshop | ~3分钟 | ~15G |
| mind2web | ~5分钟 | ~1G |
| db | ~20秒 | < 500M |
| alfworld | ~10秒 | < 500M |
| card_game | ~5秒 | < 500M |
| ltp | ~5秒 | < 500M |
| os | ~5秒 | < 500M |
| kg | ~5秒 | < 500M |
KnowledgeGraph 任务依赖于一个在线服务,该服务目前不稳定。如果您想在本地部署该服务,可以按照以下步骤操作:
步骤1.
下载数据库并设置服务 freebase-setup。
步骤2.
将 /configs/tasks/kg.yaml 中的 sparql_url: "http://164.107.116.56:3093/sparql" 更改为 sparql_url: "<您的 SPARQL 服务 API>"。
注意: 您应该在启动智能体任务服务之前启动您的 KG 服务。
如果您希望向 AgentBench 添加新任务,可以参考 扩展指南。
Avalon 任务合并自 AvalonBench,它实现了一个多智能体框架。
@article{liu2023agentbench,
title = {AgentBench: Evaluating LLMs as Agents},
author = {Xiao Liu and Hao Yu and Hanchen Zhang and Yifan Xu and Xuanyu Lei and Hanyu Lai and Yu Gu and Hangliang Ding and Kaiwen Men and Kejuan Yang and Shudan Zhang and Xiang Deng and Aohan Zeng and Zhengxiao Du and Chenhui Zhang and Sheng Shen and Tianjun Zhang and Yu Su and Huan Sun and Minlie Huang and Yuxiao Dong and Jie Tang},
year = {2023},
journal = {arXiv preprint arXiv: 2308.03688}
}