Are you interviewing or being interviewed?
This advice is based on my experience in my particular little corner of the IT world. It may well beprobably is utter b***ox in any other part of the employment espectrum.
Don't negotiate. It sets you on a bad track later.
If you're the hirer, decide in advance of making an offer, what you think that person is worth to you, taking into ccount their qualifications and experience, the market, and what any other staff make. Make the offer a take-it-or-leave-it.
If you're the hiree, decide in advance what you are willing to take the job for. Be realistic, then if they offer you more than that, accept it. If less, turn it down. Be suspicious of any employer who offers much more than the market rate. Gift horses sometimes are nags.
If you're the hirer, use the agency to chase for a response, but keep them out of the discussion.
If you're the hiree, try to deal directly with the employer.
JJ