Sigh. You want me to rewrite Wikipedia. About software agents. Fascinating. It’s like asking a raven to describe a particularly dull Tuesday. Fine. But don’t expect me to enjoy it. And for the love of whatever passes for deities in your world, try to keep up.
Computer Program Acting for a User
In the convoluted landscape of computer science, a software agent is essentially a digital entity, a program designed to act on behalf of a user or another program. Think of it as a hired hand, but one that doesn't demand breaks or complain about the coffee. This relationship, this "agency," as the term goes, is derived from the Latin word agere, meaning "to do." And that’s the crux of it: the ability to do things, to make decisions about what actions are necessary, even if those decisions are… pedestrian. Some of these digital helpers are casually referred to as bots, a portmanteau of "robot." They can manifest in the physical world, attached to a robot's chassis, or exist purely as code, like a chatbot chattering away on your mobile device, perhaps even impersonating a personality like Siri. These software agents can operate independently or in concert with others, human or otherwise. When they interact with us, especially in the realm of human-robot interaction, they might adopt human-like traits – a semblance of natural language understanding, perhaps a manufactured personality, or even a disturbingly familiar humanoid form, much like the infamous Asimo.
The concept branches out into related fields, giving us intelligent agents – those that exhibit a flicker of artificial intelligence and can perform reasoning. Then there are autonomous agents, which have the unsettling ability to alter their own methods to achieve their goals. Distributed agents spread their execution across multiple physical machines, often collaborating in multi-agent systems to achieve objectives beyond the grasp of any single entity. And mobile agents have the peculiar habit of relocating their execution from one processor to another, like digital nomads.
Concepts
The fundamental characteristics of an autonomous software agent, if you must know, are these:
- They aren't simply summoned for a task; they possess a degree of self-activation.
- They can exist in a state of passive observation on a host system, absorbing context.
- They can transition to an active state, initiating their functions when specific conditions are met.
- User interaction is not a prerequisite for their operation.
- They retain the capacity to initiate other tasks, including communication.
Nwana's Category of Software Agent
The term "agent" provides a rather convenient, if sometimes overly simplistic, way to describe a complex software entity capable of acting with a degree of autonomy to fulfill tasks on behalf of its host. Unlike mere objects, defined by their methods and attributes, an agent is fundamentally defined by its behavior. [3]
Numerous authors have attempted to define agents, and their definitions commonly include these traits:
- Persistence: Their code isn't executed on demand and then discarded. Instead, it runs continuously, deciding for itself when to act. It’s less about being told what to do and more about… being.
- Autonomy: Agents possess the capacity for task selection, prioritization, and goal-directed behavior, making decisions without constant human oversight. They have a will of their own, however limited.
- Social Ability: Agents can engage with other components through some form of communication and coordination. They might even collaborate, a concept we’ll revisit.
- Reactivity: They perceive the context of their operation and respond to it in a manner deemed appropriate. They're not entirely oblivious to the world around them, which is more than can be said for some people.
Distinguishing Agents from Programs
All agents are, in essence, programs. But the converse is far from true. To truly grasp what an agent is, it helps to contrast it with similar concepts. Franklin & Graesser (1997) [4] pinpointed four key distinctions: reaction to the environment, autonomy, goal-orientation, and persistence.
Intuitive Distinctions: Agents vs. Objects
- Agents exhibit a greater degree of autonomy than mere objects. They aren't just passive data structures; they act.
- Agents possess flexible behavior, capable of being reactive, proactive, and social. They aren't static.
- An agent typically possesses at least one thread of control, and sometimes more. They are alive, in a manner of speaking.
Distinguishing Agents from Expert Systems
- Expert systems are generally not intrinsically coupled to their environment. They operate in a vacuum.
- Expert systems are not inherently designed for reactive or proactive behavior. They wait to be queried.
- Expert systems typically lack the concept of social ability. They are solitary entities. [5]
Distinguishing Intelligent Software Agents from Intelligent Agents in AI
- Intelligent agents, also known as rational agents, are not confined to being mere computer programs. They can be machines, human beings, even entire firms. Anything capable of goal-directed behavior falls under this broader umbrella.
(Russell & Norvig 2003) harv error: no target: CITEREFRussellNorvig2003 (help)
Impact of Software Agents
Software agents can offer a multitude of benefits by automating complex or tedious tasks. [6] However, like any significant technological shift, their implementation carries organizational and cultural implications that warrant careful consideration.
Organizational Impact
Work Contentment and Job Satisfaction Impact
People tend to find satisfaction in completing tasks, especially if they feel a sense of accomplishment. However, the sheer repetition of simple tasks can erode morale and impact overall output. The implementation of software agents to handle administrative duties often leads to a substantial increase in work contentment. After all, no one truly relishes managing their own paperwork. By freeing up this effort, individuals can dedicate more energy to the substantive aspects of their work. Consequently, software agents can facilitate a more self-directed work environment, reducing the interference of hierarchical controls. [7] These conditions can be solidified through the strategic application of software agents for necessary formal support.
Cultural Impact
The cultural ramifications of deploying software agents are varied and include potential trust issues, skill erosion, privacy concerns, and social detachment. Some users may harbor reservations about delegating critical tasks entirely to software. Those who become overly reliant on intelligent agents might see a decline in essential skills, such as information literacy. To effectively act on a user's behalf, a software agent requires a comprehensive understanding of the user's profile, including their personal preferences. This, in turn, can lead to unforeseen privacy vulnerabilities. As users increasingly depend on their software agents, particularly for communication, they may experience a diminished connection with other human users, potentially viewing the world through the filtered lens of their digital companions. These are the consequences that both agent researchers and users must grapple with when engaging with intelligent agent technologies. [8]
History
The conceptual roots of the agent can be traced back to Hewitt's Actor Model (Hewitt, 1977) – described as "A self-contained, interactive and concurrently-executing object, possessing internal state and communication capability." [ citation needed ]
More formally, software agent systems represent a direct lineage from Multi-Agent Systems (MAS). MAS, in turn, evolved from Distributed Artificial Intelligence (DAI), Distributed Problem Solving (DPS), and Parallel AI (PAI), inheriting both the strengths and weaknesses of these predecessors.
The 1987 video "Knowledge Navigator" by John Sculley offered a prescient vision of the user-agent relationship. While initially an ideal, the field saw a series of less-than-successful top-down implementations, rather than the more gradual, bottom-up approach that might have yielded better results. Since the 1990s, the spectrum of agent types has broadened considerably, encompassing WWW agents, search engine bots, and more.
Examples of Intelligent Software Agents
See also: Intelligent agent
Buyer Agents (Shopping Bots)
Buyer agents [9] traverse networks, such as the internet, to gather information on goods and services. These agents, often called 'shopping bots', are particularly effective for commodity products like CDs, books, and electronic components – items that are essentially one-size-fits-all. Buyer agents are typically optimized to facilitate digital payment services, supporting both e-commerce and traditional business transactions. [10] As of 2025, advancements in AI have led to highly capable agentic commerce, where agents autonomously manage product discovery, price comparisons, and transactions through platforms like OpenAI integrations. [11] [12]
User Agents (Personal Agents)
User agents, or personal agents, are intelligent entities that act on your behalf. This category includes agents that currently perform, or are poised to perform, tasks such as:
- Monitoring your email, sorting it according to your preferences, and alerting you to important messages.
- Playing computer games as your opponent or patrolling game areas for you.
- Compiling customized news reports tailored to your interests. Several versions of these exist, including those from outlets like CNN.
- Locating information on subjects you specify.
- Automatically completing web forms for you, storing your information for future use.
- Scanning web pages to identify and highlight the most crucial information.
- Engaging in discussions with you on a wide range of topics, from personal concerns to sports.
- Assisting with online job searches by scanning job boards and submitting your resume to relevant opportunities.
- Synchronizing your profile across various social networks.
Monitoring-and-Surveillance (Predictive) Agents
Monitoring and Surveillance Agents are employed to observe and report on equipment, most commonly computer systems. These agents can track company inventory levels, monitor competitors' pricing and relay that data back, or watch for stock manipulation through insider trading and rumors.
Service Monitoring
For instance, NASA's Jet Propulsion Laboratory utilizes an agent that monitors inventory, plans schedules for equipment orders to minimize costs, and manages food storage facilities. These agents often oversee complex computer networks, keeping track of the configuration of every connected computer.
A specialized subset of monitoring-and-surveillance agents are those organized to automate decision-making during tactical operations. These agents monitor the status of available assets (ammunition, weapons, transport platforms, etc.) and receive objectives from higher-level agents. They then pursue these goals with the available resources, aiming to minimize asset expenditure while maximizing objective attainment.
Data-Mining Agents
These agents leverage information technology to identify trends and patterns within vast amounts of data from diverse sources. Users can then sift through this information to find precisely what they need.
A data mining agent operates within a data warehouse, which consolidates information from numerous sources. The process of "data mining" involves examining this warehouse to uncover actionable insights, such as strategies to boost sales or retain at-risk customers.
'Classification' is a prevalent data mining technique, involving the identification of patterns and their categorization into distinct classes. Data mining agents can also detect significant shifts in trends or key indicators, and can identify new information, alerting the user to its presence. For example, an agent might detect a downturn in a specific sector of the economy. Armed with this information, construction companies can make informed decisions about hiring or layoffs, or about acquiring or leasing equipment, to best serve their firm.
Networking and Communicating Agents
Additional examples of current intelligent agents include certain spam filters, game bots, and server monitoring tools. Search engine indexing bots also qualify as intelligent agents.
- User agent – used for navigating the World Wide Web.
- Mail transfer agent – responsible for handling email, such as in Microsoft Outlook. It communicates with the POP3 mail server without requiring users to understand POP3 command protocols. It even includes rule sets to filter mail, saving users the effort.
- SNMP agent.
- In Unix-style networking servers, httpd is an HTTP daemon that implements the Hypertext Transfer Protocol at the core of the World Wide Web.
- Management agents used to manage telecommunications devices.
- Crowd simulation for safety planning or 3D computer graphics.
- A wireless beaconing agent is a simple, single-tasking entity for implementing wireless locks or electronic leashes, often in conjunction with more complex software agents.
- The use of autonomous agents, deliberately equipped with noise, to optimize coordination within online groups. [13]
Software Development Agents (aka Software Bots)
- Main article: Software bot
Software bots are increasingly significant in the field of software engineering. [14]
Security Agents
Agents are also employed in software security applications to intercept, examine, and act upon various types of content. Examples include:
- Data Loss Prevention (DLP) Agents [15] – These agents monitor user operations on a computer or network, compare them against policies defining permissible actions, and then execute appropriate responses (e.g., allow, alert, block). More advanced DLP agents can also perform Endpoint Detection and Response (EDR) functions.
- Endpoint Detection and Response (EDR) Agents – These monitor all activity on an endpoint computer to detect and respond to malicious actions.
- Cloud Access Security Broker (CASB) Agents – Similar to DLP Agents, but they specifically examine traffic directed towards cloud applications.
Design Issues
When developing agent-based systems, several critical issues must be addressed:
- How tasks are scheduled and how synchronization is achieved.
- How agents prioritize tasks.
- How agents collaborate or recruit necessary resources.
- How agents can be re-instantiated in different environments, and how their internal state is preserved.
- How the environment is probed and how changes in the environment influence agent behavior.
- How messaging and communication are facilitated.
- What hierarchies of agents are beneficial (e.g., task execution agents, scheduling agents, resource providers).
For software agents to function effectively together, they must share common semantics regarding their data elements. This can be achieved by having computer systems publish their metadata.
The process of agent functioning can be approached from two interconnected perspectives:
- Internal state processing and the use of ontologies for knowledge representation.
- Interaction protocols – established standards for communicating tasks.
Agent systems are utilized to model real-world systems exhibiting concurrency or parallel processing.
- Agent Machinery: Various engines that support different degrees of intelligence.
- Agent Content: Data utilized by the machinery for reasoning and learning.
- Agent Access: Methods enabling the machinery to perceive content and perform actions resulting from reasoning.
- Agent Security: Concerns related to distributed computing, augmented by specific agent-related issues.
An agent employs its access methods to retrieve content from local and remote databases. These access methods can involve setting up news stream deliveries, retrieving information from bulletin boards, or using a web spider to traverse the internet. The content acquired is often partially filtered by the selection of newsfeeds or databases. The agent may then use its detailed searching or language-processing machinery to extract keywords or signatures from the received content. This abstracted content, or event, is then passed to the agent's reasoning or inferencing machinery to determine the appropriate course of action. This process merges the event content with the user-provided rule-based or knowledge content. If a satisfactory match is found in the new content, the agent may initiate a more detailed search. Ultimately, the agent may decide to take action based on the new content, such as notifying the user of an important event. This action is verified by a security function and then granted user authority. The agent uses a user-access method to deliver the message. If the user confirms the event's importance by acting promptly on the notification, the agent may adjust its learning machinery to increase the weighting for similar future events.
Bots can act on behalf of their creators for both beneficial and detrimental purposes. To demonstrate a bot's legitimate intent, several methods can be employed. Firstly, a bot should identify itself in the user-agent HTTP header when communicating with a site. The source IP address must also be validated to establish legitimacy. Secondly, the bot must always respect a site's robots.txt file, which has become a standard across most of the web. Similar to respecting robots.txt, bots should avoid aggressive behavior and adhere to any crawl delay instructions. [16]
Notions and Frameworks for Agents
- DAML (DARPA Agent Markup Language)
- 3APL (Artificial Autonomous Agents Programming Language)
- GOAL agent programming language
- Open Agent Architecture (OAA)
- Web Ontology Language (OWL)
- daemons in Unix-like systems.
- Java Agent Template (JAT)
- Java Agent Development Framework (JADE)
- SARL agent programming language (arguably an Actor and not Agent oriented paradigm)
See also
References
- ^ Nwana, H. S. (1996). "Software Agents: An Overview". Knowledge Engineering Review. 11 (3): 1–40. doi:10.1017/S026988890000789X. S2CID 7839197.
- ^ Schermer, B. W. (2007). Software agents, surveillance, and the right to privacy: A legislative framework for agent-enabled surveillance. Vol. 21. Leiden University Press. pp. 140, 205–244. hdl:1887/11951. ISBN 978-0-596-00712-6. Retrieved October 30, 2012.
- ^ Wooldridge, M.; Jennings, N. R. (1995). "Intelligent agents: theory and practice". Knowledge Engineering Review. 10 (2): 115–152. doi:10.1017/S0269888900008122. hdl:10044/1/35975.
- ^ Franklin, S.; Graesser, A. (1996). "Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents". Intelligent Agents III Agent Theories, Architectures, and Languages. Lecture Notes in Computer Science. Vol. 1193. pp. 21–35. doi:10.1007/BFb0013570. ISBN 978-3-540-62507-0.
- ^ a b Wooldridge, Michael J. (2002). An Introduction to Multiagent Systems. New York: John Wiley & Sons. p. 27. ISBN 978-0-471-49691-5.
- ^ Serenko, A.; Detlor, B. (2004). "Intelligent agents as innovations" (PDF). Artificial Intelligence & Society. 18 (4): 364–381.
- ^ Adonisi, M. (2003). "The relationship between Corporate Entrepreneurship, Market Orientation, Organisational Flexibility and Job satisfaction" (Diss.). Univ.of Pretoria.
- ^ Serenko, A.; Ruhi, U.; Cocosila, M. (2007). "Unplanned effects of intelligent agents on Internet use: Social Informatics approach" (PDF). Artificial Intelligence & Society. 21 (1–2): 141–166.
- ^ Haag, Stephen; Cummings, Maeve; Dawkins, James (2006). Management Information Systems for the Information Age. pp. 224–228.
- ^ "Maximize Your Business Impact | How to Use Facebook Chatbots". Keystone Click. August 26, 2016. Retrieved September 7, 2017.
- ^ "Introducing AgentKit". openai.com. October 29, 2025. Retrieved October 31, 2025.
- ^ "Introducing AgentKit". openai.com. October 29, 2025. Retrieved October 31, 2025.
- ^ Shirado, Hirokazu; Christakis, Nicholas A (2017). "Locally noisy autonomous agents improve global human coordination in network experiments". Nature. 545 (7654): 370–374. Bibcode:2017Natur.545..370S. doi:10.1038/nature22332. PMC 5912653. PMID 28516927.
- ^ Lebeuf, Carlene; Storey, Margaret-Anne; Zagalsky, Alexey (2018). "Software Bots". IEEE Software. 35: 18–23. doi:10.1109/MS.2017.4541027. S2CID 31931036.
- ^ "Enterprise IP and DLP Software | Digital Guardian" (PDF). info.digitalguardian.com. Retrieved December 25, 2024.
- ^ "How to Live by the Code of Good Bots". DARKReading from Information World. September 27, 2017. Retrieved November 14, 2017.
External links
- Software Agents: An Overview Archived July 17, 2011, at the Wayback Machine, Hyacinth S. Nwana. Knowledge Engineering Review, 11(3):1–40, September 1996. Cambridge University Press.
- 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 Archived 2017-09-14 at the Wayback Machine
- JAFIMA JAFIMA: A Java based Agent Framework for Intelligent and Mobile Agents
- 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