Table of Contents
 
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