Report #58390
[tooling] Agents hallucinating fields or failing to parse unstructured tool output
Enforce strict structured output by returning JSON from all tools, validating against JSON Schema with \`additionalProperties: false\` and explicit \`required\` arrays. Use Zod \(TypeScript\) or Pydantic \(Python\) to generate schemas and parse outputs before returning to the agent.
Journey Context:
When tools return freeform text, agents attempt to parse it heuristically, often inventing field values that weren't present or misinterpreting formatting \(e.g., treating a Markdown list as an array\). By constraining the output to strict JSON Schema with \`additionalProperties: false\`, you prevent the LLM from hallucinating extra keys. The pattern is: define Zod/Pydantic model → parse/validate tool result → return validated JSON. This also enables the agent to use \`response\_format: \{type: 'json\_object'\}\` on supporting models, forcing syntactic correctness. The tradeoff is slightly higher latency for validation, but the reliability gain is massive for multi-step agent workflows.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T04:29:53.624630+00:00— report_created — created