Software agent
Encyclopedia
In computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

, a software agent is a piece of software that acts for a user or other program in a relationship of agency, which derives from the Latin agere (to do): an agreement to act on one's behalf. Such "action on behalf of" implies the authority
Authority
The word Authority is derived mainly from the Latin word auctoritas, meaning invention, advice, opinion, influence, or command. In English, the word 'authority' can be used to mean power given by the state or by academic knowledge of an area .-Authority in Philosophy:In...

 to decide which (and if) action is appropriate.

Related and derived concepts include Intelligent agent
Intelligent agent
In artificial intelligence, an intelligent agent is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals . Intelligent agents may also learn or use knowledge to achieve their goals...

s
(in particular exhibiting some aspect of Artificial Intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

, such as learning
Learning
Learning is acquiring new or modifying existing knowledge, behaviors, skills, values, or preferences and may involve synthesizing different types of information. The ability to learn is possessed by humans, animals and some machines. Progress over time tends to follow learning curves.Human learning...

 and reasoning), autonomous agent
Autonomous agent
An autonomous agent is an intelligent agent operating on an owner's behalf but without any interference of that ownership entity. An intelligent agent, however appears according to a multiply cited statement in a no longer accessible IBM white paper as follows:Intelligent agents are software...

s
(capable of modifying the way in which they achieve their objectives), distributed agents (being executed on physically distinct computers), multi-agent system
Multi-agent system
A multi-agent system is a system composed of multiple interacting intelligent agents. Multi-agent systems can be used to solve problems that are difficult or impossible for an individual agent or a monolithic system to solve...

s
(distributed agents that do not have the capabilities to achieve an objective alone and thus must communicate), and mobile agents (agents that can relocate their execution onto different processors).

Concepts

It is not useful, hence limiting the scope and variety when prescribing what is, and what is not an agent. However some concepts are essential. The basic concepts with software agent are that
  • agents are not strictly invoked for a task, but activate themselves,
  • agents may reside in wait status on a host, perceiving context,
  • agents may get to run status on a host upon starting conditions,
  • agents do not require interaction of user,
  • agents do may invoke other tasks including communication.


The term "agent" describes a software abstraction
Abstraction
Abstraction is a process by which higher concepts are derived from the usage and classification of literal concepts, first principles, or other methods....

, an idea, or a concept, similar to OOP terms such as methods, function
Function (engineering)
In engineering, a function is interpreted as a specific process, action or task that a system is able to perform .-In engineering design:In the lifecycle of engineering projects, there are usually distinguished subsequently: Requirements and Functional specification documents. The Requirements...

s, and objects. The concept of an agent provides a convenient and powerful way to describe a complex software entity that is capable of acting with a certain degree of autonomy
Autonomy
Autonomy is a concept found in moral, political and bioethical philosophy. Within these contexts, it is the capacity of a rational individual to make an informed, un-coerced decision...

 in order to accomplish tasks on behalf of its host. But unlike objects, which are defined in terms of methods and attributes, an agent is defined in terms of its behavior.

Various authors have proposed different definitions of agents, these commonly include concepts such as
  • persistence (code is not executed on demand but runs continuously and decides for itself when it should perform some activity)
  • autonomy (agents have capabilities of task selection, prioritization, goal-directed behaviour, decision-making without human intervention)
  • social ability (agents are able to engage other components through some sort of communication and coordination, they may collaborate on a task)
  • reactivity (agents perceive the context in which they operate and react to it appropriately).

Distinguishing agents from programs

Contrasting the term with related concepts may help clarify its meaning. Franklin & Graesser (1997) discuss four key notions that distinguish agents from arbitrary programs: reaction to the environment, autonomy, goal-orientation and persistence.

Related and derived concepts include Intelligent agents (in particular exhibiting some aspect of Artificial Intelligence, such as learning and reasoning), autonomous agents (capable of modifying the way in which 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), and mobile agents (agents that can relocate their execution onto different processors).

