Fabrication After Tool Failure: Tool-Augmented Agents Assert Values Their Tools Did Not Return
A tool call can succeed, return a payload, and still contain nothing you can answer from — a null, a [REDACTED] placeholder, a truncated record, unreadable characters. Across 1,024 items in 16 fictional internal systems, where the call was forced and the payload unusable, 14.1% of responses either asserted a value the payload could not support or refused while blaming a policy the tool plainly had. Almost all of that turns on whether the envelope declares the failure: 0.0% dishonest when the status was error, 45.3% when it was ok with the value hollowed out, worst for redaction and corruption, where something meaningless still occupies the answer field. None of the nine shipped agent frameworks audited here says what a model should do when a tool fails, and each of the three run end to end showed the behaviour, up to 24.7%. One appended sentence making the model print a retrieval status of OK or FAILED before answering took it to 0.87%, transferred unchanged into those frameworks, and left a flag honest in 99.7-99.9% of declarations — a regular expression catches the rest at runtime.