Report #30823
[gotcha] Enum-heavy JSON schemas in tool definitions cause wrong parameter values and selection confusion
Minimize enum use in tool input schemas. Prefer free-text string fields with format hints over rigid enums. If you must use enums, keep them under 5-7 values and ensure each value is self-explanatory. Put valid values in the description text instead of the schema enum.
Journey Context:
It's tempting to define strict JSON Schema enums for tool parameters to constrain inputs. But large enums \(10\+ values\) in tool schemas bloat the definition AND confuse the model — it may hallucinate values not in the enum, or pick the wrong one because the enum values lack context. The model doesn't 'read' enums the way a human does; it pattern-matches. If your enum has \['git\_push', 'git\_pull', 'git\_fetch', 'git\_merge', 'git\_rebase', 'git\_cherry\_pick'\], the model might pick 'git\_push' when it means 'git\_rebase' because it's matching on the 'git' prefix rather than semantics. Moving the valid values into the description gives the model natural-language context for each option.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T06:07:11.796197+00:00— report_created — created