There are several wannabe lawyers on here who will categorically state that "If you haven't physically stepped onto the premises after signing the contract, it's not legally valid and you can cancel it at any time". Of course, this is baloney and there is no such legal principle. You have either signed a contract and it is valid, or you have not.
Now, as far as your new employment goes, you can probably get away with just phoning them up and saying you have changed your mind. They won't be happy, and you will burn bridges, but that's life. They'll probably just curse you a few times, then phone up their number 2 and give them the offer instead.
The agent, however, will be like a bulldog with his jaws firmly clamped around your ankle. He was within a hair's width of getting his fee... and dammit he's not gonna let that go! He may well forget what's in the small print of the agency terms and conditions. He may well even just be really annoyed and let it go. But it's quite possible he'll insist that a contract has been formed, and part of that contract states that you have to pay 15-20% if you renege on the deal (a clause which you voluntarily signed, I assume).
I figure you need to have a polite but firm chat with the agent and see how the land lies before making any big decisions. If it's just about the money, can you get the small company to pay you a bit more now you have the likes of Oracle after you?
Disclaimer: The above is my opinion only and is NOT legal advice.