The question is very diplomatic and the advice you will get strongly would be depended on the personal experience of whoever delivers the argument, but I would like to put lights on some points which can improve your understanding and helps you to take a smarter decision!
When to choose an Agency?
When you require multiplatform product development where multiple skills are required, agencies are preferred. There is an availability of multiple talents and you get the higher amount of reliability and responsibility. When your project is more complicated, a single person is not enough to satisfy your requirement.
When you are looking to bond with longer time for multiple projects, an individual is not as much reliable as an agency. The work never gets delayed without advance notice with an agency because of availability of multiple developers. Any unexpected emergency might delay the work when we are working with a single freelancer.
In the situations where we are looking for continuity in the task when we do not want to change our schedule just because of technical problems.
When we require a whole team from the project manager, developers and QA engineers to execute project simultaneously for faster delivery.
When to choose a Freelancer?
There are some categories like content writing, UI/UX design it is more convenient to work directly with a single freelancer.
When you want to communicate directly to the developer which is not convenient for a lot of agencies.
When cost is more concerned than other factors, the freelancer might work best!
When you need top level talent to build your product.
The conclusion is that freelancers are generally a good option if you require only single specialist as opposed to a full team and/or have a limited budget. You go with an agency if you need a wider spectrum of services, or if you want to increase your chances of success by trusting a company with more experience.