26 октября 2026 г.
--tool-strict-level в vLLM: точность схемы тул-коллов Kimi выросла с 92% до 100%
Kimi K2.6 на vLLM 0.28 портил схему в 2 вызовах инструментов из 25. Один флаг при запуске сервера довёл точность до 100%.

2 из каждых 25 вызовов инструментов у Kimi K2.6 приходили с поломанной схемой.
Так работал не Kimi, а сервер. Хостинг Ubicloud держал модель на vLLM 0.28, где генерацию никто не заставляет держаться схемы тула, и схемная точность стояла на 92%. Инженеры Ubicloud включили constrained decoding для Kimi K2.6 и DeepSeek V4 Flash и получили 100% по всем обслуживаемым версиям.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
Как включить. На vLLM 0.31 и выше сервер поднимается командой `vllm serve ... --tool-strict-level parameter`: значение `parameter` пришпиливает схему аргументов, как если бы у каждого тула стоял `strict: true`. Ниже 0.31 чинить нечем, флаг приехал в релизе 0.31.0 от 5 октября 2026.
У флага есть два других значения. `function` жёстко фиксирует оболочку вызова и имя функции для любого запроса с тулами, `auto` берёт ограничения из tool_choice и поля strict каждого тула. Не задали флаг, работает дефолт парсера: `function` для glm47 и `auto` для остальных.
Раньше для Kimi то же поведение добывалось правками кода и своей сборкой vLLM, конфигом не чинилось. Сам constrained decoding живёт в vLLM с версии 0.25 на structural tags из XGrammar, но выключен по умолчанию. Когда мейнтейнеры включили его всем подряд, схемы разошлись у gpt-oss-20b, Qwen 3.6 и GLM 5.1.
Поэтому флаг не ставят вслепую. Moonshot AI рекомендует держать constrained decoding включённым для Kimi и сама так обслуживает модель, а для Qwen 3.8 такой рекомендации нет. Jesse Donkervliet, инженер Ubicloud, который и ловил эти промахи схемы, советует замерить общее качество модели с флагом и без него.
Чем мерили. Ubicloud прогнал бенчмарк K2VV ToolCall на 2000 запросах, отобранных под генерацию тул-коллов, и выкатил изменение в прод после 100% на всех обслуживаемых версиях. Сам K2-Vendor-Verifier от Moonshot AI гоняет 4000 запросов, половина выложена публично, и считает две метрики: срабатывание тул-колла и точность схемы. По K2-thinking официальный API Moonshot даёт 100%, сторонние провайдеры разбросаны от 84,63% до 100%.
Со speculative decoding флаг совместим и заметного оверхеда не даёт: маски токенов считаются заранее и применяются на GPU, а спекулятивные токены, запрещённые грамматикой, просто отбрасываются. На кривую интеграцию в vLLM открыты issue #44006 и #55152 про ошибочное отклонение таких токенов.
Синтаксис не смысл. Грамматика гарантирует форму вызова, а не содержание: модель выдаёт валидный JSON с бессмыслицей, а генерацию, загнанную в угол длинной JSON-строкой, грамматика завершает принудительно и портит ответ. Комментаторы в треде Hacker News предлагают другой путь. Ретрай тул-колла целиком тоже даёт 100% и не засоряет контекст.
Дефолт vLLM менять не стали: constrained decoding остаётся ручным флагом, пока расхождения схем у других моделей не закрыты.
* Meta Platforms Inc. признана в РФ экстремистской организацией, её деятельность запрещена; Facebook и Instagram заблокированы. Meta AI и другие продукты компании — продукты этой организации.
Первоисточник