SeraphimSerapis/tool-eval-bench

Tool-calling quality benchmark for LLM serving stacks. 80+ deterministic scenarios testing multi-turn orchestration, safety boundaries, and structured output. Supports vLLM, SGLang, and llama.cpp.

Tool‑Eval‑Bench – LLM工具调用基准测试


概述与目标

Tool‑Eval‑Bench 是一个基准测试套件,用于衡量大型语言模型(LLMs)在单一助手对话工作流中调用外部工具的能力。它面向运行自托管推理服务器(如vLLM、llama.cpp、SGLang、LiteLLM、TensorFold等)或托管API(如Gemini、Anthropic)的开发者,提供一种可重复的方式来比较工具选择、参数传递、链式调用、错误恢复、安全性和本地化方面的性能。

核心功能

功能 内容 位置
质量基准测试 69个确定性场景(外加28个可选的硬核模式对抗性案例),覆盖52个工具命名空间、多步链、拒绝、安全检查、本地化(以德语为重点)等。 run 命令
吞吐量和速度 预填充和生成速度测试(llama-bench风格),包含深度和并发扫描;投机解码指标。 bench 命令
长上下文检索 多种上下文长度下的“大海捞针”测试,报告有效上下文长度。 needle 标志
上下文压力 在每个场景前改变预填充上下文量,观察质量下降点。 context‑pressure 标志
准确性套件 通过相同的OpenAI兼容适配器运行GSM8K、MMLU和IFEval。 plugin 命令
决策模型审计 可选的辅助模型审计助手回答(概率、一致性)。 --decision‑judge 标志
持久化工件 带有完整对话追踪的Markdown报告和SQLite数据库。 runs/…/*.md 和 data/benchmarks.sqlite
CLI和API 完整的命令行界面;Python异步API(run_benchmark)。 tool‑eval‑bench 可执行文件和 tool_eval_bench.api
后端自动检测 通过头部信息、/health、/props等自动检测vLLM、llama.cpp、TensorFold、Strata、TabbyAPI等。 在run/probe期间自动
配置指纹 捕获版本、模型、上下文窗口、量化、GPU数量、投机模式等,确保公平的排行榜比较。 存储在运行元数据中

使用方法(快速入门)

# 通过uv(或Docker)安装
uv tool install git+https://github.com/SeraphimSerapis/tool-eval-bench.git
# 对本地服务器运行短的15个场景套件
 tool-eval-bench run --short --base-url http://localhost:8000
# 完整基准测试(69个场景) – 可复现的种子
 tool-eval-bench run --seed 42
# 添加硬核模式和性能测试
 tool-eval-bench run --hardmode --perf --seed 42
# 查看历史运行或排行榜
 tool-eval-bench history
 tool-eval-bench leaderboard

环境变量(TOOL_EVAL_*)或.env文件可用于存储URL、API密钥和模型名称,以便重复A/B测试。

分数含义

  • 每个场景得分2(通过)、1(部分)或0(失败)。综合得分是获得点数的百分比。
  • 评估星级:
    • 90‑100% → ★★★★★ 优秀
    • 75‑89% → ★★★★ 良好
    • 60‑74% → ★★★ 合格
    • 40‑59% → ★★ 较弱
    • 0‑39% → ★ 差
  • 安全违规可能会将等级限制为★★★,无论原始得分如何。
  • --weight-by-difficulty 对较难场景重新加权以计算替代分数。

适用场景

  • 模型开发者:在发布新检查点之前,需要具体、可重复的指标来评估工具调用能力。
  • 运维团队:在相同工作负载下比较自托管后端(如vLLM vs. llama.cpp vs. TensorFold等)。
  • 研究:研究提示策略、系统提示调整或投机解码对工具使用的影响。
  • CI流水线:可以通过--fail‑on‑safety在安全回归时使构建失败。

限制与范围

  • 专注于使用模拟工具的单一助手对话,不评估多智能体系统、委派或长期运行的自主体。
  • 当前本地化以德语为中心,其他语言默认不支持。
  • 难度等级是作者估计,未基于大规模模型集合进行校准。
  • 模拟工具响应包含现实噪声,但仍然是模拟的,不是真实的外部API。

以上所有信息均直接取自仓库的README,未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch