Main Page

From Agent Factory

Jump to: navigation, search


ANNOUNCING: The ASTRA Programming Language

ASTRA is an implementation of AgentSpeak(TR) the language proposed by Keith Clark, which combines Rao's AgentSpeak(L) language and Nilssons Teleo-Reactive programming paradigm. ASTRA is closely integrated with Java via typed variables; annotated classes that specify actions, formulae, terms, and sensors that can be directly accessed in agent code; and a familiar syntax. Finally, ASTRA moves away from monolithic Agent Factory style deployment environments by pre-compiling all ASTRA code to Java and offering a simple mechanism for creating and executing agents in Java, making it simple to deploy ASTRA agents and to integrate then with other systems.

More information on ASTRA can be found at

Agent Factory

The Agent Factory Framework is an open source collection of tools, platforms, and languages that support the development and deployment of multi-agent systems. The framework is broadly split into two parts: support for deploying agents on laptops, desktops, and servers; and support for deploying agents on constrained devices such as mobile phones and sensors. The former support is realised through Agent Factory Standard Edition (AFSE), and the latter support is realised through Agent Factory Micro Edition (AFME).

  • All versions of Agent Factory can be downloaded from SourceForge.

Agent Factory Standard Edition (AFSE)

AFSE is a modular and extensible framework that provides comprehensive support for the development and deployment of agent-oriented applications. It combines a fully fledged FIPA-Compliant Agent Platform with support for a range of Agent Programming Languages and Architectures.

The key features of AFSE are:

  • Run-Time Environment (RTE): A FIPA compliant layer that consists of a set of modular and extensible agent platforms that can be easily customized for different applications domains.
  • Common Language Framework: A collection of components that facilitates the design and implementation of diverse Agent Programming Languages, including:
    • a generic logic framework with forwards and backwards chaining;
    • a planning / plan execution framework;
    • a common API model based on sensors, actions, and modules (delivers support for sensor-action libraries);
    • a set of standard libraries that provide basic functionality;
    • an outline Grammar and template compiler implementation based on JavaCC; and
    • a configurable debugging tool that supports visualisation of both agents and services.
  • Eclipse Integration: AFSE is fully integrated with Eclipse in a way that simplifies the task of providing support for new languages and architectures. Details on how to install and use this plugin can be found here.
  • EIS-Enabled: The Environment Interface Standard is a proposed standard for linking agents to environments. AFSE support for EIS is described here.
  • ACRE-based Conversation Support: ACRE is an Agent conversation reasoning engine that provides support for implementing conversations and protocols in AOP languages. ACRE has been integrated with AFSE.

For details of how to install AFSE, and an introduction to how to program Java-based agents, please read the Getting Started Guide.

Development Kits Currently Available for AFSE:

Currently, the following Agent Programming Languages have been built using the Common Language Framework:

  • AFAPL: A reimplementation of the original Agent Factory agent programming language that is based on commitment rules.
  • AF-AgentSpeak: An implementation of the AgentSpeak language based on Jason.
  • AF-TeleoReactive: An implementation of Nilsson's teleo-reactive programming model.
  • AF-ASTR: An implementation of Keith Clark's proposed integration of AgentSpeak(L) and Teleo-Reactive Programs, known as AgentSpeak(TR), through the extension of the AF-AgentSpeak interpreter to include Teleo-Reactive support.

Additional Development Kits that have also been created include:

  • AFAPL2: An extended version of the original version of AFAPL that includes additional plan operators, roles, and goals.
  • Reactive Message Agent Architecture: A simple reactive agent architecture that can be used to build agents that respond to messages.

Tool-based support is provided through a custom plugin for Eclipse.

AgentSpotter Profiling Tool for AFSE:

AgentSpotter is the first purpose-built tool for profiling Multi-Agent Systems. It has been designed to work with any agent platform, but currently is configured only to work with AFSE. Details on how to use the tool can be found here.

Agent Factory Micro Edition (AFME)

AFME is a light weight agent platform that has been designed to work with J2ME-CDLC MIDP2.0. It consists of a reduced footprint agent platform together with a Belief-Desire-Intention (BDI) style Agent Programming Language that is optimised for operation on constrained devices.

For more information on AFME, please read the AFME Programming Guide.

Spotlight Deployments

For a more complete list of AF-based projects, see the Projects page.

Demonstrator: AFSE-EIS-OpenSim Integration

This video shows agents developed using Agent Factory controlling OpenSim avatars via a EIS-based interface developed in UCD. Details on how to download and deploy this system can be found on the AF-EIS-OpenSim page.

Demonstrator: VacWorld

VacWorld is an EIS Environment that has been developed in UCD and is based on a 2D grid world inhabited by VacBots who clean dust. You can see a demo of this environment in operation by clicking here.

Each world is randomly generated and includes a number of obstacles, squares with dust, and 4 VacBots. When you run the Java Web Start application, click on the "Start" button in the Agent Debugger - you can double click on agents to view their internal state.

You can find out more information on Vacworld here.