Mark d'Inverno and Michael Luck present a formal approach to dealing with agents and agent systems in this second edition of Understanding Agent Systems. The Z specification language is used to establish an accessible and unified formal account of agent systems and inter-agent relationships. In particular, the framework provides precise and unambiguous meanings for common concepts and terms for agent systems, allows for the description of alternative agent models and architectures, and serves as a foundation for subsequent development of increasingly refined agent concepts. The practicability of this approach is verified by applying the formal framework to three detailed case studies. The book will appeal equally to researchers, students, and professionals in industry.