The long term goal of an agent is the main purpose of the agent program, i.e. to maintain a database, to collect data, to provide services for other agents etc. An agent's beliefs are what it knows to be true at any given moment and these are represented as Prolog facts. When an agents starts it waits until an agent event happens. All communications are managed according to the predicates defined in the protocol definition files. These files contain the instructions about what to do when an agent receives a message, connects to another agent or wants to send a message out.
Every agent runs a server which listens for incoming connection requests.
This server starts operating when the agent is initialized and uses the protocol specified when the agent was created. An agent connects to other agents, sends and receives messages using the predicates defined in its protocol definition file. Currently two protocols are defined, default and simple. The format of the messages exchanged between the agents will depend on your choice of agent communication language. Agent Events Agent events are posted when they are sensed either by the agent library or the agent itself.