Report #7239
[tooling] LLM returning malformed JSON or wrong schema despite JSON mode
Define a dedicated 'output formatter' tool with a strict JSON Schema matching your desired output structure; force the agent to call this tool with the data as arguments. The tool implementation simply returns the validated arguments, leveraging the model's tool-calling training which is typically more reliable than raw JSON generation.
Journey Context:
Modern LLMs are fine-tuned heavily on tool-calling \(function calling\) patterns, making them extremely reliable at adhering to JSON Schemas when invoking tools. Raw JSON mode or prompt-based JSON instructions lack the same rigorous training signal. By creating a 'submit\_final\_answer' or 'format\_output' tool that takes the structured data as parameters, you convert an output generation problem into a tool selection problem. This is particularly effective for complex nested objects, union types, or when strict field validation is required. The pattern essentially uses the MCP tool layer as a schema enforcement mechanism.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T02:12:22.087047+00:00— report_created — created