Software agent
In computer science, a software agent is a computer program that acts for a user or other program in a relationship of agency, which derives from the Latin agere : an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate. Agents are colloquially known as bots, from robot. They may be embodied, as when execution is paired with a robot body, or as software such as a chatbot
executing on a phone or other computing device. Software agents may be autonomous or work together with other agents or people. Software agents interacting with people may possess human-like qualities such as natural language understanding and speech, personality or embody humanoid form.
Related and derived concepts include intelligent agents, autonomous agents, distributed agents, multi-agent systems, and mobile agents.
Concepts
The basic attributes of an autonomous software agent are that agents- are not strictly invoked for a task, but activate themselves,
- may reside in wait status on a host, perceiving context,
- may get to run status on a host upon starting conditions,
- do not require interaction of user,
- may invoke other tasks including communication.
Various authors have proposed different definitions of agents, these commonly include concepts such as
- persistence
- autonomy
- social ability
- reactivity.
Distinguishing agents from programs
Contrasting the term with related concepts may help clarify its meaning. Franklin & Graesser discuss four key notions that distinguish agents from arbitrary programs: reaction to the environment, autonomy, goal-orientation and persistence.
Intuitive distinguishing agents from objects
- Agents are more autonomous than objects.
- Agents have flexible behaviour: reactive, proactive, social.
- Agents have at least one thread of control but may have more.
Distinguishing agents from expert systems
- Expert systems are not coupled to their environment.
- Expert systems are not designed for reactive, proactive behavior.
- Expert systems do not consider social ability.
Distinguishing intelligent software agents from intelligent agents in AI
- Intelligent agents are not just computer programs: they may also be machines, human beings, communities of human beings or anything that is capable of goal-directed behavior.
Impact of software agents
Organizational impact
Work contentment and job satisfaction impact
People like to perform easy tasks providing the sensation of success unless the repetition of the simple tasking is affecting the overall output. In general implementing software agents to perform administrative requirements provides a substantial increase in work contentment, as administering their own work does never please the worker. The effort freed up serves for a higher degree of engagement in the substantial tasks of individual work. Hence, software agents may provide the basics to implement self-controlled work, relieved from hierarchical controls and interference. Such conditions may be secured by application of software agents for required formal support.Cultural impact
The cultural effects of the implementation of software agents include trust affliction, skills erosion, privacy attrition and social detachment. Some users may not feel entirely comfortable fully delegating important tasks to software applications. Those who start relying solely on intelligent agents may lose important skills, for example, relating to information literacy. In order to act on a user's behalf, a software agent needs to have a complete understanding of a user's profile, including his/her personal preferences. This, in turn, may lead to unpredictable privacy issues. When users start relying on their software agents more, especially for communication activities, they may lose contact with other human users and look at the world with the eyes of their agents. These consequences are what agent researchers and users must consider when dealing with intelligent agent technologies.History
The concept of an agent can be traced back to Hewitt's Actor Model - "A self-contained, interactive and concurrently-executing object, possessing internal state and communication capability."To be more academic, software agent systems are a direct evolution of Multi-Agent Systems. MAS evolved from Distributed Artificial Intelligence, Distributed Problem Solving and Parallel AI, thus inheriting all characteristics from DAI and AI.
John Sculley’s 1987 “Knowledge Navigator” video portrayed an image of a relationship between end-users and agents. Being an ideal first, this field experienced a series of unsuccessful top-down implementations, instead of a piece-by-piece, bottom-up approach. The range of agent types is now broad: WWW, search engines, etc.
Examples of intelligent software agents
Buyer agents (shopping bots)
Buyer agents travel around a network retrieving information about goods and services. These agents, also known as 'shopping bots', work very efficiently for commodity products such as CDs, books, electronic components, and other one-size-fits-all products. Buyer agents are typically optimized to allow for digital payment services used in e-commerce and traditional businesses.User agents (personal agents)
User agents, or personal agents, are intelligent agents that take action on your behalf. In this category belong those intelligent agents that already perform, or will shortly perform, the following tasks:- Check your e-mail, sort it according to the user's order of preference, and alert you when important emails arrive.
- Play computer games as your opponent or patrol game areas for you.
- Assemble customized news reports for you. There are several versions of these, including CNN.
- Find information for you on the subject of your choice.
- Fill out forms on the Web automatically for you, storing your information for future reference
- Scan Web pages looking for and highlighting text that constitutes the "important" part of the information there
- Discuss topics with you ranging from your deepest fears to sports
- Facilitate with online job ≤search duties by scanning known job boards and sending the resume to opportunities who meet the desired criteria
- Profile synchronization across heterogeneous social networks
Monitoring-and-surveillance (predictive) agents
For example, NASA's Jet Propulsion Laboratory has an agent that monitors inventory, planning, schedules equipment orders to keep costs down, and manages food storage facilities. These agents usually monitor complex computer networks that can keep track of the configuration of each computer connected to the network.
A special case of Monitoring-and-Surveillance agents are organizations of agents used to emulate the Human Decision-Making process during tactical operations. The agents monitor the status of assets and receive Goals from higher level agents. The Agents then pursue the Goals with the Assets at hand, minimizing expenditure of the Assets while maximizing Goal Attainment.
Data-mining agents
This agent uses information technology to find trends and patterns in an abundance of information from many different sources. The user can sort through this information in order to find whatever information they are seeking.A data mining agent operates in a data warehouse discovering information. A 'data warehouse' brings together information from many different sources. "Data mining" is the process of looking through the data warehouse to find information that you can use to take action, such as ways to increase sales or keep customers who are considering defecting.
'Classification' is one of the most common types of data mining, which finds patterns in information and categorizes them into different classes. Data mining agents can also detect major shifts in trends or a key indicator and can detect the presence of new information and alert you to it. For example, the agent may detect a decline in the construction industry for an economy; based on this relayed information construction companies will be able to make intelligent decisions regarding the hiring/firing of employees or the purchase/lease of equipment in order to best suit their firm.
Networking and communicating agents
Some other examples of current intelligent agents include some spam filters, game bots, and server monitoring tools. Search engine indexing bots also qualify as intelligent agents.- User agent - for browsing the World Wide Web
- Mail transfer agent - For serving E-mail, such as Microsoft Outlook. Why? It communicates with the POP3 mail server, without users having to understand POP3 command protocols. It even has rule sets that filter mail for the user, thus sparing them the trouble of having to do it themselves.
- SNMP agent
- In Unix-style networking servers, httpd is an HTTP daemon that implements the Hypertext Transfer Protocol at the root of the World Wide Web
- Management agents used to manage telecom devices
- Crowd simulation for safety planning or 3D computer graphics,
- Wireless beaconing agent is a simple process hosted single tasking entity for implementing wireless lock or electronic leash in conjunction with more complex software agents hosted e.g. on wireless receivers.
- Use of autonomous agents to optimize coordination in groups online.
Software development agents (aka software bots)
Design issues
Issues to consider in the development of agent-based systems include- how tasks are scheduled and how synchronization of tasks is achieved
- how tasks are prioritized by agents
- how agents can collaborate, or recruit resources,
- how agents can be re-instantiated in different environments, and how their internal state can be stored,
- how the environment will be probed and how a change of environment leads to behavioral changes of the agents
- how messaging and communication can be achieved,
- what hierarchies of agents are useful.
The definition of agent processing can be approached from two interrelated directions:
- internal state processing and ontologies for representing knowledge
- interaction protocols – standards for specifying communication of tasks
- Agent Machinery – Engines of various kinds, which support the varying degrees of intelligence
- Agent Content – Data employed by the machinery in Reasoning and Learning
- Agent Access – Methods to enable the machinery to perceive content and perform actions as outcomes of Reasoning
- Agent Security – Concerns related to distributed computing, augmented by a few special concerns related to agents
Bots can act on behalf of their creators to do good as well as bad. There are a few ways which bots can be created to demonstrate that they are designed with the best intention and are not built to do harm. This is first done by having a bot identify itself in the user-agent HTTP header when communicating with a site. The source IP address must also be validated to establish itself as legitimate. Next, the bot must also always respect a site's robots.txt file since it has become the standard across most of the web. And like respecting the robots.txt file, bots should shy away from being too aggressive and respect any crawl delay instructions.