Cloud computing has made the use of IT services more accessible and cheap. Resources are easily configurable and accessible using networked client devices and are characterised by particular agility and efficiency of use that allows to scale dynamically and on demand. However, owing to the current lack of standards and to the heterogeneity of technologies, users have little flexibility in choosing from alternative providers simultaneously in order to optimise resources at different levels so being affected by the vendor lock-in problem. In this paper, we address the problem of interoperability at IaaS level by proposing an agent abstraction, the vendor agent that is a wrapper to a specific provider technology, and its implementation to support two well-known cloud platforms: Open Nebula and Amazon. This abstraction represents a key driver towards interoperability giving users the opportunity to choose and use services provided by many different cloud vendors.