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:
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: In reality, a discrete number of practically applied agents (or simply bots) can be distinguished (2-4):
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:
This text was first published on 2006-11-06 at http://bogdan.org.ua/ , then copied and linked to here. The purpose of doing so is to collect AI-related publications here, and create initial links in to this site to simplify finding it. |
|||