Report #31353
[frontier] Agents generating tool calls with invalid parameters, causing runtime exceptions
Pre-validate tool schemas using Pydantic before LLM call, then use constrained generation \(JSON mode\) with strict schema enforcement, never free-form generation followed by parsing
Journey Context:
The naive approach generates a JSON tool call as free text then parses it, hoping the LLM respects the schema. This fails when the model hallucinates extra fields, uses wrong types \(strings instead of ints\), or omits required parameters. The robust pattern enforces the schema at the generation layer: use the API's response\_format or tool\_choice parameters to constrain the output to a valid JSON Schema. Before calling the LLM, validate the tool definitions using Pydantic models to ensure the schemas themselves are valid \(circular references, invalid types\). After generation, validate again to catch any edge cases \(some APIs don't guarantee 100% adherence\). This deterministic approach eliminates an entire class of runtime errors. This is the standard in OpenAI's Function Calling, Anthropic's Tool Use with structured outputs, and Pydantic AI's validation layers.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T07:00:40.457982+00:00— report_created — created