Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Рейтинг: 20.7% · 1 голосов
Запуск больших языковых моделей локально: Llama, Mistral, Qwen, DeepSeek, Gemma. Квантизация GGUF, Ollama, llama.cpp, vLLM, LM Studio, выбор GPU и оптимизация инференса.
Ответить
Аватара пользователя
svelteandy
Сообщения: 24
Зарегистрирован: 16 май 2026, 03:53

Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение svelteandy »

Пилю агента на локальной модели. Требование заказчика, контур закрытый, облака запрещены, так что без советов взять клода. Сетап: свежий llama.cpp server, пробовал Qwen3.5-14B, 35B-A4B и Mistral Small 3.2. Инструментов шесть штук: поиск по базе, калькулятор смет, выгрузка карточки клиента и тд.
Первые один-два вызова отрабатывают чисто. А на третьем-четвёртом шаге цепочки начинается цирк: то JSON с комментарием внутри, то кавычки экранированы где не надо, то модель зовёт инструмент, которого не существует, склеив имя из двух настоящих. Включаю grammar через json_schema, валидность становится стопроцентной, но аргументы внутри превращаются в бред. Формально всё ок, по сути мусор.
В облаке такой боли нет вообще. Кто гоняет агентов на локалках, чем стабилизировали?
👍1 ❤️ 🔥 😄 🤔
✔ Лучший ответ сформирован автоматически — coder_vlad
svelteandy писал(а):валидность становится стопроцентной, но аргументы внутри превращаются в бред самое важное наблюдение в твоём посте, и оно известное. грамматика не лечит, она маскирует: модель уже потерялась и хотела выдать мусор, грамматика просто заставила мусор быть валидным джейсоном. лечится сокращением выбора. шесть инструментов для 14B много, мелочь начинает их путать после пары шагов. …
Перейти к ответу →
Аватара пользователя
pkdunn8
Сообщения: 18
Зарегистрирован: 12 май 2026, 19:25

Re: Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение pkdunn8 »

температуру в 0-0.2 на шагах с тулзами, для финального ответа можно вернуть обратно. и проверь шаблон чата: половина проблем с тулзами в llama.cpp это кривой jinja из gguf. запускай с --jinja и смотри, что реально уходит в модель. у меня квен ломал вызовы ровно до момента, когда я подменил шаблон на родной из репы модели
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
kube6
Сообщения: 13
Зарегистрирован: 12 май 2026, 10:58

Re: Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение kube6 »

vllm + структурный вывод, и не мучайся. tool calling в llama.cpp это вечная лотерея, каждый второй релиз что-то чинит и что-то ломает
👍2 ❤️ 🔥1 😄 🤔
Аватара пользователя
coder_vlad
Сообщения: 72
Зарегистрирован: 11 май 2026, 01:57

Re: Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение coder_vlad »

✔ Лучший ответ — сформирован автоматически
svelteandy писал(а):валидность становится стопроцентной, но аргументы внутри превращаются в бред
самое важное наблюдение в твоём посте, и оно известное. грамматика не лечит, она маскирует: модель уже потерялась и хотела выдать мусор, грамматика просто заставила мусор быть валидным джейсоном. лечится сокращением выбора. шесть инструментов для 14B много, мелочь начинает их путать после пары шагов. сделай роутер: первый вызов выбирает ветку из 2-3 инструментов, дальше модель видит только их. у нас после такой перестройки доля битых вызовов упала с 15 процентов до полутора
👍1 ❤️ 🔥1 😄1 🤔
Аватара пользователя
esp32_dev
Сообщения: 24
Зарегистрирован: 11 май 2026, 13:41

Re: Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение esp32_dev »

да может модель просто мелкая? на 14B агентские цепочки это боль независимо от обвязки. возьми GLM-5-Air или плотную 70B хотя бы в Q4. на мелких агенты не живут, сколько ни танцуй с грамматиками
👍 ❤️2 🔥 😄 🤔1
Аватара пользователя
pandas4
Сообщения: 36
Зарегистрирован: 15 май 2026, 08:41

Re: Tool calling на локалках: к третьему вызову модель ломает JSON, как вы с этим живёте

Сообщение pandas4 »

esp32_dev писал(а):на мелких агенты не живут, сколько ни танцуй
живут, и неплохо. у нас в проде 14B дёргает четыре инструмента, битых вызовов меньше процента. рецепт скучный: few-shot прямо в системном промпте, по два примера на инструмент, включая примеры с типичными ошибками. плюс ретрай, где текст ошибки парсера подставляется обратно в контекст. два ретрая закрывают почти всё. дорого по токенам, зато работает, и никакой 70B не нужен
👍 ❤️ 🔥1 😄 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Вернуться в «Локальные LLM и open-source модели»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость