tw-tool-bench
收藏资源简介:
tw-tool-bench是一个面向传统中文(台湾地区)的工具调用基准测试数据集,由OpenTWBench项目提供。该数据集包含2,590个测试用例,与Berkeley Function Calling Leaderboard (BFCL)非实时套件的规模相当,但内容完全基于台湾本地化的服务和表达习惯。其核心目标是衡量语言模型能否将台湾用户日常使用的自然语言表述(如民国纪年日期、本地化单位、常见服务名称等)准确地转换为API所需的参数格式。 数据集分为三个子集: - **单轮(single_turn)**:1,290个案例,涵盖简单(含200个孪生对)、多参数、并行、并行多参数以及不相关(irrelevance)等类别。 - **单轮困难(single_turn_hard)**:400个案例,通过引入诱饵值、复合陷阱、排除项和宽广工具池四种机制提升难度,用于区分顶级模型的表现。 - **多轮(multi_turn)**:900个案例,包含基础、缺失参数、缺失函数和长上下文四种场景,采用基于状态的模拟器进行评判,评判依据是模型调用后模拟器的状态是否与参考答案一致。 评分方式:单轮直接通过抽象语法树(AST)比较函数调用结果;多轮通过执行真实模拟器并比较状态,仅关注状态变化,额外只读调用不扣分,错误的状态改变调用则失败。每个案例都有唯一的ID,且所有数据均经过设计,不含真实个人隐私信息。数据集与BFCL的结构和评估语义保持兼容,便于直接比较模型性能。
tw-tool-bench is a tool-calling benchmark dataset for Traditional Chinese (Taiwan region), provided by the OpenTWBench project. It contains 2,590 test cases, comparable in scale to the non-real-time suite of the Berkeley Function Calling Leaderboard (BFCL), but entirely based on Taiwan-localized services and expressions. Its core goal is to evaluate whether language models can accurately convert natural language expressions commonly used by Taiwanese users (such as dates in the Minguo calendar, localized units, common service names, etc.) into the parameter formats required by APIs. The dataset is divided into three subsets: single-turn (1,290 cases covering simple, multi-parameter, parallel, parallel multi-parameter, and irrelevance categories), single-turn hard (400 cases with increased difficulty through decoy values, compound traps, exclusion items, and a wide tool pool), and multi-turn (900 cases including four scenarios: basic, missing parameters, missing functions, and long context). Scoring: single-turn compares function call results via abstract syntax tree; multi-turn executes a real simulator and compares states, focusing only on state changes, with extra read-only calls not penalized and erroneous state-changing calls failing. Each case has a unique ID, contains no real personal privacy information, and is compatible with BFCL.
tw-tool-bench 数据集概述
基本信息
- 许可证:Apache-2.0
- 语言:繁体中文(台湾)
- 任务类型:文本生成
- 数据规模:1K < N < 10K(共 2,590 个测试用例)
- 所属项目:OpenTWBench(开放台湾领域知识评估套件)
- 数据格式:JSONL
数据集结构
数据集包含三个配置(config),每个配置对应一个测试集文件:
| 配置名称 | 文件路径 | 用例数量 |
|---|---|---|
single_turn |
data/single_turn.jsonl |
1,290 |
single_turn_hard |
data/single_turn_hard.jsonl |
400 |
multi_turn |
data/multi_turn.jsonl |
900 |
评测目标
本数据集用于评测模型能否将台湾用户的自然语言表达转换为 API 可接受的参数形式,覆盖台湾本地服务(如高鐵訂票、醫院掛號、YouBike、台電帳單等)。核心衡量维度是用户表述与数据结构要求之间的转换距离,例如:
- 民國115年9月5日 →
"2026-09-05" - 兩個大人 →
passengers: 2 - 下午兩點半以後 →
"14:30" - 騎了五十分鐘 →
minutes: 50 - 民國115年6月的電費 →
"2026-06"
单轮任务(Single-turn)
单轮任务采用 Twinkle Eval 格式,字段包括 id、question、functions、answer,通过 AST 比较进行评分。包含以下类别:
- simple:400 个用例(含 200 个成对样本)
- multiple:250 个用例
- parallel:200 个用例
- parallel_multiple:200 个用例
- irrelevance:240 个用例
其中成对样本(twin pairs)包含 200 个重复项,一项带有陷阱(如民國日期写法),另一项为普通写法,用于隔离转换成本与工具调用能力本身的影响。
单轮困难任务(Single-turn hard)
该分片通过四种机制提高难度上限,每个问题仍保证唯一正确答案:
- 诱饵值(Bait values):在上下文中植入类型正确但不应作为参数的数值,配套的
single_turn_hard_bait.jsonl文件记录所有诱饵值以便计算吞没率。 - 复合陷阱(Compound traps):堆叠相对日期(如下下週五)、人员组合(兩大一小 → 3)、省略金额(一千二 → 1,200)等。
- 排除项(Exclusions):在同一句话中撤回已列举的元素(如“台南剛查過就不用了”),调用次数即为陷阱。
- 广泛工具池(Wide pools):
multiple类别的工具选择范围扩大至 14 个(原本 4–6 个)。
根据测试,最强模型在该分片的准确率从满分降至 91.8%。
多轮任务(Multi-turn)
多轮任务采用基于状态的评分方式(参考 BFCL-v3 架构),包含四个确定性模拟器(高鐵訂票、醫院掛號、YouBike、台電帳單)。类别分布如下:
- base:300 个用例
- miss_param:200 个用例
- miss_func:200 个用例
- long_context:200 个用例
评分机制:模型调用在实际模拟器上执行,每轮用户对话后比较状态与 ground-truth 调用产生的状态。状态是唯一评判标准——额外的只读调用可通过,错误的状态变更调用则失败。
评判设计特点:
- 所有 ground-truth 脚本在构建时均在模拟器上运行验证,出错脚本无法进入数据集。
- 模型纠正自身错误后不再承担后续轮次的代价(canonical state)。
- long_context 填充内容为原创合成的台湾官方文体(如邻里通知、购票条款),所有数字均以工具无法接受的形式书写,避免干扰。
- 不包含任何真实个人数据:无身份证号码,电话号码使用保留格式,姓名为虚构。
与 BFCL 的关系
类别结构和评估语义遵循伯克利函数调用排行榜(BFCL)v3 架构,结果在形式上可比较。与 BFCL 非直播套件(2,190 个用例)保持类别平衡,但将 150 个 Java/JavaScript 用例替换为多轮 base 类别。所有内容(工具、场景、话语、模拟器)均为原创。
难度分析辅助数据
data/*_difficulty.jsonl记录每个用例在冻结的八模型池中被解决的模型数量。single_turn_challenge和multi_turn_challenge子集移除了所有池内模型均能正确解决的用例(成对样本保持完整),用于分析目的,分数需结合冻结模型池清单(data/challenge_manifest.json)进行解读。- 多轮任务中:107 个用例无任何模型能解决,28 个用例所有模型均能解决。
使用说明
多轮任务运行示例:
bash export OPENAI_BASE_URL="http://your-endpoint/v1" export OPENAI_API_KEY="sk-…" python code/run_toolbench_multiturn.py --model <model> --limit 24
code/ 目录仅依赖 Python 标准库。
引用方式
bibtex @misc{opentwbench2026, title = {OpenTWBench: An Open Evaluation Suite for Taiwan-Domain Knowledge}, author = {Huang, Liang-Hsun}, year = {2026}, url = {https://opentwbench.ai} }




