Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation profile, async behavior, cost implications, and interaction with sibling tools, the description covers all needed aspects: what it does, when to call it, how to get threadId, what to do after the call, and that changes are lossless. The output schema covers the return value, so nothing further is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.