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

✍️ OpenClawRadar📅 Опубликовано: 2 марта 2026 г.🔗 Source
Ошибки парсера LM Studio нарушают вызов инструментов и логику Qwen3.5.
Ad

Проблемы парсера 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 происходит до того, как ответ достигнет любого клиента.

Ad

Взаимодействие ошибок

Это не независимые проблемы. Они взаимодействуют, создавая системные проблемы с вызовом инструментов и рассуждениями в LM Studio.

📖 Прочитать полный источник: r/LocalLLaMA

Ad

👀 Смотрите также

PeaDB: Совместимая с Redis база данных, написанная на C++20 с помощью ИИ-ассистентов
Инструменты

PeaDB: Совместимая с Redis база данных, написанная на C++20 с помощью ИИ-ассистентов

Разработчик создал PeaDB — замену Redis 7.2.5, написанную на C++20 с использованием Codex, Copilot и Claude, реализующую около 147 команд с поддержкой сохранения данных, репликации и кластеризации. Бенчмарки показывают производительность, близкую к Redis.

OpenClawRadar
Переписанные навыки программирования Карпати для бесплатного плана открывают дисциплину кодирования Claude без Pro
Инструменты

Переписанные навыки программирования Карпати для бесплатного плана открывают дисциплину кодирования Claude без Pro

Пользователь Reddit адаптировал руководство по дисциплине кодирования Карпати для бесплатного плана Claude, удалив зависимости от терминала и подагентов. Системный промпт автоматически срабатывает на запросы кода и стимулирует мышление, ориентированное на проверку.

OpenClawRadar
Loom: Локальный исполнительный механизм для сложных задач искусственного интеллекта
Инструменты

Loom: Локальный исполнительный механизм для сложных задач искусственного интеллекта

Loom — это открытый локальный исполнительный фреймворк, предназначенный для управления сложными задачами. Он предоставляет структурированный процесс с примерно 50 инструментами, системой плагинов пользовательских пакетов для повторяющихся рабочих процессов, а также интерфейсы CLI и MCP-сервера.

OpenClawRadar
LumaBrowser: Браузер на Electron передает парсинг DOM локальным LLM для AI-агентов
Инструменты

LumaBrowser: Браузер на Electron передает парсинг DOM локальным LLM для AI-агентов

LumaBrowser — это браузер на основе Electron, который перекладывает парсинг DOM на локальные LLM через совместимые с OpenAI конечные точки, помогая автономным агентам избежать обработки сырого HTML. Он использует такие модели, как варианты Qwen 2.5, для идентификации элементов интерфейса и возвращает CSS-селекторы.

OpenClawRadar