An environment is a network of places. Examples of places include shops in a mall, rooms in a house, locations in a computer game, web sites in MySpace, etc.
Places are inhabited by agents. Examples of agents include people, robots, web services, game characters, etc.
Mobile agents can move from their current place to a neighboring place in the environment. Stationary agents must stay put. For example, in a mall shoppers are mobile agents. They can move from shop to shop. Shopkeepers are stationary agents. They must stay put.
An agent can play many roles in an environment. For example, when a shop closes, the shopkeeper may go home where he becomes a husband, he may go to school where he becomes a student, or he may go to a mall where he becomes a shopper.
A role provides an agent with goals and behavior patterns. For example, an agent playing the role of military commander barks orders and tries to win battles. The same agent playing the role of student defers to his teacher and tries to pass exams.
We can summarize these concepts with a UML class diagram:
Agents can have conversations with other agents. Conversations conform to patterns that are determined by the roles that the agents are playing. For example, a conversation between a doctor and a patient conforms to a pattern quite different from the pattern of conversation between a policeman and a suspect. Of course the same agents might be involved in both conversations if, for example, the patient is an off duty policeman who later stops the doctor for suspicion of drunk driving.
These conversational patterns are called protocols. We can represent conversations and protocols using UML sequence diagrams:
A society consists of many agents playing many roles and having many conversations. Although the behavior of individual agents might be simple, the collective behavior of the society might be quite complex. For example, the behavior of a neuron is simple:
If inputs from downstream neurons exceeds threshold,
send an output to upstream neighbors.
And yet the behavior of the neuron society might be to solve a complex math problem.