Requirements Engineering is now widely recognised as a key issue in the design and implementation of information systems. Recent research trends plead for the use of formal (i.e. mathematical/logical) languages at this stage of analysis in order to cope with the classical difficulties arisen from the interactions with customers. In this paper, we introduce the language, a formal language based on the concept of ‘agent’ (seen as a specialization of the ‘object’ concept) in terms of which one may express real-time requirements as well as ‘non-functional’ requirements related to the reliability and security aspects of agents. The language is fully presented and illustrated through the handling of a non trivial computer-integrated manufacturing case study. Finally, some methodological guidelines are proposed for providing some help to the analyst in the incremental elaboration of a complex requirements document and a set of tools developped around is presented.