What are agent-based systems?
Agent-based systems require significant infrastructure providing several layers of functionality, from message transportation to dynamic discovery mechanisms
Agent Toolkits are software for deploying an agent infrastructure and for aiding in the development of agent applications Toolkits provide the basic building blocks to support an agent-based system allowing developers to focus on the domain-specific application challenges
Agents are autonomous computer systems Usually reside in a distributed environment Interact with users and perform tasks on their behalf Interact with other agents, collaborate and delegate tasks Interact with non-agent computer systems
What are agents good for: Although some believe so, agents are not a solution for everything They are good for systems that have multiple components; that are distributed over a network; that exhibit dynamic changes; that handle large quantities of information from multiple heterogeneous sources; that require autonomous behavior
Agent-based systems are designed and implemented using the agent metaphor
Agents (adaptive or intelligent agents and multi-agent systems) constitute one of the most prominent and attractive technologies in Computer Science at the beginning of this new century. Agent and multi-agent system technologies, methods, and theories are currently contributing to many diverse domains. These include information retrieval, user interface design, robotics, electronic commerce, computer mediated collaboration, computer games, education and training, smart environments, ubiquitous computers, and social simulation. An agent is a computer system that is situated in some environment, and that is capable of autonomous action in this environment in order to meet its design objectives. Multi-agent systems are systems composed of multiple interacting agents.
Some application domains where agent technologies will play a crucial role include:
Ambient Intelligence, the seamless delivery of ubiquitous computing, continuous communications and intelligent user interfaces to consumer and industrial devices; Grid Computing, where multi-agent system approaches will enable efficient use of the resources of high-performance computing infrastructure in science, engineering, medical and commercial application; Electronic Business, where agent-based approaches are already supporting the automation and semi-automation of information-gathering activities and purchase transactions over the Internet; Semantic Web, where agents are needed both to provide services, and to make best use of the resources available, often in cooperation with others; Bioinformatics and Computational Biology, where intelligent agents may support the coherent exploration of data revolution occurring in biology. 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 to decide which (and if) action is appropriate.[1][2]
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 process 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.
Nwana's Category of Software Agent
The term "agent" describes a software abstraction, an idea, or a concept, similar to OOP terms such as methods, functions, and objects.[citation needed] 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 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[3][citation needed]. 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.
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).
[edit] 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. (Wooldridge, 2002)[citation not found]
[edit] 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 (Wooldridge, 2003)
[edit] Distinguishing intelligent software agents from intelligent agents in artificial intelligence
Intelligent agents (also known as rational agents) 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.
(Russell & Norvig 2003)