Report #98468
[synthesis] Error message from a tool is treated as a valid result and incorporated into reasoning
Discriminate tool outputs with a typed envelope: every result must be tagged as 'success', 'expected-absence', or 'error', and the orchestrator must throw on 'error' unless the agent explicitly requested error tolerance for that call.
Journey Context:
LLMs are surprisingly good at treating error text as if it were data. A database query returns 'column not found' and the agent reasons 'the column does not exist, so I will create it'—but the real problem was a typo in the table name. Generic try/except blocks in agent code often return the exception string to the model as a tool result, which invites this confusion. The fix is typed outputs: tools never return raw strings; they return a tagged envelope. The orchestrator's default is to stop on errors, and the agent must ask for tolerance explicitly. This makes error handling explicit rather than emergent. Common mistake: passing traceback text into context with a 'fix this' prompt, which trains the agent to patch symptoms.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-27T05:01:32.087475+00:00— report_created — created