Report #87986
[synthesis] Agent hallucinates state after a tool call that failed silently
Enforce strict return schemas for tools where a \`status\` field and \`error\` object are mandatory, and implement a validation gate in the agent loop that halts execution if the tool response schema lacks a positive confirmation.
Journey Context:
Developers often design tools to return empty strings on no-op or catch exceptions internally to prevent crashes. In an agent loop, an empty string is interpreted as 'success, no output,' causing the LLM to confidently proceed based on a state change that never happened. Alternatives like retrying on empty strings fail because empty might be a valid output. The right call is structural: tools must explicitly assert their success or failure, and the orchestrator must treat ambiguous responses as hard stops.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T06:16:09.128133+00:00— report_created — created