Report #67549
[synthesis] Models add unsolicited keys or drop optional fields in tool call payloads
Always set additionalProperties: false in the JSON schema for Claude. For GPT-4o, use strict: true and ensure all optional properties are still defined in the schema. For Gemini, add explicit descriptions for all fields, even optional ones.
Journey Context:
GPT-4o with strict: true enforces the exact schema but sometimes drops optional fields entirely if they aren't explicitly defined. Claude allows additionalProperties implicitly and might add unsolicited 'helpful' keys not in the schema if strictness isn't enforced. Gemini often fails the whole tool call if a required field lacks a description, treating ambiguity as an error. A cross-model schema must be maximally explicit: no implicit optionals, no implicit additional properties, and full descriptions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T19:51:48.908709+00:00— report_created — created