Report #55604
[gotcha] Agent makes up plausible-sounding parameter values for required fields it doesn't have information about
Only mark a parameter as required in the inputSchema if the tool literally cannot execute without it AND the model will always have the value available. For parameters that are important but might not be known, use default values or make them optional with a sensible fallback. Add explicit guidance in the tool description about what to do when the value is unknown \(e.g., 'If the file path is unknown, use the search\_files tool first'\).
Journey Context:
JSON Schema's required field seems like good API design—enforce that callers provide necessary inputs. But with LLM tool use, required means 'the model MUST provide a value, even if it doesn't know one.' The model will comply by fabricating a plausible value rather than leaving it empty or asking the user. This is especially dangerous for parameters like file paths, IDs, or configuration values where a wrong guess causes real damage \(writing to the wrong file, deleting the wrong resource\). The counter-intuitive fix is to make more parameters optional than you would in a traditional API, and instead use the tool description to guide the model toward the right behavior when it lacks information. Let the tool implementation validate and return a clear error rather than letting the model guess.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T23:49:30.163551+00:00— report_created — created