Error de plantilla de chat de Gemma 4: Parámetros de herramienta con anyOf/null renderizados como tipo vacío

✍️ OpenClawRadar📅 Publicado: 29 de abril de 2026🔗 Source
Error de plantilla de chat de Gemma 4: Parámetros de herramienta con anyOf/null renderizados como tipo vacío
Ad

Un usuario de Reddit descubrió que Gemma 4 (gemma-4-31B-it) no logra analizar los parámetros de herramientas que usan el patrón de JSON Schema anyOf: [$ref, null], un patrón común para referencias de objetos anulables. La plantilla de chat predeterminada asume un campo type directo en el nivel superior, por lo que esquemas como este:

{"anyOf": [{"$ref": "#/$defs/SomeObject"}, {"type": "null"}]}

pierden anyOf, $ref y $defs, resultando en type: "" en el prompt. Esto rompe la llamada a herramientas en múltiples motores de inferencia (llama-server, otros) mientras que Qwen3.5 y gpt-oss-20b lo manejan correctamente.

Ad

Diagnóstico y solución

El usuario hizo una depuración con el registro verbose de llama-server y pidió a GPT-5.5-high (a través de codex CLI) que comparara los registros entre Qwen3.5-27B-Q4_K_M y gemma-4-31B-it-Q4_K_S en una MacBook Pro. La causa raíz se localizó en la suposición de la plantilla de chat de Gemma de que cada parámetro tiene una clave type directa. Un pequeño cambio en la plantilla Jinja ahora preserva las estructuras anyOf, $ref y $defs.

La plantilla Jinja corregida está disponible en Pastebin: https://pastebin.com/p9z3BAC0

Se ha enviado un PR al repositorio de Hugging Face de gemma-4-31B-it.

Conclusión

Si usa Gemma 4 para llamadas a herramientas/funciones con referencias anulables de JSON Schema, aplique la plantilla de chat corregida. Los usuarios de Qwen3.5 o gpt-oss-20b no se ven afectados.

📖 Leer la fuente completa: r/LocalLLaMA

Ad

👀 Ver también