Friday, February 26, 2010

What is the unit of agency?

A software agent is a piece of computer software that exhibits the quality of agency, but that begs two more fundamental questions:

  1. What is agency?
  2. What is the unit of agency?

An alternative formulation would be:

How can we distinguish qualities of software that constitute agency from qualities that would not constitute agency?

Ideally, we would like to identify sub-qualities of agency so that we ultimately can judge the quality of the agency qualities of a software agent.

I actually do currently have a definition of agency on my web site:

Agency is the capacity of an entity to continually sense its environment, make decisions based on that sensory input, and to act out those decisions in its environment without (in general) requiring control by or permission from entities with which the entity is associated.

The hallmarks of agency are reactivity (timely response to changes in the environment), goal-oriented (not simply responding to the environment according to a pre-determined script), autonomy (having its own agenda), interactive (with its environment and other entities), flexibility, and adaptability.

An entity which has the qualities associated with agency is referred to as an agent.

An agent which operates within the realm of software systems is referred to as a software agent.  Agency, being an agent, or having the qualities of agency do not imply anything to do with software.

But, I am not entirely happy with that definition and I am thinking about how to refine it.

Another way of phrasing the headline question is to ask what the smallest and simplest agent would look like.

-- Jack Krupansky