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