Ошибка шаблона чата Gemma 4: Параметры инструментов с anyOf/null отображаются как пустой тип

Пользователь Reddit обнаружил, что Gemma 4 (gemma-4-31B-it) не может корректно обрабатывать параметры инструментов, использующие шаблон JSON Schema anyOf: [$ref, null] — распространенный способ для nullable-ссылок на объекты. Стандартный chat-шаблон предполагает наличие поля type на верхнем уровне, поэтому такие схемы, как:
{"anyOf": [{"$ref": "#/$defs/SomeObject"}, {"type": "null"}]}теряют anyOf, $ref и $defs, что приводит к type: "" в промпте. Это нарушает работу вызова инструментов на нескольких движках вывода (llama-server и других), в то время как Qwen3.5 и gpt-oss-20b обрабатывают это правильно.
Диагностика и исправление
Пользователь провел отладку с подробным логированием llama-server и с помощью GPT-5.5-high (через codex CLI) сравнил логи Qwen3.5-27B-Q4_K_M и gemma-4-31B-it-Q4_K_S на MacBook Pro. Корень проблемы был найден в предположении chat-шаблона Gemma, что каждый параметр имеет прямой ключ type. Небольшое изменение Jinja-шаблона теперь сохраняет структуры anyOf, $ref и $defs.
Исправленный Jinja-шаблон доступен на Pastebin: https://pastebin.com/p9z3BAC0
Был отправлен пул-реквест в репозиторий Hugging Face для gemma-4-31B-it.
Вывод
Если вы используете Gemma 4 для вызова инструментов/функций с nullable-ссылками JSON Schema, примените исправленный chat-шаблон. Пользователи Qwen3.5 или gpt-oss-20b не затронуты.
📖 Прочитать полный источник: r/LocalLLaMA
👀 Смотрите также

Claude Code v2.1.121: MCP alwaysLoad, очистка плагинов, исправления прокрутки терминала и исправления утечек памяти
Claude Code v2.1.121 добавляет alwaysLoad для MCP-серверов, команду plugin prune, фильтр по вводу для /skills, замену вывода PostToolUse, исправления прокрутки терминала и URL, а также несколько исправлений утечек памяти, включая рост RSS на несколько ГБ при большом количестве изображений.

Выпуск Claude-Code версии 2.1.105: Улучшения Worktree, Мониторы плагинов и исправления интерфейса
Claude-Code v2.1.105 добавляет параметр path в инструмент EnterWorktree для переключения на существующие рабочие деревья, вводит поддержку фоновых мониторов для плагинов через ключ манифеста monitors и исправляет более 30 проблем, включая ошибки отображения интерфейса, обработку MCP-серверов и совместимость с терминалом.

调查:Claude Code代理因压缩更改展示未经验证的MEMORY.md内容
Пользователь сообщает, что агенты Claude Code извлекают содержимое из MEMORY.md без повторной проверки в середине задачи, что связано с изменениями в уплотнении в версиях 2.1.139 и 2.1.141. Два усугубляющих фактора: агрессивное сохранение «инструкций пользователя» и ошибка в порогах автокомпактизации.

Брэм Коэн критикует «виб-кодинг» и практики разработки с использованием ИИ.
Брэм Коэн утверждает, что «виб-кодинг» — подход, при котором разработчики избегают просмотра кода, используя ИИ-ассистентов, — приводит к низкому качеству программного обеспечения, приводя в пример утечку исходного кода Claude как иллюстрацию проблем чрезмерного «догфудинга».