Toolathlon-GYM:面向工具使用智能体的大规模长周期环境
503 个多工具任务,由本地 PostgreSQL 数据库提供支持——无需外部 API

在真实世界工具使用场景中训练和评估 LLM 智能体是很困难的。现有大多数数据集要么工具覆盖面过窄,要么规模太小,要么依赖会随时间变化的在线外部 API。我们推出 Toolathlon-GYM,这是一个大规模、自包含的环境,包含 503 个任务、25 个 MCP 服务器和一个丰富的模拟数据库。它完全在本地运行,评测时无需任何外部 API 调用。
Toolathlon-GYM 基于 HKUST-NLP 的 Toolathlon 基础设施进行构建和扩展。任务格式、评测框架、MCP 服务器接口以及数据库 schema 设计都源自 Toolathlon 项目。该数据集以更大规模应用同样的格式,生成了一个显著更大、更多样的任务池,用于训练和评估。每个任务都要求智能体完成端到端目标,例如从模拟企业数据库中提取数据、生成电子表格报告、安排日历事件以及发送摘要邮件,并将固定的一组 MCP(Model Context Protocol)服务器作为工具使用。
每个任务都实现了完全自动化:preprocess/main.py 脚本会在运行前设置初始工作区状态,智能体使用提供的工具执行任务,evaluation/main.py 脚本则将输出与参考 groundtruth 进行比对。整个流程不涉及人工评审,也不依赖实时外部服务。
该数据集旨在对实践中重要的智能体能力进行压力测试:跨异构工具的多步规划、结构化文件格式的读写、跨系统数据同步,以及在固定步数预算下完成长周期任务。我们还提供了一个基于 CAMEL-AI 框架构建的示例智能体,用于在 Toolathlon-GYM 环境中运行。
任务结构
所有 503 个任务都位于 tasks/finalpool/ 中。每个任务目录都遵循一致的布局:
<task-name>/
├── task_config.json # 智能体可使用哪些 MCP 服务器
├── docs/
│ ├── task.md # 向智能体展示的任务描述
│ └── agent_system_prompt.md
├── evaluation/main.py # 自动化评测器
├── preprocess/main.py # 数据库状态初始化(在每个任务前自动运行)
├── initial_workspace/ # 预先加载到智能体工作区的输入文件
└── groundtruth_workspace/ # 用于评测的参考输出
任务描述(task.md)在编写时不会直接包含工具或服务品牌名称——像 "Notion"、"Google Calendar" 或 "Canvas" 之类的工具引用会被模糊化为更通用的描述,例如 "知识库"、"共享日历" 或 "学习管理系统"。这与原始 Toolathlon 项目使用的模糊化约定一致,可防止智能体通过关键词识别走捷径,鼓励其进行真正的工具使用推理。
模拟数据库
Connection: toolathlon_gym @ localhost:5432 (user: eigent, password: camel)
所有数据都来自本地 PostgreSQL 数据库,并由压缩转储文件初始化(db/init.sql.gz,8.2 MB)。运行时不会发出任何外部 API 调用。这使得环境完全可控,并避免了 API 限流、schema 变化或数据漂移等问题。
数据来源于真实世界数据集或基于其进行模拟:用于学习管理系统数据的 Kaggle OULAD(Open University Learning Analytics Dataset)、用于企业 HR 数据的 Kaggle HR Analytics、用于金融数据的 Yahoo Finance API,以及用于电商数据的 Kaggle Amazon product datasets 和 DummyJSON 的组合。
数据丰富的 schemas
| MCP Database | Description | Scale |
|---|---|---|
| canvas | 学习管理系统——课程、用户、选课、作业、提交、测验、评分规则、公告 | 22 门课程,28,865 名用户,32,663 条选课记录,206 个作业,173,912 次提交,77 个测验 |
| snowflake | 企业数据仓库——HR 分析、销售和客服中心领域 | 50,000 名员工,20,000 笔销售订单,31,588 张支持工单 |
| woocommerce | 电商——商品、订单、客户、优惠券、评论、配送区域、税率 | 82 个商品,150 笔订单,50 位客户,396 条评论 |
| yahoo_finance | 股票市场——价格、财务报表、新闻、期权、持有人 | 50 个 ticker,3,510 条价格记录 |
| youtube | 视频平台——频道、播放列表、视频、字幕 | 3 个频道,2 个播放列表,135 个视频 |
| train | 铁路系统——车站、列车、路线、座位 | 8 列火车,16 条路线 |
数据集统计
总计:503 个任务
MCP 数量分布
任务涉及的 MCP 服务器数量从 4 到 8 个不等,其中大多数需要 4–7 个工具。更高的 MCP 数量意味着需要更强的跨系统协同:智能体必须在单个任务中编排更多异构工具,规划更长的动作序列,并处理更复杂的跨服务数据流:
| 每个任务的 MCP 数 | 任务数量 |
|---|---|
| 4 | 123 |
| 5 | 133 |
| 6 | 105 |
| 7 | 126 |
| 8 | 16 |
下面是各层级的代表性示例,用于说明随着 MCP 数量增加,任务复杂度和协同需求如何提升。(由于原文过长,这里仅展示任务摘要。)
4 MCPs — wc-customer-retention-email (woocommerce, excel, emails, filesystem)
找出网店中总消费额最高的前 10 位客户。创建一个名为
VIP_Customer_Report.xlsx的 Excel 电子表格,包含 Rank、Name、Email、Orders_Count 和 Total_Spent 列,并按从高到低排序。然后从vip-program@store.example.com给这 10 位客户逐一发送个性化感谢邮件,使用他们的名字称呼他们,并提及其总消费金额。
5 MCPs — 12306-beijing-shanghai-trip-notion-gcal-word (rail_12306, notion, google_calendar, word, emails)
规划一趟北京与上海之间的当日往返行程。查询 2026 年 3 月 10 日两个方向可用的高铁,并根据时间安排选择最佳去程和返程车次。将行程详情记录到团队知识库中,创建一个包含三个部分(Outbound Journey、Return Journey、Booking Summary)的
Travel_Plan.docx,添加两个覆盖出行时间段的日历事件,并向travel@consulting.com发送确认邮件。
6 MCPs — arxiv-conference-prep (scholarly, arxiv-latex, pptx, google_calendar, emails, filesystem)
为 RLHF Summit 2026 会议做准备。搜索至少 5 篇关于人类反馈强化学习的论文,然后阅读其完整 LaTeX 源码以提取方法细节。创建一个 PowerPoint 演示文稿,包含标题页、RLHF 领域概览、每篇论文一页以及一页综合总结。为 2026 年 4 月 10 日的会议添加一个日历事件,并将准备材料通过邮件发送给协作者。
7 MCPs — arxiv-research-pipeline-notion-excel (scholarly, arxiv_local, terminal, excel, notion, filesystem)
建立一个关于大语言模型的研究知识库。搜索关于 LLM、prompt engineering 和 in-context learning 的论文。使用终端运行一个综合脚本,该脚本读取论文元数据和内容,计算相关性分数,并输出结构化 JSON 摘要。创建一个包含三个工作表(Paper_Catalog、Method_Comparison、Research_Gaps)的 Excel 文件,以及一个标题为 "LLM Research Hub" 的 Notion 页面,其中包含研究仪表板、领域概览、方法对比和已识别的研究空白。
8 MCPs — arxiv-research-workflow-pipeline (scholarly, arxiv-latex, terminal, word, google_calendar, emails, pdf-tools, filesystem)
建立一个文献综述流程:首先搜索近期关于神经网络架构的论文并下载其 PDF。解析这些论文的 LaTeX 源文件,提取关键数学公式并将其整理为结构化格式。基于收集到的材料,构建一份带有规范学术引用的分类参考文献表。然后撰写一篇 2,000 字的研究总结,综合主要趋势、识别研究空白并概述潜在的未来方向。最后,安排一次团队评审会议,发送附带摘要文档的日历邀请,并将所有工作文件存放在一个集中位置,便于协作和后续参考。
MCP 服务器覆盖情况
整个数据集共提供 25 个 MCP 服务器,覆盖文件输入/输出、数据仓库、生产力工具、网页交互以及特定领域 API。下表显示了包含每个服务器的任务数量,有助于了解环境中哪些工具类别占比最高:

