Time to get flamed out of existence.... I am an agent. Though I would argue there is no difference between an agent and a recruiter or a headhunter. They are different skillsets of the same job.
To a "candidate" the primary service I provide is I spend all day every day talking to companies and hiring managers about their projects, their workloads and what they see as the main challenge to delivering their projects from a manpower perspective. I also learn what their capabilities are vs their competitors. This means when I speak to you and you tell me your skills, your motivations and what you want in a future employer I, hopefully, will be able to say company A, C, and X are actively looking for someone of your background and companies B, V & Q want to know about your type of skillsets when they come on to the market. Because I do this all day everyday I will know this information, where as you, doing what ever it is you do, will not.
From a Company perspective, the service I provide is that I spend all day every day speaking with candidates, about what their ideal job would be in the future and where they want to go with their career. So when the company asks me for a particular skillset I will know 20,30,100+ people with that skillset that would be tempted by what they as a potential employer would offer. Again something that they can't do themselves because they need to be doing what ever their real job is.
Now as for fees and charges. If I find you a permanent job the company pays me a fee based on your salary. If I find you a contract job the company pays me a fee based on your salary on an hourly rate. The IT industry in particular sees that as me taking a cut of your wages, but I don't negotiate with you about my rate. I negotiate with the company about what they are going to pay me for my finders service. What I don't see is two people working in the same job in the same company with the agency guy getting less take home then the direct guy, as a general rule. In my market sectors the lower paid person will just leave.
So if you want to look at it another way, given I am paid a % markup, I want you to get paid the most I can negotiate for you.
Just as an aside I don't recruit in the IT space. I recruit for civil engineers. I did have a brief stint in the early 2000s in IT recruitment but I left that sector as fast as I could as it is extremely difficult to determine if someone can do what they say they can and the general attitude from "candidates" is extremely hostile to recruiters.
Finally, I would like to add that recruitment is a very difficult job that most people can't do. Not because it is technically difficult (it's really quite simple) it is however very difficult emotionally. There is a reason most recruiters only have a couple of years of experience, it is because most people just can't keep doing the job. Most of us try to do the right thing, we are in the end normal people. But for most of us this job is thankless with companies telling us to go jump and candidates thinking we are ripping them off. You will however find that if someone has done this for a long time it is because they have found their niche and they are respected by both their clients and the candidates.