I hope it helps as a starting point -- but remember there will be differences and changes among agencies, so the final word will always be from the actual agency. Good luck!
Basic hiring criteria for federal agents:
Age. Agents are required to retire by age 57, so in order to get 20 years of service they must be hired by age 37. This is why the maximum age for a new hire is 37 years old.
The minimum hiring age is 21. So an agent hired at that age will be 41 with 20 years of service. However, agents under 50 years old have to have 25 years of service to retire.
Eyesight: Each agency has different criteria for eyesight, and there will be correctable and non-correctable minimums. If you have had or are thinking of having one of the RK/Lasik type surgeries be sure to inquire with your recruiter the amount of time that must pass before you are cleared to apply.
Education: Most agents have a four year degree, but there are provisions for substituting qualifying experience for education. Verify that your experience will qualify - don't assume!
Major: What should you major in to be more marketable for the position, or to prepare yourself in the best way? This is a balancing act. An agency might be clear that they are looking for certain majors, but you have no guarantee they will hire you. Your basic training will teach you all the laws and procedures required for the job, so major in criminal justice if you love it, but I have friends with all kinds of degrees of study that are awesome agents.
Excluding agencies that are looking for specific majors, here's my take on it. Major in what interests you most and you will be surprised how often you can apply it to what you will do in law enforcement! Psychology? Criminals are a hot bed for analysis! Forensics? It's becoming more and more prevalent in what we do. Business? An asset to investigate fraud, embezzlement, and money laundering. And think about this: What if you get hurt on the job? Will your degree open a door to an alternative career? Have a back-up plan!
GPA: Have your friends told you, "you just need to get the piece of paper" (degree) and not to worry about your grades? At the end of the day, it's true. However, there are a couple of reasons to care about your GPA. One, you can get hired at a higher rank with a good GPA, which means more money. Also, many vacancy announcements are only open to "high scholars" -- isn't college suppose to open doors for you? Now if you don't end up with a high enough GPA -- at least you know you gave it your best shot.
Drug Use/Experimentation - There is a very small tolerance among most federal agencies for minor experimentation of certain drugs. If this is a concern for you, my advice is to be candid and truthful with the recruiter up front to ascertain if you will qualify for the job. They have heard everything, trust me - so don't worry about shocking them. The key is to be truthful...and all will be verified on the polygraph anyway.
HWP: Your weight should be proportionate to your height. The trends at the academies fluctuate from strength to power to running. Try to find out where the emphasis is before you go, so you can prepare. There is also a body fat option -- so if you are a 300 lb body builder with 2% body fat, you should be fine. :)
Tests: Most agencies require an academic test that is similar to a mini-SAT. Ask the recruiter for name of the test so you can get a study guide.
How to apply? A good starting point is www.opm.gov. Under job vacancies, query by series. The number for criminal investigator series is 1811. Most jobs start at 5/7/9 rank. What that means is that you are hired as 5, after one year are 7, after another year promoted to a 9. However, you may qualify to start as a 7 or 9 so read the requirements. Most agencies do not accept applications/resumes unless in response to a vacancy announcement.
How do I chose an agency? Go to their websites - I have many links on my site for your convenience. Look at their mission. Review the press releases. Ask yourself if you could do this job for 25 years. If the answer is yes, watch for a vacancy!