Report #51752
[synthesis] Models handle missing or invalid tool parameters differently — Claude fabricates values, GPT-4o omits them, Gemini nulls them
Always validate tool parameters against your schema on the execution side before running the tool. For Claude: validate that parameter values are real and plausible, not fabricated inferences. For GPT-4o without strict mode: validate that all required parameters are present. For GPT-4o with strict:true in function definitions: schema compliance is enforced by the API. Never trust that model-generated tool call parameters are valid regardless of provider.
Journey Context:
When a model generates a tool call, the parameters are not guaranteed to match the schema. The failure modes differ significantly across providers. GPT-4o with strict mode enforces schema compliance at the API level — this is the most reliable option. Without strict mode, GPT-4o may omit optional parameters entirely. Claude's failure mode is the most dangerous: it tends to helpfully fill in missing required parameters with plausible but fabricated values — the tool call looks structurally valid but uses invented data. This is especially problematic for IDs, paths, or enum values where the model guesses rather than admits ignorance. The synthesis: you cannot rely on the model to validate its own tool call parameters. Server-side validation is essential, and the type of validation needed depends on which model you use — Claude needs value-plausibility validation, GPT-4o needs parameter-presence validation, and both need type validation.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T17:21:26.501661+00:00— report_created — created