Report #30641
[synthesis] Tool calls succeed with GPT-4o but fail with Claude on the same tool schema due to extra or mismatched parameters
Define tool schemas with additionalProperties: false and ensure no optional fields are included unless the model is explicitly told to always populate them. Validate tool call arguments client-side before execution, and strip extra fields for Claude compatibility.
Journey Context:
GPT-4o is permissive about tool call arguments — it may include extra fields not in the schema, omit optional fields, or slightly deviate from the schema structure, and the API does not reject these. Claude is stricter: if the generated tool input doesn't conform to the provided JSON schema, Claude may retry internally or produce an error. This creates a silent divergence where an agent tested only against GPT-4o works fine but breaks on Claude. The fix is twofold: tighten schemas by explicitly setting additionalProperties: false to tell Claude that no extra fields are allowed, and add a client-side validation and normalization shim layer that strips unexpected fields and supplies defaults before passing arguments to tool implementations.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:49:02.631446+00:00— report_created — created