Common Language Framework

From Agent Factory

Jump to: navigation, search

The Common Language Framework (CLF) is a set of pre-written components for Agent Factory that supports the building of agent interpreters on top of the Agent Factory core. These interpreters operate within an agent platform to control the execution of the agent, according to an interpreted Agent Oriented Programming (AOP) language.

A key feature of the CLF is the ability of agents written in different AOP languages (and therefore using different agent interpreters) to share the same actions, sensors and modules. These are the three key components in extending an agent program so that an agent may gain information about its environment and effect its intentions. In CLF parlance, a module is also known as a library or API. A number of generic libraries have been developed to support programming of agents. Details of many of them can be found here.


Actions are components that enable an agent to effect some change to its environment. An interface is defined for each action that defines how it may be invoked from within an agent program (an identifier and a specific number of arguments). Sensors support the generation of beliefs for an agent, so as to furnish it with the knowledge it requires to satisfy its goals. In the event that a group of sensors and/or actions are linked, they may be defined from within a module, which may also provide resources that are shared amongst several sensors and actions.

To date, three distinct AOP langagues have been implemented within the Agent Factory CLF:

  • AFAPL: The Agent Factory Agent Programming Language (AFAPL) is the original AOP language developed in conjunction with the Agent Factory framework~\cite{Ross2006}. It is based on a core of beliefs and commitments, with additional support for other features such as plans and goals.
  • AF-AgentSpeak: is an implementation of Rao's AgentSpeak(L) language. AgentSpeak is a BDI-based language, with beliefs, plans, goals, actions, intentions and events as part if its mental model.
  • AF-TeleoReactive is based on Nilsson's TeleoReactive model. This model is based on circuit semantics and has a hierarchical set of action rules as its core.

Although each of these languages features its own agent interpreter, the framework acts in such a way so that any module (with its associated actions and sensors) created with one AOP language in mind can also be used in an agent program written in any other supported language. This includes any further languages for which a CLF interpreter is added in the future. This is designed to promote the reuse of code via the creation of cross-language modules.

As with the core of the Agent Factory framework, CLF modules are written in Java, by extending existing abstract classes that are in turn designed to implement the interfaces required by a CLF component.