Preface
1 Introduction
1.1 Autonomous Agents
1.2 Characteristics of Agents
1.3 Multi-Agent Systems
1.4 Hello World!
2 The BDI Agent Model
2.1 Agent-Oriented Programming
2.2 Practical Reasoning
2.3 A Computational Model of BDI Practical Reasoning
2.4 The Procedural Reasoning System
2.5 Agent Communication
3 The Jason Agent Programming Language
3.1 Beliefs
3.2 Goals
3.3 Plans
3.4 Example: A Complete Agent Program
3.5 Exercises
4 Jason Interpreter
4.1 The Reasoning Cycle
4.2 Plan Failure
4.3 Interpreter Configuration and Execution Modes
4.4 Pre-Defined Plan Annotations
4.5 Exercises
5 Environments
5.1 Support for Defining Simulated Environments
5.2 Example: Running a System of Multiple Situated Agents
5.3 Exercises
6 Communication and Interaction
6.1 Available Performatives
6.2 Informal Semantics of Receiving Messages
6.3 Example: Contract Net Protocol
6.4 Exercises
7 User-Defined Components
7.1 Defining New Internal Actions
7.2 Customising the Agent Class
7.3 Customising the Overall Architecture
7.4 Customising the Belief Base
7.5 Pre-Processing Directives
7.6 Exercises
8 Advanced Goal-Based Programming
8.1 BDI Programming
8.2 Declarative (Achievement) Goal Patterns
8.3 Commitment Strategy Patterns
8.4 Other Useful Patterns
8.5 Pre-Processing Directives for Plan Patterns
9 Case Studies
9.1 Case Study I: Gold Miners
9.2 Case Study II: Electronic Bookstore
10 Formal Semantics
10.1 Semantic Rules
10.2 Semantics of Message Exchange in a Multi-Agent System
10.3 Semantic Rules for Receiving Messages
10.4 Semantics of the BDI Modalities for AgentSpeak
11 Conclusions
11.1 Jason and Agent-Oriented Programming
11.2 Ongoing Work and Related Research
11.3 General Advice on Programming Style and Practice
A Reference Guide
A.1 EBNF for the Agent Language
A.2 EBNF for the Multi-Agent Systems Language
A.3 Standard Internal Actions
A.4 Pre-Defined Annotations
A.5 Pre-Processing Directives
A.6 Interpreter Configuration
Bibliography