Ошибки парсера LM Studio нарушают вызов инструментов и логику Qwen3.5.

Проблемы парсера LM Studio, влияющие на модели с рассуждениями
Парсер сервера LM Studio содержит несколько ошибок, которые мешают вызову инструментов и рассуждениям в таких моделях, как Qwen3.5 и DeepSeek-R1. Эти проблемы могут создавать впечатление, что модели сломаны, хотя проблема на самом деле в парсере.
Ошибки
1. Парсер сканирует внутри блоков <think> в поисках паттернов вызова инструментов
Когда модели с рассуждениями размышляют о синтаксисе вызова инструментов внутри своих блоков <think>, парсер LM Studio воспринимает эти упоминания в тексте как реальные попытки вызова. Это создает рекурсивную ловушку: модель рассуждает о вызовах инструментов, парсер находит похожие на вызов токены в размышлениях, разбор завершается ошибкой, ошибка передаётся обратно модели, и цикл повторяется.
Модель буквально не может отладить проблему с вызовом инструментов, потому что описание проблемы воспроизводит её. Одна модель прямо сказала: «Я попадаю в цикл, где мои мысли о синтаксисе вызова инструментов интерпретируются как реальные маркеры вызова» — и само это предложение запустило парсер.
Об этом впервые сообщили в задаче #453 в феврале 2025 года, и она остаётся открытой более года спустя.
Обходное решение: Отключите рассуждения с помощью {%- set enable_thinking = false %}. Это мгновенно исправляет проблему, позволяя успешно выполнить 20+ последовательных вызовов инструментов.
2. Регистрация второго сервера MCP ломает разбор вызовов инструментов для первого
Эта ошибка чистая и детерминированная. Тестирование с lfm2-24b-a2b при temperature=0.0 показывает:
- Активен только сервер KG: Модель правильно вызывает
search_nodes, парсер распознаёт токены<|tool_call_start|>, инструмент выполняется, результаты возвращаются. Работает идеально. - Добавьте сервер webfetch (даже не вызывая его): Модель выводит
<|tool_call_start|>[web_search(...)]<|tool_call_end|>как обычный текст в чате. Специальные токены больше не распознаются. Инструмент никогда не выполняется.
Одна лишь регистрация второго сервера MCP — без его вызова — меняет то, как парсер обрабатывает вызовы инструментов первого сервера. Та же модель, тот же промпт, тот же целевой сервер. Изменилась одна переменная.
Обходное решение: Регистрируйте только тот сервер MCP, который вам нужен для каждой задачи. Это непрактично для агентских рабочих процессов.
3. Разделение reasoning_content/content на стороне сервера приводит к пустым ответам, которые сообщают об успехе
Это затрагивает всех, кто использует модели с рассуждениями через API, независимо от использования вызова инструментов. При отправке простого промпта Qwen3.5-35b-a3b через /v1/chat/completions с просьбой перечислить XML-теги, используемые для рассуждений, сервер вернул:
{
"content": "",
"reasoning_content": "[3099 токенов детальных размышлений]",
"finish_reason": "stop"
}
Модель проделала обширную работу — 3099 токенов рассуждений — но попала в цикл обдумывания внутри <think> и так и не сгенерировала вывод в поле content. Сервер вернул finish_reason: "stop" с пустым content, сообщая об успехе.
Это означает:
- Каждый набор тестов, проверяющий
finish_reason == "stop", молча принимает пустые ответы - Каждая агентская платформа передаёт пустые строки дальше по цепочке
- Каждый пользователь видит пустой ответ и делает вывод, что модель сломана
- Настоящие рассуждения заперты в
reasoning_content— модель проделала реальную работу, которую никто не видит, если явно не проверит это поле
Это проблема на стороне сервера, а не ошибка интерфейса, что подтверждается проверкой сырого ответа API и лога сервера LM Studio. Разделение reasoning_content/content происходит до того, как ответ достигнет любого клиента.
Взаимодействие ошибок
Это не независимые проблемы. Они взаимодействуют, создавая системные проблемы с вызовом инструментов и рассуждениями в LM Studio.
📖 Прочитать полный источник: r/LocalLLaMA
👀 Смотрите также

Открытый PR-агент ревью PrixAI обнаруживает 10/10 внедрённых багов в 6 раз дешевле CodeRabbit
Пользователь Reddit создал PrixAI — агента для проверки PR с открытым исходным кодом, который использует локальные/дешевые модели вывода, чтобы соответствовать функциям CodeRabbit при стоимости в 6 раз ниже, обнаружив все 10 намеренно внесенных проблем в тестовом PR.

engram v3.4.0 добавляет плагин Anthropic для поддержания работы Claude Code в условиях новых лимитов скорости
engram v3.4.0 представляет выделенный плагин Anthropic для Claude Code, добавляющий три навыка для управления затратами, запроса контекста и выявления ошибок. Установите с помощью `/plugin install engram` или `npm install -g engramx@latest`.

Бесплатный Волшебник переносит историю ChatGPT в проекты Claude — Ключевые уроки по лимитам токенов и RAG
Бесплатный инструмент без кода переносит экспорт ChatGPT в проекты Claude, показывая, что 26 МБ JSON достигает лимита токенов, а разбивка по темам — это решение. RAG от Claude читает только части больших файлов, поэтому лучше всего работают конкретные запросы.

В шаблонах рабочих процессов Claude шаблон передачи задач: разделение на два файла против сводки одного документа
Длительные сессии с Claude страдают от потери контекста. Handoffs сжимают важное и начинают заново. Два подхода: навык handoff Мэтта Покока в одном документе и разделение на два файла с постоянным повествованием и временным промптом.