Inference Notes · 论文精读

English

← 全部笔记

Measuring the Serving Stack Instead of the Model: Hidden Confounds in Local Tool-Use Evaluation

Lijuan Tang, Yuemeng Zheng · Northeastern University, Seattle

在解决本地服务栈在模型运行前拒绝或修改请求,在工具调用评估中产生了未知的混淆,导致评估者将基础设施故障误认为模型能力不足。

结论论文证明了 0% 的工具调用率通常是服务栈的假象,而非模型本身能力的缺失。然而,该测量受到极小分母和高方差的限制,这意味着这些数据仅能凸显服务层的混淆,而无法用于可靠地对模型能力进行排名。

AgentInference
发表 · arXiv 2609.26693 · 代码
精读于2026-09-23
可信度对机制和测量警告的置信度高,但作者明确表示其结果不支持跨模型的能力排名。
阅读范围Full LaTeX source, all 1 files incl. appendix given in full; 2 of 2 figures viewed by the reader
精读Gemini 3.1 Pro · 经独立审校

1. 任务

这篇论文在解决什么具体问题(输入,输出,场景)。 本文调查了本地服务栈(如 Ollama, llama.cpp, vLLM, SGLang)如何在请求传递给模型之前,评估和处理编码智能体的工具调用请求。在标准的本地智能体设置中,测试框架(harness)发送包含提示词和工具模式(tools=)的请求。服务层必须路由此请求,对其进行格式化,并将响应解析为结构化的 tool_call

为什么这个问题很重要,难点在哪里。 这个协议步骤至关重要,但往往与模型自身能力相混淆。如果服务端无法处理 tools= 请求或未能解析出有效的模型输出,通常会向测试框架返回一个错误字符串。典型的基于轮次(per-turn)的分析会将这些传输错误读取为模型的普通非调用响应,从而导致测量的无声污染。当中间软件层独立于模型权重修改或拒绝请求时,很难评估真正的模型能力。

前人的方法是怎么做的,哪里不足。 之前的基准测试(如 BFCL)评估了函数调用,但并未将服务接口本身视为实验变量。智能体测试框架通常会记录助手的消息流,但未能保留结构化的错误元数据(如 HTTP 400 拒绝)。因此,当评估 Phi-3 或 Gemma-3 等模型时,它们可能得分为 0% 保真度(fidelity),这并非由于能力不足,而是因为服务层完全拒绝了其原生工具调用请求,而以往的基准测试未能隔离这一问题。

2. 核心思路

核心洞察在于,在本地工具调用评估中,决定工具调用请求是否成功的不仅是模型,还包括服务栈。通过分离工具通道(原生 tools= 与文本提示词)并探究不同的服务端点,作者表明“0% 的工具调用能力”往往意味着服务层直接拒绝了请求或解析失败,从而将基础设施的故障错误归咎于模型无能。

3. 机制 + 心智模型

论文在一个固定的聚合任务(每个模型 8 个种子)上使用三种配置隔离了服务层混淆:

  1. Native(原生): 测试框架发送默认的 tools= 请求。Ollama 会按模型对该请求进行门控拦截(例如,Llama-3.2 获得原生调用;Qwen 返回文本;Phi-3/Gemma-3 直接被拒绝并返回 HTTP 400)。
  2. Native+hint(原生+提示): 依然发送 tools=,但在提示词中注入纯文本工具列表和明确的 JSON 格式。
  3. Text-tools(纯文本工具): 丢弃 tools= 参数;提供统一的文本引导,从文本中解析调用。

心智模型: 服务层是一个不透明的守门员:如果模型不在服务端原生工具支持的 VIP 列表中,请求在到达权重之前就会被弹回,但测试框架却将其记录为模型主动选择不调用任何工具。

4. 指标 / 数据集

5. 对比 baseline

论文没有提出新模型或方法,而是比较了标准服务配置与对照组。

6. 开源

代码开源地址:https://github.com/LijuanTang94/serving-confound-repo

7. 关键数字核实

说法 出处 实际条件 成立? 备注
Phi-3 和 Gemma-3 因原生拦截报告为 0% §1, §4, Table 1 Ollama native FC 100% 的轮次都是被拒绝的 HTTP 400 请求。这特定于所测试的 Ollama 版本 (0.30.8)。
对接受请求的模型,在原生通道加文本提示可恢复大部分保真度 §4, Fig 3, Table 1 Qwen 0.5B-14B, Llama-3.2 per-seed 成功率从 0-60% 跃升至 35-89%。提升显著,尽管绝对数值有噪声。
统一纯文本协议降低了 Llama-3.2 的保真度 §4, Fig 3, Table 1 Llama-3.2-3B 从 82% (native+hint) 降至 44% (text-tools),因为纯文本丢弃了其原生支持。
轮次池化 (Turn-pooled) 与单种子 (per-seed) 估计差异达约 55 个点 Abstract, §4, Table 1 Qwen-0.5B text-tools ⚠️ 确实存在约 55 个点的最大差异,但这是一个由弱模型单次 41 轮死循环导致的极端离群值,而非典型方差。
受限解码消除了协议错误但引发了不终止问题 §4 所有 9 个本地模型 ⚠️ 单步有效率 100% 适用于所有 9 个模型,但在智能体运行中 600-900 轮次的无限循环仅发生在较弱的模型上,而非全部。
被 Ollama 拒绝的相同权重可以在 llama.cpp 上运行 §4, Table 2 Phi-3, Gemma-3 llama.cpp 以 200 text/native 处理了请求。

8. 摘要没说的

9. 可达性与启发

10. 置信度与下一步

11. 审校记录