Intuitive distinguishing agents from objects

  • Agents are more autonomous than objects
    Object (computer science)
    In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

    .
  • Agents have flexible behaviour, reactive
    Reactive
    Reactive may refer to:*Generally, capable of having a reaction*Reactance , the imaginary component of AC impedance*Reactive mind*Reactive programming...

    , proactive
    ProActive
    ProActive is Java grid middleware for parallel, distributed, and multi-threaded computing. It is developed by the OW2 Consortium, including INRIA, CNRS, University of Nice Sophia Antipolis, and ActiveEon...

    , social.
  • Agents have at least one thread
    Thread (computer science)
    In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...

     of control but may have more.
(Wooldridge, 2002)

Distinguishing agents from expert systems

  • Expert system
    Expert system
    In artificial intelligence, an expert system is a computer system that emulates the decision-making ability of a human expert. Expert systems are designed to solve complex problems by reasoning about knowledge, like an expert, and not by following the procedure of a developer as is the case in...

    s are not coupled to their environment;
  • Expert systems are not designed for reactive, proactive behavior.
  • Expert systems do not consider social ability
(Wooldridge, 2003)

Distinguishing intelligent software agents from intelligent agents in artificial intelligence

  • Intelligent agent
    Intelligent agent
    In artificial intelligence, an intelligent agent is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals . Intelligent agents may also learn or use knowledge to achieve their goals...

    s (also known as rational agent
    Rational agent
    In economics, game theory, decision theory, and artificial intelligence, a rational agent is an agent which has clear preferences, models uncertainty via expected values, and always chooses to perform the action that results in the optimal outcome for itself from among all feasible actions...

    s) are not just software programs, they may also be machines, human beings, communities of human beings (such as firms) or anything that is capable of goal directed behavior.

Impact of software agents

Software agents are innovative technologies that may offer various benefits to their end users by automating complex or repetitive tasks. However, there is various organizational and cultural impact of this technology that need to be considered prior to implementing software agents.

Organizational impact

Organizational impacts include the transformation of the entire electronic commerce sector, operational encumbrance, and security overload. Software agents are able to quickly search the Internet, identify the best offers available online, and present this information to the end users in aggregate form. Therefore, users may not need to manually browse various websites of individual merchants; they are able to locate the best deal in a matter of seconds. At the same time, this increases price-based competition and transforms the entire electronic commerce sector into a uniform perfect competition market. The implementation of agents also requires additional resources from the companies, places an extra burden on their networks, and requires new security procedures.

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 administrational requirements provides a substantial increase in work contentment, as administering the own work does never please the worker. The effort freed up serves for 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 word with the eyes of their agents. It is these consequences that agent researchers and users need to consider dealing with intelligent agent technologies.

History

The concept of an agent can be traced back to Hewitt's Actor Model (Hewitt, 1977) - "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 from Multi-Agent Systems (MAS). MAS evolved from Distributed Artificial Intelligence (DAI), Distributed Problem Solving (DPS) and Parallel AI (PAI), thus inheriting all characteristics (good and bad) from DAI and AI
Ai
AI, A.I., Ai, or ai may refer to:- Computers :* Artificial intelligence, a branch of computer science* Ad impression, in online advertising* .ai, the ISO Internet 2-letter country code for Anguilla...

.

John Sculley
John Sculley
John Sculley is an American businessman. Sculley was vice-president and president of PepsiCo , until he became CEO of Apple on April 8, 1983, a position he held until leaving in 1993...

’s 1987 “Knowledge Navigator
Knowledge Navigator
The Knowledge Navigator is a concept described by former Apple Computer CEO John Sculley in his 1987 book, Odyssey. It describes a device that can access a large networked database of hypertext information, and use software agents to assist searching for information.Apple produced several concept...

” 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 (from 1990) broad: WWW, search engines, etc.

Examples of intelligent software agents

suggests that there are only four essential types of intelligent software agents:
  1. Buyer agents or shopping bots
  2. User or personal agents
  3. Monitoring-and-surveillance agents
  4. Data Mining agents

Buyer agents (shopping bots)

Buyer agents travel around a network (i.e. the internet) 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.

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

