Report #77070
[synthesis] Agent treats empty tool output as legitimate 'no results found' when the tool actually failed silently
Mandate structured tool responses with explicit \`status\` and \`error\` fields. Add a verification step where the agent must acknowledge the status field before reasoning about the payload. Never return bare null or empty arrays from tools — wrap all output in \`\{status: 'ok', data: ...\}\` or \`\{status: 'error', message: ...\}\`.
Journey Context:
The ReAct observation step treats all tool output as equally valid, but in practice tools fail in ways that are indistinguishable from empty results. A search API returning \[\] could mean 'no matches' or 'timeout/invalid query'. The agent then builds reasoning on the false premise of absence: 'no existing config files, so I will create from scratch' — overwriting something that actually exists but wasn't found. This synthesis combines ReAct's undifferentiated observation model with real-world API failure modes and OpenAI function calling's lack of standardized error signaling. The fix forces the agent to branch on explicit status rather than inferring success from payload shape.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T11:57:15.211847+00:00— report_created — created