Keep K3 suite selection and report-schema scoring in bash, merge K3/vision dataset_args into dpv4 yamls, and pin EvalScope at 735d920ee911 with local patches. Co-authored-by: Cursor <cursoragent@cursor.com>
5.9 KiB
5.9 KiB
Toolathlon Official Service Wrapper
概述
Toolathlon 是一个面向现实场景、长周期工具使用的智能体基准测试,覆盖多种基于 MCP 的软件环境。本 EvalScope 基准测试是对官方 Toolathlon 远程评估服务的封装,而非对 MCP 环境或官方评估器的本地重新实现。
任务描述
- 任务类型:长周期智能体工具使用,支持多轮函数调用
- 输入:从 Toolathlon-Verified 任务集中选取的真实软件任务
- 输出:由官方 Toolathlon 智能体循环执行的模型响应和工具调用
- 领域:基于 MCP 的生产力、开发、数据及 Web 软件环境
核心特性
- 使用官方 Toolathlon 服务进行 MCP 环境、任务容器、智能体执行和评分
- 支持官方服务的私有模式(private mode),可搭配本地或内网的 OpenAI 兼容模型端点
- 将一次远程 Toolathlon 作业视为一个 EvalScope 样本,通过
task_list和limit参数选择作业中的具体任务 - 对临时性的轮询和结果下载失败自动重试,而不取消远程评估
- 对失败的归档下载保持挂起状态以供后续重试,并验证已下载的输出路径
- 模型 API 密钥保留在 EvalScope 侧,并通过环境变量传递给本地 WebSocket 中继
- 包含从官方仓库提交
b7bbac3f9a1f381b095c878debe1a47dd164ad85中提取的 Toolathlon-Verified 任务列表
评估说明
- 主要指标为官方 Toolathlon 评分器报告的准确率(accuracy)
- 聚合分数从官方统计中读取,包括
average_success_rate,并为兼容的服务输出提供计数和按任务回退机制 - 缺失、非有限值或超出范围的分数将导致验证失败,而非静默报告为零
- EvalScope 评估语义版本为
v1.1;本封装遵循 Toolathlon 服务协议1.3 - 运行时依赖
httpx、websockets,且 EvalScope 进程需能访问 OpenAI 兼容端点 - 共享公共服务存在队列和基于 IP 的使用限制;如需持续评估,请使用专用或自托管服务
使用指南
有关公共服务限制、私有模式数据流、自托管服务设置以及 EvalScope 配置示例,请参阅 Toolathlon 使用指南:
官方资源:
- https://github.com/hkust-nlp/Toolathlon
- https://github.com/hkust-nlp/Toolathlon/blob/main/EVAL_SERVICE_README.md
属性
| 属性 | 值 |
|---|---|
| 基准测试名称 | toolathlon |
| 数据集ID | Toolathlon |
| 论文 | N/A |
| 标签 | Agent, FunctionCalling, MultiTurn |
| 指标 | accuracy |
| 默认示例数 | 0-shot |
| 评估划分 | test |
数据统计
| 指标 | 值 |
|---|---|
| 总样本数 | 1 |
| 提示词长度(平均) | 50 字符 |
| 提示词长度(最小/最大) | 50 / 50 字符 |
样例示例
子集: default
{
"input": [
{
"id": "ba8702fc",
"content": "Run Toolathlon official remote evaluation service."
}
],
"target": "",
"id": 0,
"metadata": {
"task_list": [
"ab-testing",
"academic-pdf-report",
"academic-warning",
"add-bibtex",
"apply-phd-email",
"arrange-workspace",
"canvas-arrange-exam",
"canvas-art-manager",
"canvas-art-quiz",
"canvas-do-quiz",
"... [TRUNCATED 98 more items] ..."
],
"mode": "private"
}
}
注:部分内容因显示需要已被截断。
提示模板
提示模板:
{question}
额外参数
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
mode |
str |
private |
Toolathlon 服务模式。EvalScope 此封装仅支持私有模式。选项:['private'] |
server_host |
str |
47.253.6.47 |
官方 Toolathlon 评估服务主机地址。 |
server_port |
int |
8080 |
官方 Toolathlon HTTP 服务端口。 |
ws_proxy_port |
int |
8081 |
私有模式下官方 Toolathlon WebSocket 代理端口。 |
workers |
int |
10 |
向官方服务请求的并行 Toolathlon 工作进程数量。 |
provider |
str |
unified |
Toolathlon 模型提供者类型。选项:['unified', 'openai_stateful_responses'] |
task_list |
list |
[] |
可选的 Toolathlon 任务名称列表。留空则使用内置的 Toolathlon-Verified 列表。 |
task_list_file |
str |
`` | 可选文件路径,每行包含一个 Toolathlon 任务名称。 |
model_params |
dict |
{} |
额外模型参数,将转发给 Toolathlon,在 TaskConfig.generation_config 之后合并。 |
job_id |
str |
`` | 可选的 Toolathlon 作业 ID。可用于恢复未完成的官方服务作业。 |
force_redownload |
bool |
False |
强制重新下载 Toolathlon 结果归档。 |
override_output_dir |
bool |
False |
当 Toolathlon 输出目录已存在文件时,清空该目录。 |
skip_container_restart |
bool |
False |
跳过 Toolathlon 容器重启。仅用于小型调试任务子集。 |
trust_env_in_httpx |
bool |
False |
允许 httpx 使用代理环境变量。 |
timeout_seconds |
int |
14400 |
等待 Toolathlon 官方服务作业的最大时间(秒)。 |
poll_interval |
int |
5 |
轮询 Toolathlon 作业状态的时间间隔(秒)。 |
使用方法
使用 CLI
evalscope eval \
--model YOUR_MODEL \
--api-url OPENAI_API_COMPAT_URL \
--api-key EMPTY_TOKEN \
--datasets toolathlon \
--limit 10 # 正式评估时请删除此行
使用 Python
from evalscope import run_task
from evalscope.config import TaskConfig
task_cfg = TaskConfig(
model='YOUR_MODEL',
api_url='OPENAI_API_COMPAT_URL',
api_key='EMPTY_TOKEN',
datasets=['toolathlon'],
dataset_args={
'toolathlon': {
# extra_params: {} # 使用默认额外参数
}
},
limit=10, # 正式评估时请删除此行
)
run_task(task_cfg=task_cfg)