使用频率最高的服务器体现了这些任务以输出为主的特征。filesystem 几乎出现在每个任务中,作为智能体读取输入文件和写入结果的工作区。excel 和 emails 是最常见的两个输出渠道——大多数任务都会生成至少一个结构化电子表格并发送摘要消息。terminal 要求智能体编写并执行代码脚本,用于其他工具无法单独完成的数据转换或统计分析。
snowflake 是企业流程任务的主要数据源,暴露三个领域:HR 分析(50,000 名员工、薪资、绩效评级和任职时长数据)、销售(跨区域和客户细分的 20,000 笔订单)以及客户支持(31,588 张带有 SLA 和解决元数据的工单)。任务通常会查询其中一个或两个领域,计算聚合值或标记异常值,并将结果写入 Excel 或 Word。canvas 同样支撑 LMS 任务,智能体需要按课程筛选提交、计算成绩分布,或从 22 门课程和 173,912 次提交的数据集中识别高风险学生。
playwright_with_chunk 和 fetch 都从模拟的本地服务器检索数据——playwright 任务抓取 HTML 页面(例如竞争对手资料或商品列表),而 fetch 任务调用 REST API 端点(例如行业薪资数据集或库存预测),并将结果与数据仓库记录进行关联。google_forms 任务更进一步:智能体以程序化方式创建结构化问卷,然后查询订单或选课数据以识别合适的收件人,并发送个性化邀请。
howtocook 提供一个食谱和营养数据库,用于餐饮、膳食规划和营养分析任务。pdf-tools 既作为读取器(作为输入提供的参考 PDF),也作为写入器(生成格式化报告作为输出)。memory 支持多轮研究任务,在这些任务中,智能体必须在迭代过程中跟踪搜索进度,并避免重复查询已获取的数据。youtube-transcript 提取视频录制中的原始字幕文本,随后智能体对其进行处理,以生成结构化文档或问卷。
初始工作区文件类型
任务开始时提供给智能体的初始工作区文件类型覆盖 11 种不同格式,囊括了智能体在真实企业工作流中可能遇到的各类文档。其分布反映了真实的任务组成:Markdown 简报和 PDF 参考文档最常见,其次是 JSON 和 Excel 等结构化数据格式,智能体需要读取、转换并回写这些格式:

以下是初始工作区中最具代表性的文件类型说明:
Markdown (.md) 文件是最常见的输入,用于任务简报、操作指南和规划模板——例如 travel_guide.md(列车预订任务中的公司差旅政策)、analysis_methodology.md(销售分析的统计方法)或 Research_Scope.md(文献综述的主题边界)。
PDF (.pdf) 文件是智能体在行动前必须解析的参考文档——薪酬政策、投资组合指南、评分量规或审计流程,其内容会直接决定正确输出。JSON (.json) 文件承载参数化配置:行程设置、筛选阈值、审计标准、预算上限和团队名单,使任务能够在不改变任务描述的情况下实现变化。
Excel (.xlsx) 输入是预先填充的模板,带有预定义的列标题,智能体需要将内容补全(例如 paper_notes_template.xlsx、approved_budget.xlsx)。CSV (.csv) 文件携带表格型参考数据,智能体会将其与数据库结果进行关联——行业薪资数据集、投资组合持仓、教师名录或供应商联系人列表。Text (.txt) 文件提供轻量级结构化内容:待下载的论文 ID 列表、邮件正文模板、季度销售目标或升级处理规则。
Python (.py) 脚本是智能体通过终端补全并执行的起始模板,用于测试其读取现有代码、推断意图并将脚本输出整合进更大工作流的能力。较少见的格式各自承担特定角色:.pptx 输入是现有幻灯片,智能体在其基础上扩展而非从头创建;.docx 输入是带有预定义标题的文档骨架,供智能体填充;唯一的 .bib 文件是一个种子参考文献表,智能体会用新发现的论文进行扩充;唯一的 .gz 压缩包必须先用终端解压,才能使用其中的内容。
Toolathlon-GYM 的不同之处
规模与多样性
Toolathlon-GYM 共包含 503 个任务、25 个 MCP 服务器和 6 个数据领域,在规模和工具多样性上都明显大于该领域此前的数据集。任务设计旨在要求真正的跨系统协同,而不是单工具查询。
完全本地化且可复现
整个环境可通过单个 Docker Compose 文件运行。评测时不需要任何数据服务的 API 密钥。PostgreSQL 转储是版本化且确定性的,因此结果可在不同机器上以及随时间保持可复现。
真实的任务复杂度
任务来源于真实的企业工作流模式:从 HR 数据库中拉取数据生成薪资分析电子表格,将学习管理系统的提交记录与日历截止日期交叉比对,基于抓取的网页数据生成幻灯片,以及类似的多步骤目标。大多数任务都需要 4–7 个工具才能正确完成。
致谢
Toolathlon-GYM 建立在以下项目的基础设施和原始数据管道之上:
Toolathlon: Benchmarking LLM Agents on Real-World Tool-Use Tasks HKUST-NLP https://github.com/hkust-nlp/Toolathlon
模拟数据库的 schema 设计、MCP 服务器接口和任务评测框架均源自 Toolathlon 项目。该数据集在原始基础上扩展了更多任务和更大规模的模拟数据。
引用
如果您在研究中使用 Toolathlon-GYM,请引用:
@misc{toolathlon-gym,
author = {Puzhen Zhang and Weijie Bai and Wendong Fan and Guohao Li},
title = {{Toolathlon-GYM: Large-Scale Long-Horizon Environments for Tool-Use Agents}},
year = {2026},
url = {https://github.com/eigent-ai/toolathlon_gym}
}
联系我们
如果您想联系我们,请发送邮件至 info@eigent.ai
Recent Posts

Cursor 替代品(免费且开源):属于你自己的工作空间
在 SpaceX 收购事件后,正在寻找免费开源 Cursor 替代品?对比成本、自托管、模型选择和数据驻留方案,并了解迁移路径。

Claude Record a Skill:通过屏幕录制教 Claude 学习工作流
Claude 的 Record a skill 功能可将屏幕录制转化为可复用的技能。了解其工作原理、访问权限、设置步骤及使用限制。

Cursor Router 详解:以更低成本实现前沿级代码质量
Cursor Router 自动为每个编程请求选择最佳模型,在保持前沿质量的同时降低成本。了解其工作原理、三种模式及相关权衡。