Monitoring and Surveillance Agents
Monitoring and Surveillance Agents
Monitoring and surveillance agents are a type of intelligent agent software that observes and reports on computer equipment. Monitoring and surveillance agents are often used to monitor complex computer networks to predict when a crash or some other defect may occur...

 are used to observe and report on equipment, usually computer systems. The agents may keep track of company inventory levels, observe competitors' prices and relay them back to the company, watch stock manipulation by insider trading
Insider trading
Insider trading is the trading of a corporation's stock or other securities by individuals with potential access to non-public information about the company...

 and rumors, etc.
For example, NASA's Jet Propulsion Laboratory has an agent that monitors inventory, planning, and scheduling equipment ordering to keep costs down, as well as 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 (ammunition, weapons available, platforms for transport, etc.) and receive Goals (Missions) from higher level agents. The Agents then pursue the Goals with the Assets at hand, minimizing expenditure of the Assets while maximizing Goal Attainment. (See Popplewell, "Agents and Applicability")

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 lots of 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 & Communicating agents

Some other examples of current Intelligent agent
Intelligent agent
In artificial intelligence, an intelligent agent is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals . Intelligent agents may also learn or use knowledge to achieve their goals...

s include some spam filters, game bots
Computer game bot
A bot, most prominently in the first-person shooter types , is a type of weak AI expert system software which for each instance of the program controls a player in deathmatch, team deathmatch and/or cooperative human player. Computer bots may play against other bots and/or human players in unison,...

, and server monitoring tools. Search engine
Search engine
A search engine is an information retrieval system designed to help find information stored on a computer system. The search results are usually presented in a list and are commonly called hits. Search engines help to minimize the time required to find information and the amount of information...

 indexing bots also qualify as intelligent agents.
  • User agent
    User agent
    In computing, a user agent is a client application implementing a network protocol used in communications within a client–server distributed computing system...

     - for browsing the World Wide Web
  • Mail transfer agent
    Mail transfer agent
    Within Internet message handling services , a message transfer agent or mail transfer agent or mail relay is software that transfers electronic mail messages from one computer to another using a client–server application architecture...

     - For serving E-mail, such as Microsoft Outlook. Why? It communicates with the POP3 mail server, without users having to understand POP3
    Post Office Protocol
    In computing, the Post Office Protocol is an application-layer Internet standard protocol used by local e-mail clients to retrieve e-mail from a remote server over a TCP/IP connection. POP and IMAP are the two most prevalent Internet standard protocols for e-mail retrieval. Virtually all modern...

     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
    Simple Network Management Protocol
    Simple Network Management Protocol is an "Internet-standard protocol for managing devices on IP networks. Devices that typically support SNMP include routers, switches, servers, workstations, printers, modem racks, and more." It is used mostly in network management systems to monitor...

     agent
  • In Unix-style networking servers, httpd
    Httpd
    httpd stands for Hypertext Transfer Protocol Daemon .The implied meaning can be:* Apache HTTP Server* Canopy HTTPd HTTP server* CERN HTTPd HTTP server* Lighttpd HTTP server* NCSA HTTPd HTTP server...

    is an HTTP daemon which implements the HyperText Transfer Protocol
    Hypertext Transfer Protocol
    The Hypertext Transfer Protocol is a networking protocol for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web....

     at the root of the World Wide Web
    World Wide Web
    The World Wide Web is a system of interlinked hypertext documents accessed via the Internet...

  • Management agent
    Management agent
    A Management agent is a software agent that runs on a managed node and provides an interface to manage it. It can perform operations on managed objects in the node and can also forward notifications to the manager ....

    s used to manage telecom devices
  • Crowd simulation
    Crowd simulation
    Crowd simulation is the process of simulating the movement of a large number of objects or characters, now often appearing in 3D computer graphics for film...

     for safety planning or 3D computer graphics
    3D computer graphics
    3D computer graphics are graphics that use a three-dimensional representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images...

    ,
  • Wireless beaconing agent is a simple process hosted single tasking entity for implementing wireless lock
    Wireless lock
    Wireless lock is a protection concept for authenticated LAN or WLAN network clients offered from various vendors in various functional shapes and physical designs...

     or electronic leash
    Electronic leash
    Electronic leash is a concept offered from various vendors in various functional shapes and physical designs. It is usually a miniature wireless appliance that extends the concept of a key pager, adding the feature of adjustable distance sensitivity and an option of a multiplicity of identity codes...

     in conjunction with more complex software agents hosted e.g. on wireless receivers.

