Token导航 LogoToken导航TokenDH.com
toolathlon gym logo
数据服务未说明官方级别未说明来源级核验

toolathlon gym

MCP Server

Toolathlon-GYM是一个基于本地PostgreSQL数据库的多工具任务评估平台,用于训练和评估LLM代理在真实世界工具使用中的能力,支持503个任务和25个MCP服务器。

工具数

0

提示词数

0

GitHub Stars

124

资源数

0
PythonClaude数据分析Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

eigent-ai

提供方

eigent-ai

最后核验

2026/5/17 20:19

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Toolathlon健身房

--503由本地PostgreSQL数据库支持的多工具任务,无需外部API

对LLM代理进行实际工具使用的培训和评估是困难的。大多数现有的数据集要么工具覆盖范围太窄,规模太小,要么依赖于随时间变化的实时外部API。我们介绍 Toolathlon健身房,一个拥有503个任务、25个MCP服务器和丰富模拟数据库的大规模、自包含的环境。它完全在本地运行,运行时不需要外部API调用。

Toolathlon GYM基于并扩展了以下基础设施 Toolathlon 香港科技大学NLP。任务格式、评估框架、MCP服务器接口和数据库模式设计都源于Toolathlon项目。该数据集在更大范围内应用了相同的格式,为培训和评估产生了更大、更多样化的任务池。每个任务都要求代理完成一个端到端的目标,例如从模拟企业数据库中提取数据、生成电子表格报告、安排日历事件和发送摘要电子邮件,使用一组固定的MCP(模型上下文协议)服务器作为工具。

每个任务都是完全自动化的:a preprocess/main.py 脚本在运行前设置初始工作区状态,代理使用提供的工具执行,以及 evaluation/main.py 脚本根据引用地真实性检查输出。不涉及人工评分或现场外部服务。

该数据集旨在对实践中重要的代理功能进行压力测试:跨异构工具的多步规划、读写结构化文件格式、跨系统数据同步以及在固定步骤预算下完成长期任务。我们还提供了一个使用 CAMEL-AI 在Toolathlon GYM环境中运行的框架。

快速开始

先决条件

  • Docker和Docker Compose

1.构建和启动

cd Toolathlon_Pack

# Build the agent image
docker build -t toolathlon-pack:latest .

# Start PostgreSQL
docker compose up -d postgres

toolathlon_pg (PostgreSQL 15)从以下位置自动初始化 db/init.sql.gz 第一次开始。代理映像保持独立——每个任务都会生成一个新的容器。

2.运行单个任务

每个任务都在自己的临时Docker容器中运行。容器为每个任务创建,并在退出时销毁。要同时运行多个任务,请参阅 并行运行任务 在......下面

MODEL_PLATFORM=openai_compatible \
MODEL_NAME=claude-sonnet-4-5 \
MODEL_API_KEY=sk-xxx \
MODEL_API_URL=https://aihubmix.com/v1 \
bash scripts/run_containerized.sh howtocook-meal-plan-gcal

传递第二个参数以覆盖默认步长限制(100):

bash scripts/run_containerized.sh howtocook-meal-plan-gcal 60

任务输出被写入 dumps/// 在主机上。完整的对话轨迹保存到 dumps/// _/traj.json。每轮LLM请求/响应日志(包括原始消息和工具调用)位于 dumps/// _/camel_logs/.

验证设置:

bash scripts/test_containerized.sh

3.并行运行任务

对于大规模评估,使用 run_parallel.sh 同时运行多个任务。每个任务都有自己的完全隔离的环境(专用PostgreSQL+代理容器+Docker网络),因此任务之间没有共享状态。

# Run all 503 tasks, up to 10 running concurrently
GEMINI_API_KEY=AIza-xxx \
MODEL=gemini-3-flash-preview \
PROVIDER=gemini \
IMAGE=toolathlon-pack:latest \
bash run_parallel.sh 10

# Run specific tasks, up to 5 concurrently
MODEL_PLATFORM=openai_compatible \
MODEL_NAME=claude-sonnet-4-5 \
MODEL_API_KEY=sk-xxx \
MODEL_API_URL=https://aihubmix.com/v1 \
IMAGE=toolathlon-pack:latest \
bash run_parallel.sh 5 howtocook-meal-plan-gcal wc-sales-tax-summary yf-stock-volatility-terminal

并发性由基于FIFO的信号量控制——第一个参数设置同时运行的最大任务数。结果收集到CSV摘要中,网址为 benchmark_logs/fully_parallel_/summary.csv,每个任务的日志都在同一目录中。

环境变量默认值描述
MODELgemini-3-flash-preview型号名称
PROVIDERgemini提供者密钥(gemini, openai, anthropic等等)
MAX_STEPS100每个任务的最大代理步骤数
IMAGEtoolathlon_pack-toolathlon:latest要使用的Docker镜像
GEMINI_API_KEY-Gemini提供商的API密钥
MODEL_API_KEY-其他提供程序的API密钥
MODEL_PLATFORM--平台覆盖(例如。 openai_compatible)
MODEL_API_URL--OpenAI兼容端点的基本URL

