The SAC project has completed. For up-to-date information see the SAC2 project

Simplifying Agent Concepts (SAC)
(Simplifying the Development of Agent-Oriented Systems)

Project Aims

The overall aims of this project are:

Our big picture of agent development (see figure to the right, click for a larger view) includes a set of concepts and a methodology (that is a process to be followed and products to be produced along the way). These are linked by a notation which ties the concepts to a specific executable language. All three are underpinned by semantics which avoid ambiguity. Finally, tools to support various activities (designing, cross-checking, programming, debugging) are important to software engineers.

This project is supported by the Australian Research Council (under grant CO0106934) and Agent Oriented Software Pty. Ltd. through the SPIRT programme.

"The aim of this project is to develop a simplified agent development environment based on JACK, which retains the power of the Belief, Desire, Intention (BDI) model, but is significantly easier to use. A key element of this process will be the identification of a core set of agent concepts, which we will then use in the design of a "next generation" agent system."

If you would like more information on the Prometheus methodology please email Lin Padgham or Michael Winikoff


What is an Agent?
An intelligent software agent is an autonomous entity, existing over time in an environment, that is able to rationally balance pro-active (i.e. goal-driven) and reactive behaviour. The environment is often unpredictable and the agent needs to be flexible and robust in order to deal with failure and with the unexpected. The environment will often contain other agents and the agent should be social - that is interact in a meaningful way with others.

Some terms:

  • pro-active: pursues goals over time; goal directed behaviour
  • autonomous: does not require continuous external control (for example, a remote control car is not autonomous)
  • flexible: has multiple ways of doing things
  • robust: detects and responds appropriately to the failure of actions or plans

What is the "BDI" Model?
BDI stands for "Belief Desire Intention". This is a set of concepts for thinking about and building agents. There are three facets to the BDI model:
  1. The Philosophical: Based on folk-psychology viewing humans as planning agents this uses beliefs (what an agent knows about the world), desires (what the agent wants - these can be contradictory) and intentions (what the agent has decided to do).
  2. The Logical: Modal logics with possible world semantics. These give precise logical meaning to beliefs, goals (which, unlike desires, are required to be consistent) and intentions.
  3. The implementation: Here beliefs are usually limited to databases (which excludes, for example, meta-beliefs: beliefs about beliefs). Goals are modelled as events. Intentions are merely the currently running plans.
Note that a fourth crucial concept is plans - the acronym should really be "BDIP".

What is JACK?
See Agent Oriented Software's website.

Object-oriented programming is best done using a language which supports the appropriate concepts (such as Java) rather than one which doesn't (such as C). Similarly, agent-oriented programming is best done with a language which supports the appropriate concepts rather than one which doesn't (such as Java). JACK is an agent-oriented programming language (which is built as an extension of Java).

Project Outputs

People

Link Pages

Conferences