GOCLAWAGENT EVALUATION
GoClaw 首页

28. ToolBench、StableToolBench 与 BFCL:如何评 Function Calling

Benchmark 专题 · 4~6 小时

学习目标

  1. 区分 Function Calling、Tool Learning 与完整 Agent Eval
  2. 理解 API 不稳定对 Benchmark 的破坏
  3. 认识 AST、Execution 与多轮工具评测

前置知识

本章产物: 建立一个 Tool Benchmark 小集并分别做 AST 与执行评分。

28.1 Function Calling 是 Agent 的重要组件,但不是整个 Agent

ToolBench、BFCL 等主要回答:

模型是否能选择函数并构造正确调用?

完整 Agent 还包括用户交互、政策、长期状态和恢复。

所以可以把 Function Calling Benchmark 放在 Component Eval 层。

28.2 ToolBench

ToolLLM/ToolBench 的重要价值:

它推动了 Tool Use 评测规模化。

28.3 真实 API 的不稳定

如果第三方 API:

你会把环境变化误判为模型 Regression。

StableToolBench 的核心就是针对这一问题,引入 virtual API server、cache 和更稳定评估。

28.4 BFCL

BFCL 重点评函数调用能力,并持续发展多轮、多步 function calling。

值得借鉴:

28.5 Component → E2E

推荐测试层:

Layer A: JSON/AST correctness
Layer B: function execution
Layer C: multi-tool task
Layer D: final environment state
Layer E: user/policy interaction

不要只跑 BFCL 高分就宣布 Agent 产品可靠。

28.6 Tool Set Perturbation

真实系统会不断新增工具。

回归集要测:

3 tools
20 tools
100 similar tools

工具集扩大可能明显降低 selection robustness。

28.7 验收问题


本章依据

  1. ToolLLM / ToolBench — Qin et al., 2023
  2. StableToolBench — Guo et al., 2024
  3. The Berkeley Function Calling Leaderboard — Patil et al., ICML 2025