At a minimum
First and foremost, you must have top down sponsorship that understands the principals and believes in them enough to enforce them down the chain, and believes that Agile is applicable to your situation.
Having senior management that doesn't believe in the process, will ultimately undermine it because they will allow subordinates to pervert, distort, pollute, undermine or worse sabatoge the process.
If senior management don't understand the principals they will start demanding short cuts and compromises that pervert the process. Then when things break down, the naysayers can say "I told you so, Agile doesn't work!" back to the death march!
This is worse than not adopting Agile, it is typically referred to as "Agile But ...". Management uses the Agile term, "But ..." throws out all the actual principals and continues to do what they were doing before, "But ..." now call it Agile. Which gives Agile a bad name to those that don't know any better.
nice side effects
The things you list like, no bugs, automated tests, clearly defined development, dedicated people, etc. are all nice positive side effects to Agile.
Agile, isn't a silver bullet or panacea, but it does promote transparency at all levels ( customer <-> management <-> developers ) and makes those people that are problems to productivity stand out quickly; especially specific implementations of Agile like Scrum.