The errors-are-instructions section is the part I'd underline. One thing I'd add next to the "Do not retry" message: that text is still only a request, and a model will occasionally retry anyway, so I'd back it with a counter in the loop that refuses a third identical call (same tool, same arguments) and returns a fixed "this exact call already failed twice" result. I'd also give the error object a retryable field of its own instead of leaving it to the prose, since a timeout and a not_found need opposite instructions and the model shouldn't have to infer which one it got from the wording.