What are software agents?
Software agents are computer programs that carry out tasks on behalf of a person or another piece of software.
- persistence (software agents do not operate on-demand but runs continuously and decides for itself when it should perform a task)
- autonomy (software agents can select tasks, prioritise operations, choose goals and make decisions without human intervention)
- socialisation (software agents are able to communicate with other software or hardware systems and coordinate work or collaborate on tasks)
- reactivity (software agents use software and hardware sensors to perceive the context in which they operate and react to it appropriately)
Software agents operate autonomously. Unlike common software, a human operator does not have to invoke it to perform a task, but the agent activates itself when necessary. They use sensors to bring them to life at the right moment based on the correct context. They use sensors to assess situations and act accordingly without explicit command from anywhere else.
What software agents are not
There are a number of related and derived concepts which are often confused with software agents:
- intelligent agents (in particular exhibiting some aspect of artificial intelligence, such as learning and reasoning),
- autonomous agents (capable of modifying the way they achieve their objectives)
- distributed agents (being executed on physically distinct computers),
- multi-agent systems (distributed agents that do not have the capabilities to achieve an objective alone and thus must communicate)
- mobile agents (agents that can relocate their execution onto different processors).
How do they work?
Arguably there are 4 principal categories of agents: personal agents, shopping agents, monitoring agents and data-mining agents.
The most popular are the personal agents. There check and sort email for you, play games for and against you, browse the web for you , find you jobs, fill in forms online for you and more.
The emergence of software such as Apple Siri and Google Now are examples of software agents that cover more than one category of agent. They perform a lot of agent tasks behind the scenes, often co-operating with other software, to know where you are, recognise your interests, prioritise your email and more so that when you interact with them they can quickly and intelligently respond. In 2012 they were in their infancy and will grow more confident as we put more trust in them.
This brings up one of the greatest challenges of agents, that of trust. Software can certainly book a flight, get a hotel room and rent a car for us based on an email where we have agreed to go see our friend. But do we want it to do so without our direct say-so? Starting to trust software agents linked to intelligent agents truly autonomously handle our day to day tasks is difficult for most humans.
In addition we get a sense of satisfaction from completing small tasks ourselves. If we lose this it may cripple motivation. Often in work these small taks provide the impetus to do the larger ones. Also if a worker now relies on a machine to do tasks for her, then she will never learn certain skills, which will create a skills gap.
These concerns do not require active attention as they will most likely gradually become irrelevant as society evolves around the existence of software agents, which, quite ungenerously could be called our new working class.
What is necessary to make them commonplace?
The basis of software agents are all around us already, from mail clients checking and sorting your email to bots browsing the web for data. As software agents integrate with intelligent agents and human computer interfaces they will become more commonplace doing everything from providing better health to helping drive your car.