What is an autonomous (intelligent) agent?
6th November 2006
What is an autonomous “intelligent” agent? moved to Strong-AI.info
In this post, some definitions and examples are given. This is an introductory text.
First of all there is a need to explain why “intelligent” is in braces in the title. Well, it’s simple: whatever the agents are at the moment of writing, they are just specific, narrow algorithms with no signs of intelligence. As soon as I come across the evidence of the contrary, I will happily remove the braces around “intelligent”. But for now – braces stay.
What is an agent? According to the numerous sources I checked, agent is an entity with some characteristic features. These fundamental features are:
- agent acts on behalf of others. For example, you may hire a person who would attend parents’ meetings at the school of your children: in this case, that would be a “parental agent” , who comes to the meetings on your behalf.
- agents are to some extent autonomous (i.e., enjoy some degree of autonomy). In our example, the “parental agent” has freedom to act and respond the way he feels appropriate in his communication with other parents at the meeting; but at the same time he must follow the behaviour strategy you outlined for the official messages announced by the school staff.
- agents are proactive and reactive. Proactive means that agent may exhibit his own independent initiative, which is not (at least directly) related to the delegated tasks of the agent. Reactive tells us that agents will respond to stimuli – e.g., given a task, agent will try to do that task.
- agents are able to learn – that is, they have memory, which influences their further actions.
- agents may be cooperative – help each other or just join efforts to complete given tasks.
- agents are mobile.
Wikipedia (3) gives a more specific, but also seemingly narrow list of agent features.
Software agents (or just “agents”) are software systems that loosely conform to the above definition and features list. The main idea behind agents is to make computers active in human-computer communication. If we take a look at how we use computers nowadays, that could be best described as “point-and-click”: we do everything ourselves, only rarely using some specific, narrow-use tools for separate small operations (as a rule, computationally intensive). Simple example can be any wordprocessor: imagine you typed your article for submission to some journal, and then the journal decides to change the rules for manuscript submission. You get the example of a new format, and see that it is just differently formatted, with the order of parts changed. Now, to fix this, you “point-and-click” to move the parts and change formatting. If there was an agent, you could ask it to make your article conform to the new sample – and that would be all.
Probably this is where the notion of “interface agents” appeared. It has nothing more behind than just the ability of any untrained person to interact with computer systems (software systems). I suppose this is a legacy entity from the times of command-line-only or even punch-card interfaces, and should not be further considered. The only point to be said here is that intelligent user interfaces are expected to be adaptive – that is, in the course of time of interacting with the user, change themselves for the maximal efficiency of mutual operation. As for me, this boils down to actually some “intelligence” of the agent, and is worth being separated into a distinct field as long as it needs to be manually programmed.
Coming back to agents, there are other reasons for their importance and necessity in them. The spell of “information overload” comes in handy here – agents could help here, as well, by filtering data based on the individual preferences they remember about their user (or should it be Master? ).
Somewhat overlapping is also the process of overall computerization, which means no more hand-work, but lots of typing and clicking instead. Speech recognition and synthesis are available, but they do not yet enable us to talk to computers when we want something a bit more complicated than “printing a page” to be done.
The above-mentioned agent cooperation can be sub-divided into three smaller entities, such as communication, coordination and agreement negotiation. Being capable of communicating grants ability to exchange information; coordination enables tasks sharing, and negotiation helps resolve inconsistencies, which may arise due to different factors (unreliable or controversial data, conflicting task results etc).
As for the mobility feature from the list above, I see no clear picture. Thus I’ll provide some definitions and will let you decide whether an internet worm (computer worm) is a mobile agent or not:
A mobile agent is a software entity which exists in a software environment. It inherits some of the characteristics of an Agent. A mobile agent must contain all of the following models: an agent model, a life-cycle model, a computational model, a security model, a communication model and finally a navigation model.
A mobile agent environment is a software system which is distributed over a network of heterogeneous computers. Its primary task is to provide an environment in which mobile agents can execute. The mobile agent environment implements the majority of the models which appear in the mobile agent definition. It may also provide: support services which relate to the mobile agent environment itself, support services pertaining to the environments on which the mobile agent environment is built, services to support access to other mobile agent systems, and finally support for openness when accessing non-agent-based software environments. (Source: reference 1)
In reality, a discrete number of practically applied agents (or simply bots) can be distinguished (2-4):
- Shop bots, or buyer agents. These are systems, which crawl internet shops comparing prices for items, and presenting that combined info to the user. These systems are highly popular and widely used nowadays. Amazon is one of these – when you look up something, you get offers on “both new and used”, and these are found by Amazon shopbot. Another feature you already know of is the ability of the shopbot to provide personalized recommendations – e.g., if you buy a book in statistics, you’ll get some more recommendations on statistics books; this eases the task of browsing the catalog, and lets you focus on what matters for you. Shopbot can also be a standalone program – downloadable to your computer, and acting as a simple search utility. Refer to Agentland for samples.
- Personal/assistant agents. These are actually “personal secretaries” or actually assistants, which combine the abilities and features of other bots listed here. These are expected to be rather versatile tools, being the closest to what might be considered “intelligent” in my opinion. Personal assistant could get a spoken inquiry from you, then search the internet with a number of keywords and phrases (generating and improving search phrases in the process), and finally prepare a report for you on the subject you requested. Personal assistant could also remind you of the forthcoming events, keep track of important notes, records and dates, check you mail – and check if it’s spam or not, as well. What is also important, personall assistant should be capable of conducting at least somewhat intelligent chat with you on a variety of topics. Based on my experience, there are currently no personal assistants which would be close to all the listed criteria (wikipedia adds some more to the list, e.g. personal assistant as an opponent in a multiplayer computer game). One of the earliest and good-looking attempts was Ultra Hal Assistant 5.0 by Zabaware; it was free at that time, now it’s version 6 which is no longer free, and has some improvements over old version, but is still more of a toy to me than a personal assistant.
- Monitoring agents. These check some finite sources of information for changes and report when changes surpass some arbitrary threshold. These agents can monitor pretty much anything – websites, computer networks, hardware conditions etc. Heed the warning: some monitorig agents are actually spyware/keyloggers/remote shells/remote administrators; there is always a risk of being watched by installing this kind of software to watch others.
- Data miners, and search agents. These gather data from a multitude of sources to give you the single (hopefully the most relevant) search results set. These can also classify data, and summarize large chunks of data into small abstracts.
I also came across “web/browsing agents” (which are just tools for browsing, not agents), “webmastering agents” (which are either data miners and monitoring agents or just bulk-submit tools), “game agents/AI gaming” (which look to me no different than any GameAI), and “artificial life” agents (which might be both “artificial” and “life” but not agents, as they do not fit the simplest definition).
There is a good discussion of how agents differ from usual computer programs and how agents can be generally classified here.
Instead of the conclusion: The truth is out there, and the “agents” as well . Utility-level “agents” are slowly developing, but I wonder if they can algorithmically supercede the limit of just being a piece of software programmed for a finite set of (even complicated) actions; I think this is not going to happen, however. There are some efforts involving more flexible approaches, which might survive and evolve into quasi-intelligent agents. Personally, I expect that some different approach to agents creation will give the best results, just because practice proves that current approaches are not good.
I intend to study the field of (intelligent) agents and software systems in more details during the forthcoming months; as time permits, I’ll put processed data into this blog. Stay tuned.
Some references: