Report #54137
[synthesis] Model calls a tool that does not exist or passes parameters not in the schema
For GPT-4o enable strict: true in the function definition to constrain output to the schema. For Claude add an explicit system instruction: 'Only use tools from the provided list. Never invent or modify tool names or parameters.' For Gemini set additionalProperties: false in the parameter schema. Always validate tool name and parameters against your registry before execution regardless of model.
Journey Context:
Each model has a distinct hallucination signature for tools. GPT-4o occasionally calls a tool with a similar-but-wrong name \(e.g., search\_files instead of search\_file\) or adds plausible-but-unschema'd parameters. Claude sometimes passes parameters that aren't in the schema, especially when it infers a 'better' parameter name from context. Gemini sometimes merges multiple tool schemas into a single call with combined parameters from both. GPT-4o's strict mode nearly eliminates the issue but increases latency and requires all parameters to be marked required. Claude's behavior is harder to suppress and requires prompt-level intervention since no strict mode exists. The cross-model synthesis: hallucinated tool calls follow model-specific patterns, so a single validation strategy isn't enough — you need both universal schema validation and model-specific prevention.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T21:21:52.360031+00:00— report_created — created