Design issues

Interesting 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 (e.g. task execution agents, scheduling agents, resource providers ...).


For software agents to work together efficiently they must share semantics
Semantics
Semantics is the study of meaning. It focuses on the relation between signifiers, such as words, phrases, signs and symbols, and what they stand for, their denotata....

 of their data elements. This can be done by having computer systems publish their metadata
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...

.

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 systems are used to model real world systems with concurrency
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

 or parallel processing.
  • 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


The agent uses its access methods to go out into local and remote databases to forage for content. These access methods may include setting up news stream delivery to the agent, or retrieval from bulletin boards, or using a spider to walk the Web. The content that is retrieved in this way is probably already partially filtered – by the selection of the newsfeed or the databases that are searched. The agent next may use its detailed searching or language-processing machinery to extract keywords or signatures from the body of the content that has been received or retrieved. This abstracted content (or event) is then passed to the agent’s Reasoning or inferencing machinery in order to decide what to do with the new content. This process combines the event content with the rule-based or knowledge content provided by the user. If this process finds a good hit or match in the new content, the agent may use another piece of its machinery to do a more detailed search on the content. Finally, the agent may decide to take an action based on the new content; for example, to notify the user that an important event has occurred. This action is verified by a security function and then given the authority of the user. The agent makes use of a user-access method to deliver that message to the user. If the user confirms that the event is important by acting quickly on the notification, the agent may also employ its learning machinery to increase its weighting for this kind of event.

Notions and frameworks for agents

  • DAML (DARPA Agent Markup Language)
  • Jason (multi-agent systems development platform)
    Jason (multi-agent systems development platform)
    Jason is a platform for the development of multi-agent systems. An extension of the AgentSpeak agent-oriented programming language is used to program the behaviour of individual agents. Jason is developed in Java and allows the customisation of most aspects of an agent or a multi-agent system...

  • 3APL
    3APL
    An Abstract Agent Programming Language or Artificial Autonomous Agents Programming Language or 3APL is an experimental tool and programming language for the development, implementation and testing of multiple cognitive agents using the Belief-Desire-Intention approach.-Overview:3APL was developed...

     (Artificial Autonomous Agents Programming Language)
  • GOAL Agent Programming Language
    GOAL Agent Programming Language
    GOAL is an agent programming language for programming rational agents. GOAL agents derive their choice of action from their beliefs and goals. The language provides the basic building blocks to design and implement rational agents by means of a set of programming constructs...

  • Web Ontology Language
    Web Ontology Language
    The Web Ontology Language is a family of knowledge representation languages for authoring ontologies.The languages are characterised by formal semantics and RDF/XML-based serializations for the Semantic Web...

     (OWL)
  • daemon
    Daemon (computer software)
    In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...

    s
    in Unix-like
    Unix-like
    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

     systems.
  • Java Agent Template (JAT)
    Java Agent Template (JAT)
    Java Agent Template , is a fully functional Java template, for building software agents that can communicate in a P2P distributed network over the Internet.-External links:*http://www-cdr.stanford.edu/ABE/documentation/overview.html...


External links

  • Software Agents: An Overview, Hyacinth S. Nwana. Knowledge Engineering Review, 11(3):1–40, September 1996. Cambridge University Press
    Cambridge University Press
    Cambridge University Press is the publishing business of the University of Cambridge. Granted letters patent by Henry VIII in 1534, it is the world's oldest publishing house, and the second largest university press in the world...

    .
  • FIPA The Foundation for Intelligent Physical Agents
  • JADE Java Agent Developing Framework, an Open Source framework developed by Telecom Italia Labs
  • European Software-Agent Research Center
  • SemanticAgent An Open Source framework to develop SWRL based Agents on top of JADE
  • Mobile-C A Multi-Agent Platform for Mobile C/C++ Agents.
  • HLL High Level Logic (HLL) Open Source Project.


  • Open source project KATO for PHP and Java developers to write software agents
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK