Agent Technology

In recent times, it has become clear that traditional IT systems are not suited to interacting with dynamic environments. Implementing the interaction has proven to be time consuming and error prone. It is particularly problematic where there are many external entities that must be controlled, serviced or modelled. In the past, implementing such systems has entailed explicitly programming the interaction with each external entity. If this is more than a simple client/server interaction, then the application will be difficult to implement, maintain or change.


In contrast, JACK™ Intelligent Agents has proven to be well suited to applications requiring complex interactions with an ever-changing environment. Each JACK agent is an autonomous computational entity. Autonomy, coupled with the ability to take input from the environment and communicate with other agents, provides system builders with a very powerful form of encapsulation. A given agent can be defined in terms of its goals, knowledge and social capability, and then left to perform its function autonomously within the environment it was designed to function in.


This is a very effective way of building distributed applications; each agent is responsible for pursuing its own goals, reacting to events and communicating with other agents in the system. There is no need to explicitly program the communication, rather, the interactions emerge as a by-product of the individual goals and capabilities of the constituent agents.


The Challenge of Software Complexity

In many areas, IT systems are required to interact with multiple entities in a highly dynamic environment (e.g. air traffic control, share trading, manufacturing). As the environment becomes more complex and dynamic, it becomes increasingly difficult to explicitly program how to respond to the multiple unexpected events. Interaction is the most significant characteristic of complex software. Software that comprises many interacting components is much more complex to engineer.


As a result of the availability of greater computing power, more demanding tasks are being delegated to computer systems. This has led to a need to build IT systems that act on our behalf and consequently require a high level of intelligence. Delegation implies two capabilities:

  • The ability to operate autonomously (i.e. without intervention on our part).
  • The ability to represent our best interests while interacting with humans or other systems.
  • This implies an ability to co-operate and negotiate with other systems.

These requirements have led to the emergence of AOS's world-leading agent-oriented technology, JACK.


A Real-World Example of Complexity

In contrast, JACK™ Intelligent Agents has proven to be well suited to applications requiring complex interactions with an ever-changing environment. Each JACK agent is an autonomous computational entity. Autonomy, coupled with the ability to take input from the environment and communicate with other agents, provides system builders with a very powerful form of encapsulation. A given agent can be defined in terms of its goals, knowledge and social capability, and then left to perform its function autonomously within the environment it was designed to function in.


This is a very effective way of building distributed systems – each agent in the system is responsible for pursuing its own goals, reacting to events and communicating with other agents in the system. There is no need to explicitly program the interactions of the whole system, rather, the interactions emerge as a by-product of the individual goals and capabilities of the constituent agents.


What are Software Agents?

The term agent has been used to describe systems such as procedural wizards in desktop applications, and information retrieval software. Although there is no universally accepted definition of the term agent, there is general consensus that autonomy is central.


In contrast to object oriented programs, agents are self-contained computational systems. Each agent runs independently and interacts with other agents or external systems to achieve its design objectives.


JACK agents have qualities over and above those found in simple agent systems. Most importantly, JACK agents have intelligent reasoning capabilities and are proactive, anticipating future events. They are also reactive, responding in a timely fashion to environmental change. Furthermore, JACK agents can work in teams as humans do, collaborating to achieve objectives.


But are Software Agents for Me?

Because the term agent is used to describe a wide range of architectures, some quite trivial, we will focus on capabilities that are at the "high end" of the spectrum. Agent-oriented systems at the highly capable end of the spectrum, such as JACK, have the following key features:

  • Autonomous – Operate without external supervision.
  • Proactive/Reactive – Exhibit both goal-directed and reactive behaviour.
  • Situated – Focus on the relevant subset of the environment, and respond to change in a timely fashion.
  • Social – Interact with other agents to achieve joint goals.
  • Intelligent – Can perform functions that require higher-level cognitive abilities.

AOS – Provides the World's Leading Agent Tools

AOS supplies products for building, running and integrating commercial-grade multi-agent systems, built on a sound logical foundation: BDI (Beliefs, Desires, Intentions). BDI is an intuitive and powerful abstraction that allows developers to manage the complexity of the problem. Agents are defined in terms of their beliefs (what they know and what they know how to do), their desires (what goals they would like to achieve), and their intentions (the goals they are currently committed to achieving).


Although one can ascribe beliefs, desires and intentions to any system (e.g. a light switch), it is most useful when applied to entities whose structure is incompletely known. For example, with a light switch BDI doesn't buy us anything because we have a simpler, mechanistic description of its behaviour. However, when designing an intelligent agent that must interact with an ever-changing environment, it helps to think in terms of the agent's beliefs, desires and intentions. It is an intuitive abstraction that has proven its worth over the last two decades.


Visit the JACK product page for further information.