Agent system design is a complex task challenging designers to simulate intelligent collaborative behavior. Roles can reduce the complexity of agent system design by categorizing the roles played by agents. The role concepts can also be used in agent systems to describe the collaboration among cooperative agents. In this chapter, we introduce roles as a means to support interaction and collaboration among agents in multi-agent systems. We review the application of roles in current agent systems at first, then describe the fundamental principles of role-based collaboration and propose the basic methodologies of how to apply roles into agent systems (i.e., the revised E-CARGO model). After that, we demonstrate a case study: a soccer robot team designed with role specifications. Finally, we present the potentiality to apply roles into information personalization.