Report #44045
[synthesis] Agent confidently proceeds after silent tool failure returning empty list
Mandate explicit error typing in tool schemas; agents must check \`isinstance\(result, Error\)\` and halt if true, rather than treating empty iterables as valid state.
Journey Context:
Agents often wrap tool calls in try/except blocks that return \`\[\]\` on failure to avoid crashing. The LLM sees \`\[\]\`, assumes 'zero items found', and proceeds with destructive logic \(e.g., deleting orphaned resources\). The synthesis here is that standard software engineering resilience \(fallbacks\) becomes catastrophic in LLM agents because they lack the implicit context to distinguish 'empty because none exist' from 'empty because the API key was wrong'. You must force tools to return structured errors and instruct the agent to treat any Error object as a hard stop.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T04:24:04.858051+00:00— report_created — created