CATS: What is an Agent ?
The CATS project's first goal is to provide a formal, mathematically
sound, yet practically realizable definition of an agent program. In
today's world, almost any software program P is referred to as
an agent. Is this correct ? We think not.
Any definition of an agent must satisfy certain conditions:
AN AGENT DEFINITION IS A BOOLEAN PREDICATE.
Such a definition must provide a Boolean Predicate agent such that
agent( P) holds iff P is considered to be an agent
according to the definition.
AN AGENT DEFINITION MUST ALLOW NON-AGENT PROGRAMS TO BE EXTENDED TO
AGENTS.
Given any program P which is not an agent according to
the provided definition, there must be a way to extend P
in some minimal fashion to a new program P'
such that P' is an agent according to the definition.
Thus, people whose programs are not considered to be agents must be
able to agentize their programs.
THE CATS APPROACH
In the CATS approach, for a program P to be considered an agent,
P must have the ability (1) to know what properties it has, (2) how and
with whom it can collaborate, and (3) how it can personalize its services to
satisfy a human or another agent.
These three criteria lead to three abstract mathematical definitions, with
corresponding data structures in CATS, that are briefly described below. Each
agent must "instantiate" such a structure.
Agent Property Abstraction (APA)
Each agent has certain intrinsic
properties. These properties must be described or "advertised" by the
agent by instantiating
the APA. Other agents may use the instantiated APA provided by agent
P to determine what services P can provide, as well
as the software interoperability criteria required to access such services.
Agent Collaboration Abstraction (ACA)
Each agent has
certain properties that are relevant to collaboration. For example,
agents will communicate with each other.
The ACA is an abstract framework that
specifies the conditions under which one agent may invoke another one,
together with the formal mechanism used in such an invocation.
Personalized Agent Abstraction (PAA)
It is entirely possible that there are certain tasks that a user
performs often. The PAA specifies an abstract structure, which,
when instantiated, creates an agent that is personalized to the
needs of the user.
Back to CATS homepage