The formalization of multi-agent autonomous systems requires a rich ontology for capturing a variety of collective behaviours and a powerful semantics for distinguishing between collective agents having, executing, and jointly intending a plan. In this paper, we introduce the notion of social agents and social plans. A definition of joint intentions is provided that avoids some of the problems encountered by previous formalizations. In particular, it models cooperation by requiring that agents adopt a joint goal and a joint plan of action before forming a joint intention. The paper also stresses the planning capability of agents and outlines a process for means-end reasoning by multiple agents.