Nothing about a tool has to break for your agent to start calling it wrong. Rename a field, leave a stale example in the description, add a near-duplicate tool to the list in view, and the behaviour behind the interface is unchanged while a 9B model's function-calling accuracy falls from 79% to 58%. A training-free layer that checks the emitted call against the current schema and spends exactly one constrained retry, with the validation errors attached, puts it back at 81% — 33 of 45 drift-induced failures recovered and none made worse. The look-alike tools did most of the damage, and showing the model a tidy card of the current schema up front recovered nothing at all.