> most clients when starting out with a project can't really say exactly what they want, so the scope creep is not only driven by the agency, but also (sometimes mostly) by the client.
Most clients know exactly what their goal is ("To increase market recognition", "to increase conversion rate", etc). The scope creep can only happen in a requirements phase[1]. Once a client has signed off on exactly what will be delivered, and what the payments milestones are there's no wiggle room for the agency to continue experimenting.
If you're skipping the requirements phase because "agile"[1], then the work will be over budget, over time and under the scope.
There's very few projects that actually require the exploratory-driven process that agile uses. If you have one of those projects then farming the management of it out to an agency is exactly the wrong thing to do.
[1] There may be multiple requirements phases. For example a large "need to revamp our website" project can be split into multiple serial projects, each with their own requirements phase.
[2] I.e. We'll figure out what is acceptable to the client with constant feedback.