Agent-oriented programming

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Agent-oriented programming (AOP) is a programming paradigm where the construction of the software is centered on the concept of software agents. In contrast to object-oriented programming which has objects (providing methods with variable parameters) at its core, AOP has externally specified agents (with interfaces and messaging capabilities) at its core. They can be thought of as abstractions of objects. Exchanged messages are interpreted by receiving "agents", in a way specific to its class of agents.


Historically the concept of Agent-oriented programming and the idea of centering your software around the concept of agent was first used by Yoav Shoham within his Artificial Intelligence studies, in 1990.[1][2] His agents are specific to his own paradigm as they have just one method, with a single parameter. To quote Yoav Shoham from his paper in 1990 for a basic difference between of AOP against OOP:

...agent-oriented programming (AOP), which can be viewed as a specialization of object-oriented programming. ...
Basic unit object agent
Parameters defining state of basic unit unconstrained beliefs, commitments, capabilities, choices....
Process of computation message passing and response methods message passing and response methods
Types of message unconstrained inform, request, offer, promise, decline....
Constraints on methods none honesty, consistency....


There are multiple 'frameworks' that implement Shoham's programming paradigm, for the Java-platform one of the frameworks is JADE ( Following a very basic example [1] of an Agent that runs code

package helloworld;
import jade.core.Agent;
public class Hello extends Agent {
	protected void setup() { 
		System.out.println("Hello World. ");
		System.out.println("My name is "+ getLocalName()); 
	public Hello() {
		System.out.println("Constructor called");

Agent Speak (Jason)[edit]

For a literal translation of Agent Oriented concepts into a scheme unobfuscated as is JADE, behind Java and Object Orientedness, Agent Speak (Jason) provides a "natural" language for agents.

	+started <- .print("Hello World. ").


  1. ^ Shoham, Y. (1990). Agent-Oriented Programming (Technical Report STAN-CS-90-1335). Stanford University: Computer Science Department. 
  2. ^ Shoham, Y. (1993). Agent-Oriented Programming. Artificial Intelligence. pp. 51–92. CiteSeerX: 

See also[edit]