AI百科网 AI教程
工具库

vLLM 工具调用不准,病灶在解析这一层

Ubicloud 工程师复盘:vLLM 服务 Kimi 时工具调用格式符合率只有 92%,问题出在模型按概率生成、没有格式约束。开启受限解码后升到 100%。本文讲清出错机制和部署时该开哪个开关。

本文目录 · 6 节

同一份开放权重模型,换一家推理服务商跑,agent 的成功率就掉了——很多人第一反应是模型不行,其实引擎的锅不少。

一、发生了什么

Ubicloud 的两位工程师 10 月 20 日发文复盘了这问题。他们用 vLLM 服务 Kimi K2.6 时,发现工具调用符合预期格式的比例只有 92%——平均每 25 次调用就有 2 次格式是坏的。对多轮 agent 来说,坏调用会产生报错信息污染上下文,模型接着在垃圾上下文上继续推理,质量滑坡,还得多花重试的钱。

根子在生成机制本身。模型是按概率挑下一个 token 的,它不是编译器,也没有类型检查。哪怕提示词写得再清楚,它也可能生成训练时见过的工具名或字段名,而不是当前环境里真实存在的那个——比如环境里叫检索的函数,它偏偏用了训练数据里另一个写法。

修复靠的是受限解码:推理引擎在每一步采样时,只放行符合工具 schema 的 token,不合法的路径直接被屏蔽。模型仍然自己决定「做什么」,但「怎么写」被运行时锁死。实现层面借的是一个开源结构化生成库的「结构化标签」机制:先按工具的格式定义出合法路径——开始调用、工具名、序号、参数、结束——再在生成时逐步做遮罩,比如到了序号阶段就只允许整数 token 通过。由于遮罩可以预先计算、在显卡上高效施加,官方称这套运行时保障几乎不付出性能代价。这个特性先进入 vLLM 的代码,之后以服务端开关的形式发布,开启后 Ubicloud 测得格式符合率从 92% 升到 100%,覆盖 Kimi 和 DeepSeek 的新模型。

二、跟你有什么关系

自建推理服务的人:模型分数和你的线上表现之间隔着一个引擎配置层,跑 agent 业务前先把这一层校准,比换模型便宜得多。

用第三方 API 的:服务商没开格式约束的话,你多付的是隐形重试成本,可以用小流量对照测试再决定留在哪家。

模型评测者:跑分前先确认推理配置和官方一致,否则测出来的差距可能是引擎造成的,与模型无关。

三、怎么排查

读到这儿,可以顺路看 英伟达用 AI 写的一万二千行,没人逐行审 英伟达工程师用一万二千行融合内核,把 Kimi K3 的解码速度提了一截,代码大部分由 agent 辅助完成。这篇讲清提升从哪来,以及"审查跟不上生成"这件事意味着什么。
  1. 先跑格式符合率测试。Moonshot 发布的厂商验证基准专门测这个,2000 条请求,分「何时触发调用」和「格式是否合规」两个维度。
  2. 查引擎版本和开关。格式约束相关的能力在 vLLM 新版里以服务端标志提供,确认自己有没有开。
  3. 注意默认值。因为要兼容大量模型,vLLM 后来把默认行为改回了不开启——部分模型开启会出问题,需要用严格级别标志手动打开。
  4. 改完重跑基准,验证达标再上生产。

四、三个别信的说法

模型官方榜单分高,服务质量就一定高。 榜单分是模型能力,格式符合率还取决于引擎解析层,两者要分开测。

开格式约束没有代价。 对个别模型,强行屏蔽合法路径之外的 token 反而把生成带偏,还出现过约束解码与其他加速特性冲突的缺陷,这也是它没被设为全局默认的原因。

解析层的小错无所谓。 一次坏格式就是一轮报错加一次重试,多轮 agent 里会滚雪球,92% 和 100% 的差距在长任务里被放大得很明显。

五、一句话结论

agent 掉链子时,先别急着骂模型,看看推理引擎有没有把格式这一关守住。

信息来源

功能与价格以官方公告为准。本文写于 2026 年 10 月 27 日。

下一站 · 产品动态 Cursor 把造 agent 的工序做成了产品 Cursor 开放了内部自用的 Agent SDK,把 agent 写成仓库里的文件,带评测、事件回放和一条命令部署。这篇讲清它的组织方式、适合谁用,以及"内置评测"到底是什么意思。
下一篇,直接发你邮箱

每周一封,只发新教程和可复制模板。不发广告,随时退订。

复制规范引用格式,便于转载注明出处
这篇有用吗?