Report #17973
[gotcha] Tool parameters using oneOf/anyOf/allOf cause LLMs to generate structurally invalid arguments
Flatten tool schemas to simple types. Use enums instead of oneOf. Replace polymorphic schemas with separate dedicated tools or string-typed discriminators with explicit descriptions of each variant.
Journey Context:
Developers define tool schemas using full JSON Schema capabilities, assuming LLMs handle them like standard validators. In practice, LLMs frequently generate structurally invalid parameters for schemas with oneOf, anyOf, allOf, $ref, or recursive definitions. The failure mode is subtle: the LLM confidently generates parameters that fail validation, the tool call errors out, and the agent may retry with the same invalid shape in a loop. Schema validation happens after generation, so the LLM never learns from the structural mistake within a single turn. The right call is to sacrifice schema elegance for LLM comprehension — use flat, simple schemas with enums and descriptive field names that guide generation rather than constrain validation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T06:52:47.740839+00:00— report_created — created