In a world where even manpower has an alternative, there seems to be no room for human existence; independent of agents in the very apparent outlook. Development of agents has gone beyond the vision that defined them. We have seen the software revolutionizing, roughly all the kinds of work being carried out in diverse organizations and manufacturing firms. But what rarely is being noticed is the paradigm shift that is taking place, within the nature of development of such software systems and applications. Those were the days when we defined software as a reaction to an action, but then the Computer Science Industry unlike others; has no doubt witnessed a rapid rate of attributing technologies as belonging to the history of it.
Software agent is neither a shift of technology nor is it a virtual version of the o-o-seven; it is a presence of few unique features in software that distinguish it from ordinary software. First, agents do not simply act in response to their environment; they are able to exhibit goal-directed behavior by taking the initiative, we call it Pro-activeness. Second, they are capable of flexible and autonomous action in that environment in order to meet its design objectives. Informally, an agent works for someone for something, governed by its definitions of the culture. Technically, Agents have Roles, Behaviors, Functionalities and Goals. Whether an agent is a Knowledge-Based Robot (knowbots), a Software Robot (softbots), a Taskbot, or a personal assistant; it needs to have a combination of them. The role of a Shopping Agent is to act as a helping hand for its user. Its behavior is how it interacts with the buyer, its interface and representation. Its functionalities include comparing prices of goods on the internet and use them to find best prices for CDs, books, movies, etc. And unquestionably, the goal is to find a cheap and effective solution to user’s defined set of desires.
A more proper discrimination of agents is that they exhibit following characteristics: autonomy, reactivity, pro-activity, sociability, intelligence, mobility and self-organization. Most of the terms are self-descriptive, except one. In the context of agents, nothing is more influential and attractive than their self-organization. It is the capability of an entity to organize and improve its internal processing, connections, and hierarchies; without being guided or managed. This is where the learning factor comes in, unlike the traditional software. At the same time, it is one step forward to the future of ubiquitous and pervasive computing. Stunned? Well the relevant research is working for one fundamental goal: to create a system that is pervasively embedded in the environment, completely connected, intuitive, portable, and constantly available. And where each node of the system should be able to initiate its tasks and actions based on what it learned, with its interaction with other nodes.
Let’s rewind. If everything is connected, then everything has to be a component of a particular system. And if everything has to take decisions on its own within its scope, with two precautions: Safety and Predictability; then everything is an agent! We call such a system a Multi-Agent system (MAS). A MAS is composed of several agents, capable of mutual interaction; where the agents can be software agents or robots as well as humans. Hence, we can argue that there exists no Single-Agent System, as each agent has to carry out an interaction with other agents or at least a human. In fact, human organizations and civilizations alone, can be considered as an example of MAS. We humans as well as software agents are inherently self-organized, and so are multi-agent systems in a bigger context. A Software System represents a solution to a problem of any specific domain. Conventionally, it has subsystems, where each subsystem has components. It is possible to distinguish among the interactions taking place within a system. Frequent interactions take place among the components of a subsystem, and infrequent interactions take place among the subsystems.
Contrary to this decomposition of a problem, we have the one proposed by proponents of Agent Orientation. In that model, we decompose a system in multiple interacting and autonomous agents that have a defined set of objectives to achieve. Unlike the ill-defined linkages and privileges among Subsystems, the agents’ inter-communication is significantly discriminated as it occurs through Agent Communication Language (ACL). Agents, being flexible problem solvers, are capable of making context dependent decisions about the nature and scope of their interactions. In the real world, like you won’t go to the same barber, if you experienced a blunder last time you visited him. Or you won’t send a search query to find cheapest price of a product, to a high-priced and high-quality online superstore. This depicts how agent based decomposition becomes a natural phenomenon to design the hierarchy of a Real world problem.
But the matter of the fact is not what we’ll prefer, Conventional Object Orientation or Agent Orientation; rather the matter is how we will proceed. In case of Agents Orientation, we will have to replace systems by multi-agent systems, which would be organized internally and synchronized externally with larger multi-agent systems. Systems, collaborating to form societies, where each participant, i.e., an agent works for the welfare of the overall goals of the system. The most practical impact of such Agent Based Systems, in the near future seems to be on the internet and personal computing.
We have planners that schedule our meetings, personal assistants that remind us of our relatives’ birthdays, web ranking tools, automated form-fillers, intelligent download managers, and then we have Eliza and Cybelle serving as the bedposts. Then imagine a search engine that never says no, because it can’t say no, as it always has a respective answer. Such a search engine would be a collaborative model of all diverse search engines available, roughly summing up the indexes of all the hosted websites. You may think of a collaborative model of Monopoly, where the non-human agent players are forming alliances with each other if you are playing good. Such Alliances are made and broken with the continuation of the game. Well it is possible to programmatically achieve such purely selfish behaviors, as they are a natural consequence of optimal strategies for each player. The decision making capabilities of an agent are yet to be exploited fully. But we do have a number of software agents incorporated commercially with most of the essential attributes. There presence can be noticed in web services, internal databases, natural language interfaces, email clients, real-time data processors, game playing, interactive story telling, etc. In fact, they are present even in highly prudent environments, having real-time systems that have no room for slip-ups; like auto-pilot in an airplane or the guided missiles etc.
Matter of the fact: We cannot deny the prediction of the machines eventually taking over the mankind with brutality. But at the same time, we cannot ignore the prediction that defines the dream pleasure if we succeed to ensure the two precautions universally; Safety and Predictability. That dream is the vision of the extreme possibilities. In it, manpower would be replaced by machine-power ideally, and taxes that we pay would be replaced by incomes that we would get from the same governments. Incomes for sitting at home, incomes for not working, incomes based on how much we are qualified academically and loyal socially.
- Artificial Intelligence: A Modern Approach by Russel Norving
- Software Engineering: A Practitioner’s Approach by Pressman
- Research Paper on AOSE by Nicholas R. Jennings and Michael Wooldridge
- Preliminary stage Document by FIPA, founded by James Odell; Topic: Modeling: Agent Class Diagrams
- 23rd March, 2006: Initial post