An agent-based system is a program modeled after an artificial society. In such a system multiple agents inhabit an environment. For example, the environment might be a virtual market and the agents might be virtual shoppers and sellers.
One agent can play multiple roles in a society. For example, in our market an agent might be a be a shopper sometimes and a seller at other times. We can model the roles an agent plays as separate strategy objects called behaviors.
Executing a behavior involves performing actions in order to achieve some goal. Behaviors can be simple behaviors such as a sequential or cyclical, or they can be composite patterns such as finite state machines.
Note that this design combines the Strategy pattern with the Composite pattern.
Note that agents are active objects. This means each agent owns a virtual machine in which it can cycle through its behaviors executing one after another.
Applications of multi-agent systems include ubiquitous computing, grid computing, artificial life, air traffic control, and web services.