Tool-Call Accuracy(工具调用准确率),衡量的是模型在需要调用外部函数时,究竟有多少次"叫对了工具、填对了参数"。它是 AI 词典:Function Calling">Function Calling(函数调用)能力的量化指标,比模型能否输出一段合法 JSON 更贴近真实业务。
拆开看,它其实是三道关
一次成功的工具调用要连过三关,任何一关失手都算一次失败:
| 环节 | 典型错误 | 生活化对应 |
|---|---|---|
| 调用时机 | 本该查库存却凭记忆瞎答,或闲聊时乱调工具 | 该打电话确认却自己拍脑袋 |
| 工具选择 | 有 search_order、search_user 两个工具,选错 | 拿病历本去取快递 |
| 参数填写 | 工具对了,但城市写成"北京"而用户要的是"北京朝阳",或漏了必填时间范围、类型写成字符串 | 单子填对了,备注写错 |
| 结构合法 | 输出不是合法 JSON,或不符合工具的 JSON Schema | 表格格式不规范,系统录不进去 |
关键在于:前三关是语义正确,最后一关只是格式正确。一段完美的 JSON 里填了个错订单号,格式分满分,业务分零分。所以成熟的评测会把"解析成功率"和"语义准确率"分开统计,像漏斗一样逐层看流失。
打个比方
就像餐厅点单:客人说"少冰、不加糖的冰美式"。服务员要写对菜名(选工具)、写对两条备注(填参数)、并且真的把单子递进后厨(调用时机)。写错菜名和漏写备注,对客人的伤害是一样的;而单子字迹潦草到后厨看不懂,属于格式问题——一种更"低级"但同样致命的失败。
和几个近邻的区别
- 和 Answer Accuracy(答案准确率):后者是端到端指标。工具调用对了答案未必对(工具本身返回错数据),但工具调用错了答案几乎必错,所以前者更适合定位问题。
- 和 JSON Schema 合规率:合规只是入场券,不保证选对、填对。
- 和 Hallucination Rate(幻觉率):幻觉是"编",工具调用错误是"做错"。一个爱编造的模型往往会跳过工具直接答。
vLLM 这条链路上的三个影响点
在 vLLM 这类推理引擎里,有三处会直接影响这个指标:
1. 工具解析(tool parser)。模型输出的是文本,解析器负责把它变成结构化的 tool_calls。解析器和模型输出的格式风格不匹配时,模型明明想调工具,却被当成普通回答丢掉——准确率凭空下跌,且很难从日志看出来。
2. 约束解码(guided / structured decoding)。用语法或 JSON Schema 约束采样,能显著提高"结构合法"这一关的通过率。但它只约束 token 层面的形状,管不了你选哪个工具、填什么值;约束过紧还可能挤压模型的思考空间。格式对了、语义仍错,是常见组合。
3. 回归测试。换模型、换解析器、改 chat template、升级引擎、调整系统提示词、开关约束解码——任何一项变动都可能悄悄拉低准确率。需要一套固定用例集,且必须包含难例:多个高度相似的工具、超长 ID 类参数、需要引用上一轮结果的调用。以官方文档为准确认解析器与模型的适配关系。
对你意味着什么
如果你是做 Agent 的从业者,这个指标应当取代"模型榜单分数"成为你的主看板,并且按上面三道关分层统计,才能知道该改提示词、改工具描述,还是加参数校验。
如果你只是使用者,看到智能助手办错事时,先分清是"选错工具"还是"填错参数"——前者通常要改工具说明和示例,后者加一道人工确认就能挡住大部分损失。
