02 March 2001
Software agents operate on the fringe
The terms software agent, agent, intelligent software agent, mobile agent, intelligent agent, and other phrases using the term agent mean different things to different people. For example, some people presume that agents must be intelligent, some presume they must be autonomous, some presume mobility, and some people have agents that execute on a fixed server.
Here is my definition: A software agent is a computer program whose execution is contingent upon events and data conditions in its environment and that is not under continuous, direct control by a human user.
The dictionary says an agent is "one who acts for in the place of another by authority from him." I'd adjust this to say an agent is "an entity that acts on behalf of another entity."
There is an implication that the agent acts with at least some autonomy. There is also the implication that the agent does its thing wherever appropriate and is not restricted to being colocated with its client.
Loosely speaking, we say autonomy is a requirement for being an agent. But it would be more correct to say agents have a degree of autonomy. Sometimes preprogrammed agents complete their tasks without any further interaction with their creators.
But it's reasonable and frequently preferable for an agent to periodically interact with its creator, if only to report progress or request additional guidance. The real requirement is that the agent take on some of its creator's burden and free him from at least some of his tasks. So I say an agent has some degree of autonomy.
A word processor would not by itself be an agent, but an automatic spell checker would be an agent. I don't consider a Web browser to be an agent, but a search engine might be an agent.
An autonomous Web search engine that periodically reports search results based on criteria specified by the user could possibly be an agent, too. An agent periodically interacts with a user, so absolute autonomy is not a strict requirement. To avoid the confusion over the meaning of autonomy, we could instead say an agent is not under continuous, direct control by the user.
Jack Krupansky is a software developer and has been programming for more than 25 years. His firm is Base Technology.