Multi Agent System
A Multi Agent System consists of a group of highly autonomous entities (agents) that all perform a single function well. Together they solve a complex problem or control a complex system.
An Agent is a component that autonomously interacts with its environment. It is never told what to do, one can merely request it to do something. It acts without being told. It should have a single, clear purpose. It's internal structure is not accessible to others.
Where does it come from?
The term Multi-Agent Systems was popularized by Mike Wooldridge in his 1992 PhD thesis. MAS are an exponent of Distributed Artificial Intelligence and Agent techniques.
When should you use it?
Use it when your application requires many parts that all need to be active at the same time, do not have a single solution space and do not require a centralized control.
How does it work?
Agents can be organized in different ways in a MAS:
Picture: Flat Organisation
Picture: Hierarchical Organisation
Picture: Subsumption Organisation
Picture: Modular Organisation
Agents communicate with each other by sending messages. The messages use Speech Act Theory as their basis. Special agent-to-agent communication languages exist, formalising the way they should communicate. Along with formalised agent ontologies, they form semi-standardized ways of letting all sorts of agents communicate. This seems overkill for small size applications, however.