What is a software agent?

An agent is a self-contained software program that can reside on a system, network or device. Software agents have a goal or an overriding purpose, and can adapt their actions to achieve these goals. In simple terms, software agents support the following characteristics:

  • They have a central goal or purpose.
  • They can communicate with other software agents.
  • They react to external stimulus and change their behaviour accordingly.
  • They can be proactive by formulating plans or actions towards their goal.

An agent can be therefore defined as a software entity with goals, actions, and domain knowledge, situated in an environment. The way it acts is called its 'behaviour'. The agent evaluates the information it receives and formulates the best plan to meet its goals and perform its role within a business process. Collectively, agents in a multi-agent system can operate and interact with a number of other heterogeneous agents to execute an overall business process.

Multi-agent systems are designed to handle changing and dynamic business processes. They continue to operate even when there may be incomplete information, but a decision must still be made by the most effective method. Properly integrated into a business process they can offer flexible and intelligently adaptable systems support, which will consistently out perform monolithic and cumbersome traditional systems.