______________________________________________________________________

模型提供者参考

MODEL_PLATFORM 以下情况之一:

MODEL_PLATFORM描述必需的环境变量
openai_compatible任何与OpenAI兼容的端点(aihubmix、OpenRouter、本地等)MODEL_API_KEY, MODEL_API_URL
openai官方OpenAI APIMODEL_API_KEY
anthropic官方无烟煤APIMODEL_API_KEY
gemini官方Google Gemini APIMODEL_API_KEY

示例:

# Claude via aihubmix
MODEL_PLATFORM=openai_compatible MODEL_NAME=claude-sonnet-4-5 \
MODEL_API_KEY=sk-xxx MODEL_API_URL=https://aihubmix.com/v1 \
bash scripts/run_containerized.sh canvas-enrollment-notion

# GPT-5.2 via official OpenAI
MODEL_PLATFORM=openai MODEL_NAME=gpt-5.2 \
MODEL_API_KEY=sk-proj-xxx \
bash scripts/run_containerized.sh howtocook-event-catering-excel-word

# Gemini 3 Flash via official Google
MODEL_PLATFORM=gemini MODEL_NAME=gemini-3-flash-preview \
MODEL_API_KEY=AIza-xxx \
bash scripts/run_containerized.sh sf-hr-attrition-gcal

______________________________________________________________________

任务结构

所有503个任务都在 tasks/finalpool/每个任务目录都遵循一致的布局:

/
├── task_config.json         # Which MCP servers the agent can use
├── docs/
│   ├── task.md              # Task description shown to the agent
│   └── agent_system_prompt.md
├── evaluation/main.py       # Automated evaluator
├── preprocess/main.py       # DB state setup (run automatically before each task)
├── initial_workspace/       # Input files pre-loaded into the agent workspace
└── groundtruth_workspace/   # Reference outputs for evaluation

任务描述(task.md)没有工具或服务品牌名称——对“Notion”、“Google Calendar”或“Canvas”等工具的引用被“知识库”、“共享日历”或“学习管理系统”等通用描述所混淆。这与原始Toolathlon项目使用的混淆约定相同,并防止代理基于关键字识别走捷径,从而鼓励真正的工具使用推理。

模拟数据库

连接: toolathlon_gym @ localhost:5432 (用户: eigent,密码: camel)

所有数据都从本地PostgreSQL数据库提供,并从压缩转储初始化(db/init.sql.gz8.2 MB)。运行时不进行外部API调用。这使环境完全可控,并避免了API速率限制、模式更改或数据漂移的问题。

数据来源于或模拟于真实世界: Kaggle Oulad (开放大学学习分析数据集)用于学习管理系统数据, Kaggle人力资源分析 对于企业HR数据, 雅虎财经API 用于财务数据,以及以下各项的组合 Kaggle亚马逊产品数据集虚拟JSON 电子商务数据。

数据丰富的模式

MCP数据库描述规模
画布学习管理系统——课程、用户、报名、作业、提交、测验、量规、公告22门课程,28865名用户,32663名报名,206份作业,173912份提交,77次测验
雪花企业数据仓库——人力资源分析、销售和支持中心域50000名员工、20000份销售订单、31588张支持票
WooCommerce电子商务--产品、订单、客户、优惠券、评论、运输区域、税率82个产品、150个订单、50个客户、396条评论
雅虎金融股票市场——价格、财务报表、新闻、期权、持有人50个股票代码,3510条价格记录
油管视频平台--频道、播放列表、视频、文字记录3个频道、2个播放列表、135个视频
火车铁路系统——车站、火车、路线、座位8列火车、16条路线

数据集统计

总计:503项任务

MCP计数分布

任务范围从4到8个MCP服务器,其中大多数需要4到7个工具。更高的MCP计数表示需要更大的跨系统协调:代理必须在单个任务中编排更多异构工具,计划更长的操作序列,并处理跨服务的更复杂的数据流:

|

下面是每一层的代表性示例,说明任务复杂性和协调需求如何随MCP计数而变化。(因为原始文本太长,这里只显示了任务的摘要。)

4个MCP-- wc-customer-retention-email (woocommerce, excel, emails, filesystem)

根据总支出确定在线商店的前10名客户。创建名为的Excel电子表格 VIP_Customer_Report.xlsx 其中列Rank、Name、Email、Orders_Count和Total_Spent从高到低排序。然后向这10位客户分别发送一封个性化的感谢电子邮件 vip-program@store.example.com,直呼他们的名字,并提及他们的总支出。

5 MCP-- 12306-beijing-shanghai-trip-notion-gcal-word (rail_12306, notion, google_calendar, word, emails)

计划一天往返北京和上海。查询2026年3月10日双向可用的高速列车,并根据时间选择最佳的出站和回程列车。在团队知识库中记录旅行细节,创建 Travel_Plan.docx 包含三个部分(出站行程、回程、预订摘要),添加两个涵盖旅行窗口的日历事件,并向发送确认电子邮件 travel@consulting.com.

