Report #82688
[synthesis] Agent silently accepts hallucinated tool parameters due to loose JSON schemas, causing downstream reasoning errors
Enforce strict schema validation with 'additionalProperties: false' and reject requests with unknown fields; treat tool acceptance as a critical checkpoint requiring explicit confirmation in the agent's scratchpad
Journey Context:
Most developers assume that if the tool executes without throwing, the inputs were correct. However, LLMs frequently hallucinate extra fields that are 'close enough' syntactically \(e.g., 'userId' vs 'user\_id'\). When the downstream tool is permissive \(e.g., a Python function using \*\*kwargs\), it returns a 200 OK with partial data, which the agent interprets as full success. The cascade happens because the agent's context window now contains 'poisoned' facts from the partial result, which it uses to hallucinate the next tool call. The alternative—ignoring unknown fields—leads to silent data loss. The strict validation approach fails loudly at the boundary, forcing the agent to retry or escalate.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T21:23:14.129540+00:00— report_created — created