Abstract.As agents gain acceptance as a technology there is a growing need
for practical methods for developing agent applications.This paper presents the
Prometheus methodology,which has been developed over several years in col-
laboration with Agent Oriented Software.The methodology has been taught at
industry workshops and university courses.It has proven effective in assisting de-
velopers to design,document,and build agent systems.Prometheus differs from
existing methodologies in that it is a detailed and complete(start to end)method-
ology for developing intelligent agents which has evolved out of industrial and
pedagogical experience.This paper describes the process and the products of the
methodology illustrated by a running example.
1 Introduction
As agents are gaining acceptance as a technology and are being used,there is a growing
need for practical methods for developing agent applications.This paper presents the
Prometheus1 methodology for developing intelligent agent systems.
The methodology has been developed over the last several years in collaboration
with Agent Oriented Software2(AOS).Our goal in developing Prometheus was to have
a process with associated deliverables which can be taught to industry practitioners and
undergraduate students who do not have a background in agents and which they can use
to develop intelligent agent systems.To this end Prometheus is detailed and complete
in the sense of covering all activities required in developing intelligent agent systems.
Our claim is that Prometheus is developed in sufficient detail to be used by a non-
expert.Prometheus has been taught to an undergraduate class of(third year)students
who successfully designed and implemented agent systems using JACK.A second year
student over the summer vacation was given a description of the methodology and a
description of an agent application(in the area of Holonic Manufacturing).With only
(intentionally)limited support,the student was able to design and implement an agent
system to perform Holonic Manufacturing using a simulator of a manufacturing cell.
1
Prometheus was the wisest Titan.His name means“forethought”and he was able to foretell
the future.Prometheus is known as the protector and benefactor of man.He gave mankind a
number of gifts including fire.(http://www.greekmythology.com/)
2
http://www.agent-software.com
Unfortunately space limitations preclude a detailed comparison with the many ex-
isting methodologies.We simply note that Prometheus differs from existing method-
ologies[1–5,7–16,18,19,23–25,27]in that it:
–Supports the development of intelligent agents which use goals,beliefs,plans,and
events.By contrast,many other methodologies treat agents as“simple software
processes that interact with each other to meet an overall system goal”[6].
–Provides“start-to-end”support(from specification to detailed design and imple-
mentation)and a detailed process,along with design artifacts constructed and steps
for deriving artifacts.
–Evolved out of practical industrial and pedagogical experience,and has been used
by both industrial practitioners and by undergraduate students.By contrast,many
other methodologies have been used only by their creators and often only on small
(and unimplemented)examples.
–Provides hierarchical structuring mechanisms which allow design to be performed
at multiple levels of abstraction.Such mechanisms are crucial to the practicality of
the methodology on large designs.
–Uses an iterative process over software engineering phases rather than a linear“wa-
terfall”model.Although the phases are described in a sequential fashion in this
paper,the intention is not to perform them purely in sequence.Rather,one repeats
the whole process with a changing focus.While the first iteration will be almost
entirely activities associated with the system specification phase,subsequent iter-
ations will involve a mixture of activities from different phases and will shift the
activities mix more and more towards the later phases.
–Provides(automatable)cross checking of design artifacts.Like[17],we believe
that automated consistency checking is vital for the practicality of a methodology.
Of the properties above,perhaps the most contentious is the first:many existing method-
ologies intentionally do not support intelligent agents,rather,they aim for generality
and treat agents as black boxes.We believe that in this case,generality needs to be sac-
rificed in favour of usefulness.By specifically supporting the development of BDI-like
agents we are able to provide detailed processes and deliverables which are useful to
developers.Of course,this makes Prometheus less useful to those developing non-BDI-
like agents.However,note that the initial stages of the methodology are appropriate for
the design of any kind of multi agent system.
Although none of these properties is unique in isolation,their combination is,to
the best of our knowledge,unique.We believe that these properties are all essential for
a practical methodology that is usable by non-experts and accordingly the design of
Prometheus was guided by these properties.Although Prometheus’contribution is the
combination of these properties,this combination was achieved through careful design
of the methodology.It is not possible to easily construct a methodology which has the
above properties by combining methodologies that have some of them.For example,
given a methodology that provides automated support but does not support intelligent
agents and another methodology that supports intelligent agents but not provide au-
tomated cross-checking;it is not at all obvious how a hybrid methodology could be
created that supports both features.
The Prometheus methodology consists of three phases.The system specification
phase focuses on identifying the basic functionalities of the system,along with inputs
(percepts),outputs(actions)and any important shared data sources.The architectural
design phase uses the outputs from the previous phase to determine which agents the
system will contain and how they will interact.The detailed design phase looks at the
internals of each agent and how it will accomplish its tasks within the overall system.
The rest of this paper describes the methodology using a running example:an on-
line bookstore that assists customers in finding and choosing books,manages deliveries,
stock,customer and supplier information,and does selective advertising based on in-
terests.It is,of course,not possible to describe a methodology in detail in 12 pages.
However,we hope that an understanding of its structure and some sense of its phases,
deliverables,activities,and depth of detail can be gained.
2 System specification
Agent systems are typically situated in a changing and dynamic environment,which
can be affected,though not totally controlled by the agent system.One of the earliest
questions which must be answered is how the agent system is going to interact with
this environment.In line with[22]we call incoming information from the environment
“percepts”,and the mechanisms for affecting the environment“actions”.
As discussed in[26]it is important to distinguish between percepts and events:an
event is a significant occurrence for the agent system,whereas a percept is raw data
available to the agent system.Often percepts can require processing in order to identify
events that an agent can react to.For example,if a soccer playing robot’s camera shows
a ball where it is expected to be then this percept is not significant.However,if the ball
is seen where it is not expected then this is significant.
Actions may also be complex,requiring significant design and development outside
the realm of the reasoning system.This is especially true when manipulation of physical
effectors is involved.We shall not address percept processing and actions any further
in this paper.Both can be done within the agent system(either in specific agents,or