Bogue du modèle de chat Gemma 4 : paramètres d'outil avec anyOf/null rendus comme type vide

✍️ OpenClawRadar📅 Publié: April 29, 2026🔗 Source
Bogue du modèle de chat Gemma 4 : paramètres d'outil avec anyOf/null rendus comme type vide
Ad

Un utilisateur de Reddit a découvert que Gemma 4 (gemma-4-31B-it) ne parvient pas à analyser les paramètres d'outils qui utilisent le motif JSON Schema anyOf: [$ref, null] — un motif courant pour les références d'objets nullables. Le template de chat par défaut suppose un champ type direct au niveau supérieur, donc des schémas comme celui-ci :

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

se voient retirer anyOf, $ref et $defs, ce qui donne type: "" dans le prompt. Cela casse l'appel d'outils sur plusieurs moteurs d'inférence (llama-server, autres) tandis que Qwen3.5 et gpt-oss-20b le gèrent correctement.

Ad

Diagnostic et correctif

L'utilisateur a débogué avec les logs verbeux de llama-server et a fait comparer les logs entre Qwen3.5-27B-Q4_K_M et gemma-4-31B-it-Q4_K_S sur un MacBook Pro par GPT-5.5-high (via codex CLI). La cause racine a été attribuée à l'hypothèse du template de chat Gemma selon laquelle chaque paramètre a une clé type directe. Une petite modification du template Jinja préserve désormais les structures anyOf, $ref et $defs.

Le template Jinja corrigé est disponible sur Pastebin : https://pastebin.com/p9z3BAC0

Une PR a été soumise au dépôt Hugging Face pour gemma-4-31B-it.

À retenir

Si vous utilisez Gemma 4 pour l'appel d'outils/fonctions avec des références JSON Schema nullables, appliquez le template de chat corrigé. Les utilisateurs de Qwen3.5 ou gpt-oss-20b ne sont pas affectés.

📖 Lire la source complète : r/LocalLLaMA

Ad

👀 See Also