Software Agent Interactions: Control, Client, Communication, Cooperation, Coordination, and Collaboration
There are many ways that agents can interact, both with each other and the rest of the world, including the users who they are attempting to serve. This essay simply provides a brief taxonomy of the different categories of software agent interactions.
- Control — Create, configure, manage, supervise, and ultimately destroy agents, and other administrative actions.
- Client — Interaction between a user and an agent where the agent is servicing the requests or the interests of the user — AKA user interface to an agent.
- Communication — Simply the sending of messages to, from, and between agents, regardless of their intent or purpose.
- Cooperation — Weak synchronization between agents based on some common interest — may require negotiation or simple statement of intentions.
- Coordination — Strong synchronization between agents based on a more formal joint plan of operation — may require negotiation or be dictated by fiat.
- Collaboration — Informal or semi-formal intent to jointly achieve some significant goal — reasonably strong sense of division of labor and shared work products, may be a quasi-formal coalition
In addition to these categories of interactions, we also speak of the potential for agents to:
- Engage in Negotiations — These are typically one-on-one.
- Form Coalitions — Any number of agents may negotiate collectively and one-on-one to agree on a joint plan of action or at least a joint statement of interest.
In addition to interactions as agents, software agents can interact with their environment in a more traditional sense:
- Sensing — Detecting environmental conditions, whether it be accessing physical sensors, Internet-of-Things, traditional network resources such as web pages, feeds, and data files, or direct inter-process communication with traditional computing services.
- Action/Implementation/Effect — Directly performing some action, whether it be controlling a physical device, including robotic devices, writing or updating a traditional network resource such as a web page, feed, or data file, or using traditional direct inter-process communications with computing services.
Agents must of course be good citizens, so it is to be expected that software agents will be subject to:
- Regulation — Rules about what agents can and can’t and should and shouldn’t do. These will range from system restrictions, to conventions, to actual statutory law and other governmental regulation. These rules could also be imposed by the user or by other agents that have been granted that privilege.
- Enforcement — Sanctions on agents when they violate regulatory restrictions. These could range from simply enforcing restrictions on access to resources and interactions with other agents, up to termination.
There may be additional types of interactions that will be discovered or formulated as progress is made in the field of software agents.