home » user manual » objectives

Nuin: overall aims and objectives

In this section, I try to outline the primary aims and objectives for the Nuin project, principally in order to ground the design decisions and development priorities that are described elsewhere.

Background: what makes agent systems interesting?

By way of setting the context, the following are a summary of my personal views on why it's an interesting research goal to build agent systems. I don't intend to try to define what an agent system is, others researchers more skilled than I have attempted that, and little consensus has so far emerged.

Briefly, my interest is in building computation systems which the user perceives as acting autonomously, and therefore adopts a different stance in their interactions with the system. The typical example is that the user sees his or herself delegating tasks and responsibilities, rather than commanding and controlling as in a traditional direct-manipulation style of interaction. A whole host of technical, social and ethical problems then arise, together with some exciting possibilities for building computer systems with very different characteristics. The agent in this conceptualization is that part of the system that is identified as being the locus of autonomous behaviour.

Thus, I am not primarily interested as agent societies as a generalization or extension of distributed object-oriented systems. As a software developer, I want to be spending my time building interesting, flexible agent behaviours. The problem is, however, that most extant software agent platforms concentrate primarily on the agent society infrastructure: messaging, directory services and so forth. While such services are necessary for building any serious scale application, on their own they do not provide sufficient help for the agent designer to build interesting agents. An agent is an agent by virtue of what it does, not simply by being a Java sub-class of an Agent class.

One way to characterise the issue is to compare the number of agent toolkits that have support for agent infrastructure services (large) with the number that provide support for developing BDI, or other deliberative agent architectures (very small).

Objectives

Given this framing, my objectives in designing Nuin are:

These objectives provide the drivers for the design decisions I have taken. For example, I want to make it possible that an agent designer can build Nuin agents using Jade to provide infrastructure services, while another could use web-services as the infrastructure substrate. This requires the communications services, for example, to be factored out as pluggable components, rather than rely exclusively on an agent platform such as Jade. This approach, incidentally, is essentially congruent with that advocated in the FIPA abstract architecture.

« prev: index | objectives | next: design principles »