Agile actually forces the customer to make up their minds on a per-sprint basis. The customer has skin in the game and comes to standup, retros and all the other trappings. The customer prioritizes the backlog based on requirements (which could change or rearrange). A properly engaged customer is essential to agile running well. The responsibility for providing a vision and guiding the project is theirs and theirs alone.