The word "agent" is packed with connotations. James Bond, John Le Carre, Mata Hari. But software agents are not so glamorous. They are designed to take the drudgery out of IT, providing an electronic personal assistant.
Arguably the earliest technology with agent functions was the recording macro which remembered and replayed actions, as a dumb assistant might. An early commercial use of the term "agent" came from Hewlett-Packard 10 years ago. As part of New Wave, a document-based front end to Windows 3.0, the user was provided with icons of a sinister looking figure in dark glasses. If a document was dropped on one of these agents it would carry out a task on that document.
Soon after, Apple set the target for those who were serious about agent technology. In a video called Knowledge Navigator, Apple's researchers looked 20 years into the future. Knowledge Navigator featured a book-like device with a flexible colour screen. When the device was activated, a small window opened showing a human-like head. The Navigator's user could hold a conversation with this electronic agent, which would then do his bidding.
When considering today's technology it is useful to keep in mind the long-term vision. The complete concept is dependent on natural language handling, a separate technical issue, but that aside it demonstrates clear requirements for effective agents. An agent needs to be able to communicate with both the user and its sources. It needs to be autonomous, able to operate independently. It needs to be capable of taking action, and it needs to be adaptive, learning from experience.
In Knowledge Navigator there were four main classes of agent activity - the co-ordinating intelligence, researching, handling schedules and documents, and handling interpersonal communications. To this we have to add a purchasing function, as the commercial development of the Web since Knowledge Navigator has changed the requirement space.
Purchasing agents are electronic middlemen, finding best price for the customer's requirement. A good example is Bookbrain. This uses a database of books in print to allow the customer to make a selection. The agent then checks pricing of the selected book in a range of online shops. It displays a comparison on both basic cost and the price including shipping charge, which often changes the balance on which supplier is most cost-effective.
Purchasing agents are a worrying development for e-commerce sites, threatening to turn them into homogeneous commodity suppliers, but are valuable to the purchaser. Such agents have reached business too in Sprinter. Developed by Tranmit this software sits between a corporate's purchasing system and its suppliers Web catalogues. When the company wants to buy 10,000 ball pens, the system can find the cheapest goods available, pulling back a list in price order. Another module of Sprinter then provides the in-house purchasing system with a way to place the order on the supplier's Web site, overcoming the complexities of a thousand different shopping carts.
The Internet has also spawned research agents, which are as valuable in business as in academia. A research agent trawls the Web for information, acting independently of the user's computer to travel around using a wide range of search resources.
The impression given is of sending an agent out into cyberspace, though in practice the searching is simply handled by another computer, which then feeds the results back to the user.
To do this effectively, with more intelligence than a simple search engine, requires the ability to understand context. If you used a research agent to find information on software agents, you would not want details of MI5. In the knowledge engineering terms used by agents, this requires an ontology. Ontologies define bodies of knowledge which can then be mechanically applied.
Typically these will consist of a structure - a taxonomy defining the relationship between different classes of information - and a series of rules that can be used to infer one piece of information from another. With an ontology established, an agent can give the impression of intelligence in selecting and classifying research, the essential requirement if it is to be truly helpful.
The least developed of the requirements are the personal assistant and communications agents. The PA is a self-managing diary and helper, co-ordinating schedules and managing documents. Some of these facilities are present in software such as Microsoft Outlook, but the intelligence is lacking. Similarly, a communications agent ties into intelligent telephony to establish who is calling, then place calls and interact appropriately with callers. A few elements of this exist in contact management software, but again functionality is restricted.
To be capable of acting on the user's behalf, the agent needs more than knowledge management technology - it has to be capable of interacting with a wide range of other systems.
A human Web user will scan a page looking for appropriate directions, then use the interface controls to achieve a result. This is syntactically challenging for an agent. As a short-term measure, agents are being programmed with the specific interfaces of individual sites.
Longer term, languages such as KQML and FIPA ACL are being developed to facilitate inter-agent and agent-site communication, but the complexity of the problem faced both in interaction and ontology for a general purpose agent is immense. For the moment, agents will stay with tightly bounded roles.
One aspect of Apple's Knowledge Navigator does not exist at all as yet: the co-ordinator. It seemed originally that a single agent would perform all tasks, but the development of lower level agents makes it more practical to have a coordinating intelligence that pulls together the efforts of the other agents. For the moment this role is undertaken by a human being, but it's only a matter of time before it too is automated.
Agents are here to stay, though - and could make life very interesting for IT departments and end-users alike.
Media Lab Agents Research Group
UMBC Agent Web