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 は、大規模言語モデル(LLM)が単一アシスタント会話ワークフローで外部ツールを呼び出す能力を測定するベンチマークスイートです。自己ホスト型推論サーバー(vLLM、llama.cpp、SGLang、LiteLLM、TensorFoldなど)や、GeminiやAnthropicなどのホスト型APIを運用する開発者を対象とし、ツール選択、パラメータ受け渡し、チェーン、エラー回復、安全性、ローカライゼーションのパフォーマンスを再現性のある方法で比較できます。

主な機能

機能 内容 場所
品質ベンチマーク 52のツール名前空間、多段チェーン、拒否、安全性チェック、ローカライゼーション(ドイツ語中心)などをカバーする69の決定的シナリオ(オプションの28のハードモード対抗ケースを含む)。 run コマンド
スループットと速度 プレフィルおよび生成速度テスト(llama-benchスタイル)で、深さと並行数のスイープ、投機的復号メトリクスを提供。 bench コマンド
長文脈検索 複数の文脈長での針探しテスト。実効文脈を報告。 needle フラグ
文脈圧力 各シナリオ前に事前入力文脈を変化させ、品質がどこで低下するか確認。 context‑pressure フラグ
精度スイート GSM8K、MMLU、IFEvalを同じOpenAI互換アダプタで実行。 plugin コマンド
決定モデル監査 オプションのセカンダリモデルがアシスタントの回答を監査(確率、一致)。 --decision‑judge フラグ
永続化アーティファクト 完全な会話トレース付きMarkdownレポートとSQLite DB。 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