The agent-based approach can be viewed as the next step in the evolution of software engineering.
Languages have evolved from being based on the machine's
architecture to being based on the problem domain. Agents
are more common than objects.
The basic building blocks have evolved to have more
localization and encapsulation. Agents localize purpose and
action selection.
More re-sue. Agents enable whole subsystems and
flexible interactions to be re-used. They enable the re-use
of legacy code (stable intermediate forms again).
Agents are ideal for developing software in open, networked systems. These systems need
Individual problem solving entities that can achieve the specified objectives.
The entities must be able to handle the uncertainty.
They need to interact with entities that were not foreseen at design time.
Any organizational relationships between stake-holders must be reflected in the behaviors of the entities (i.e., do what's good for me).