6 MCP-- arxiv-conference-prep (scholarly, arxiv-latex, pptx, google_calendar, emails, filesystem)

为2026年RLHF峰会做准备。从人类反馈中搜索至少5篇关于强化学习的论文,然后阅读其完整的LaTeX源代码以提取方法细节。创建一个PowerPoint演示文稿,其中包含标题幻灯片、RLHF字段概述、每篇论文一张幻灯片和一张合成幻灯片。为2026年4月10日的会议添加日历活动,并将准备材料通过电子邮件发送给合作者。

7 MCP-- arxiv-research-pipeline-notion-excel (scholarly, arxiv_local, terminal, excel, notion, filesystem)

基于大型语言模型构建研究知识库。搜索关于法学硕士、快速工程和情境学习的论文。使用终端运行一个合成脚本,该脚本读取论文元数据和内容,计算相关性得分,并输出结构化的JSON摘要。创建一个Excel文件,其中包含三张表(Paper_Catalog、Method_Comparison、Research_Gaps)和一个名为“LLM Research Hub”的Notion页面,该页面包含一个研究仪表板,其中包含景观概述、方法比较和已识别的差距。

8个MCP-- arxiv-research-workflow-pipeline (scholarly, arxiv-latex, terminal, word, google_calendar, emails, pdf-tools, filesystem)

建立一个文献综述管道,首先搜索最近关于神经网络架构的论文并下载其PDF。解析这些论文的LaTeX源文件,提取关键的数学公式,并将其组织成结构化格式。根据收集到的材料,建立一个具有适当学术引文的分类书目。然后编写一份2000字的研究总结,综合主要趋势,找出研究差距,并概述潜在的未来方向。最后,安排一次团队评审会议,发送附有摘要文档的日历邀请,并将所有工作文件存储在一个集中位置以供协作和将来参考。

MCP服务器覆盖范围

数据集中有25个MCP服务器,涵盖文件输入/输出、数据仓库、生产力工具、web交互和特定领域的API。下表显示了每个服务器包含多少任务,从而了解环境中哪些工具类别的代表性最强:

最常用的服务器反映了任务的输出繁重性质。 filesystem 几乎在每个任务中都显示为代理的工作区,用于读取输入文件和写入结果。 excelemails 是两个最常见的输出通道——大多数任务都会生成至少一个结构化的电子表格并发送摘要消息。 terminal 要求代理编写和执行数据转换或统计分析的代码脚本,这些脚本无法由其他工具单独处理。

snowflake 是企业工作流任务的主要数据源,公开了三个领域:人力资源分析(50000名员工、工资、绩效评级和任期数据)、销售(跨地区和客户细分市场的20000个订单)和客户支持(31588张带有SLA和解决元数据的工单)。任务通常查询一个或两个域,计算聚合或标记异常值,并将结果写入Excel或Word。 canvas 类似地锚定LMS任务,代理按课程过滤提交,计算成绩分布,或从22门课程和173912份提交的数据集中标记有风险的学生。

playwright_with_chunkfetch 二者都从模拟本地服务器检索数据-剧作家任务抓取HTML页面(例如竞争对手档案或产品列表),而获取任务调用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) 文件携带代理根据数据库结果连接的表格参考数据——行业工资数据集、投资组合、教师目录或供应商联系人列表。 文本(.txt) 文件提供轻量级的结构化内容:要下载的纸张ID列表、电子邮件正文模板、季度销售目标或升级策略规则。

python.py) 脚本是代理通过终端完成和执行的启动模板,测试其读取现有代码、推断意图和将脚本输出集成到更大工作流中的能力。较为罕见的格式各自扮演着特定的角色: .pptx 输入是代理扩展而不是从头开始创建的现有幻灯片; .docx 输入是具有预定义标题的文档骨架;唯一 .bib 档案是代理人用新发现的论文补充的种子书目;和单曲 .gz 档案必须与终端一起拆包,然后才能使用其内容。

是什么让Toolathlon GYM与众不同

规模和多样性

在25个MCP服务器和6个数据域的503个任务中,Toolathlon GYM比该领域的早期数据集要大得多,工具也更加多样化。任务的设计要求真正的跨系统协调,而不是单一的工具查找。

完全本地化和可复制

整个环境从一个Docker Compose文件运行。在评估时不需要数据服务的API密钥。PostgreSQL转储是版本化和确定性的,因此结果可以在机器之间和时间上重复。

现实任务复杂性

任务来自真实的企业工作流程模式:从人力资源数据库中提取数据以生成薪资分析电子表格,对照日历截止日期交叉引用学习管理系统提交记录,从抓取的网络数据生成幻灯片,以及类似的多步目标。大多数任务需要4-7个工具才能正确完成。

致谢

Toolathlon GYM基于以下基础设施和原始数据管道构建:

Toolathlon:在现实世界的工具使用任务上对LLM代理进行基准测试 香港科技大学 https://github.com/hkust-nlp/Toolathlon

模拟数据库模式设计、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

目录标签

目录标签

PythonClaude数据分析多工具任务评估本地部署LLM代理训练本地数据库自动化评估任务模拟

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP