Исправления вызова инструментов Qwen 3.5 для агентского использования: статус сервера и обходные решения на стороне клиента

Ошибки вызова инструментов в агентских настройках Qwen 3.5
При запуске моделей Qwen 3.5 в агентских средах, таких как кодирующие агенты или циклы вызова функций, четыре конкретные ошибки могут привести к полному сбою вызова инструментов.
Четыре основные ошибки
- Утечка XML-вызовов инструментов в виде обычного текста: Qwen 3.5 выводит вызовы инструментов в формате XML (например, <function=bash><parameter=command>ls</parameter></function>). Когда серверы не могут распарсить это — особенно если перед XML есть текст или включено мышление — вызов инструментов приходит как сырой текст с finish_reason: stop, поэтому ваш агент никогда его не выполняет.
- Теги <think> просачиваются в текст и портят контекст: llama.cpp принудительно включает thinking=1 внутренне, независимо от enable_thinking: false, что приводит к накоплению тегов между повторами и разрушает многоходовые сессии.
- Неправильный finish_reason: Серверы отправляют "stop", когда присутствуют вызовы инструментов, заставляя агентов воспринимать это как окончательный ответ.
- Нестандартный finish_reason: Некоторые серверы возвращают "eos_token", "" или null, что приводит к сбою большинства фреймворков на неизвестном значении до проверки наличия вызовов инструментов.
Статус серверов (апрель 2026)
Источник предоставляет подробную таблицу статуса для основных серверов вывода:
- LM Studio 0.4.9: Лучший локальный вариант для парсинга XML (исправлено в v0.4.7), улучшена обработка утечек мышления, обычно правильный finish_reason.
- vLLM 0.19.0: Работает с флагом --tool-call-parser qwen3_coder, существуют ошибки стриминга, утечка мышления исправлена, обычно правильный finish_reason.
- Ollama 0.20.2: Улучшено после исправления ошибки незакрытого </think>, всё ещё ненадёжно в парсинге XML, иногда неправильный finish_reason.
- llama.cpp b8664: Парсер существует, но не работает при включённом мышлении, утечка мышления не исправлена, неправильный finish_reason при сбое парсера.
Рекомендуемые решения
Используйте Unsloth GGUFs вместо стандартных шаблонов Jinja Qwen 3.5, которые имеют известные проблемы с фильтром |items, не работающим на аргументах инструментов. Unsloth поставляется с 21 исправлением шаблонов.
Добавьте клиентскую страховочную сеть с тремя небольшими функциями, которые ловят то, что пропускают серверы. Источник предоставляет первую функцию:
import re, json, uuid
1. Парсинг XML-вызовов инструментов Qwen из текстового содержимого
def parse_qwen_xml_tools(text):
results = []
for m in re.finditer(r'<function=([\w.-]+)>([\s\S]?)</function>', text):
args = {}
for p in re.finditer(r'<parameter=([\w.-]+)>([\s\S]?)</parameter>', m.group(2)):
k, v = p.group(1).strip(), p.group(2).strip()
try:
v = json.loads(v)
except:
pass
args[k] = v
Эта функция извлекает вызовы инструментов из текстового содержимого, когда серверы не могут правильно распарсить XML, предоставляя механизм отката для агентских рабочих процессов.
📖 Прочитать полный источник: r/LocalLLaMA
👀 Смотрите также

Ошибка службы виртуальной машины Windows Cowork: проблема с путем и исправление
Проблема с установкой Windows Cowork вызывает ошибку 'Служба VM не запущена' каждые 10-20 минут из-за неправильного пути к папке vm_bundles в установках MSIX. Исправление включает поиск правильной папки и использование скрипта восстановления.

OpenClaw 101: полное руководство по настройке для новых пользователей

Практическое руководство по самостоятельному размещению вашей первой языковой модели (LLM)
В посте на Reddit перечислены причины для самостоятельного хостинга языковых моделей, включая конфиденциальность для чувствительных данных, предсказуемость затрат для агентских рабочих нагрузок, улучшение производительности за счёт исключения API-запросов и кастомизацию через методы тонкой настройки, такие как LoRA и QLoRA.

Интерактивные объяснительные карты: проектирование циклов агентов Claude Code от одиночных вызовов до самомутирующих промптов
Интерактивный сайт, созданный с помощью Opus 4.7, визуализирует 11 реальных дизайнов циклов агентов для Claude Code: от базовых вызовов до агентов, которые переписывают собственные промпты, с SVG-анимациями, показывающими механизмы памяти и циклов.