Application Scenario

To represent presence, an application will be built on a framework that allows an ecology of agents to live on users' computers on the Internet. Participants run a server on their machine that will host a local population of agents. Each server has a window open on the user's screen; agents render themselves in the window to display information about the activities of other people. Agents communicate with each other to obtain information, across the network if necessary, and also move and copy themselves from machine to machine. Users express their preferences about agents by rewarding or punishing individual agents as they see fit. The system will be designed to work for as many users as can be recruited; for the purposes of this thesis research the network will consist of about fifteen users with a total of roughly two hundred agents of twenty different species.

Server Environments

The primary component of the system is a distribute agent server, a program that resides on each user's computer and accepts agents. The servers are the environment of the ecology -- they are the homes for the agents, the world they experience. Servers control the senses of the agents, the effects the agents can have, and the topology of the environment. These properties are made specific in the API that the server exposes to the agents for acquiring data, being visible to users, and moving themselves to other servers. The agents themselves are simply small programs that are written to the server API.

The server provides the agents with access to various kinds of data. It defines what agents are capable of knowing. The server will provide data about whether a user is present at the moment, how busy he is, and what he is doing. The server will also tell agents information about the status of the server itself; how busy the machine and the local network are, what other agents are present. This information about machine and user activity will give agents a rich data stream as input.

Agents take in data from their sensors, process it, and present the information to the user. A variety of actuators for agents can be imagined. For the purposes of this thesis the output available to the agent will be quite simple -- just access to a window and graphic drawing commands. The system could be expanded to allow all sorts of other interesting output modalities such as sound or ambient displays, but that is a topic outside the scope of this thesis.

The world of the agents is the network of interconnected servers. An agent initially will only know about other agents on its home machine. To learn about agents on another machine, an agent must first either move itself or send out a messenger. Once two agents have met, they can move away and continue contact over the Internet. Agent mobility is limited by the servers; agents can only move to a server's neighbors. Limited communications brings structure to the network and will hopefully induce interesting agent dynamics.

Agents Representing Presence and Activity

The system will contain three kinds of agents. The most visible genus of agents will be the representation agents, those that present presence data with animations and interpretive graphics. Multiple species of display agents will live in the network, embodying a diversity of different visualization strategies. A second type of agents are informational agents: programs that collect and process data and make it available to representation agents. Informational agents broker information about users, such as whether someone is online, how busy she is, what she is currently working on, her interaction with the Web. A third genus of agents will act as messengers, moving from machine to machine to create communication links between informational agents and display agents.

All of these types of agents work together, cooperating to provide representations of presence and activity. Agents will communicate via simple Internet sockets. For example, a representation agent could have the goal of telling me how busy my friend is at her keyboard. This agent would first send out a messenger agent to my friend's computer to locate an informational agent there that will provide data about my friend's keyboard activity. The messenger would then return home and introduce the display agent to the informational agent. Contact established, the representation agent can now render my friend's keystroke data with a graphical display. The agent network as a whole will be a complicated system of agents producing and consuming information. While agents will often cooperate to fulfill a task, they will also be competing for the the right to live on machines. Agents live or die on the whims of users.

User Interaction

People are a part of this artificial ecosystem, both actively and passively. Passive participation is implicit in the design -- because the agents themselves are active, a person can use the system by simply sitting back and watching what the agents are doing. Agents will come into the server without a user's deliberate request and will constantly be sensing data.

However users will also actively affect the ecology by expressing their preferences about individual agents. For example, a user of the system might decide that a new representational agent that just came in is annoying or is wasting CPU time providing a function the user is not interested in. In this case the user could express disapproval by simply killing the agent off his server. Similarly, if a representation agent is well-liked by a user it can be rewarded, allowed to survive on the user's system and spawn children on neighboring computers. Users will be explicitly aware of informational agents that are collecting data on their machines and messenger agents traveling through; if an agent is revealing too much information or is taking up too much bandwidth, the user can kill it. Agents will compete for the acceptance of users; user feedback will create a selective pressure on the agent ecology, thereby shaping the global population according to people's tastes.

The system will also be open-ended. Motivated users can write their own agents and load them on servers, adding new inhabitants into the ecosystem. Time permitting, a simple genetic algorithm will be implemented so that new subspecies of agents can arise and evolve spontaneously.

Summary of Application Scenario

A constantly active agent ecology will operate to make people's presence on the Internet visible. The ecological metaphor will create a system that is open-ended and adaptable, allowing a diversity of agents to exist while also giving users the ability to express their individual preferences. The agents themselves will live in a complex environment, constantly seeking out new people to impress, new data to acquire, new machines to live on. The system will be both entertaining and useful; the process of building and studying it will give insights into several important research areas. Creating the system will require coordinating three things:


next up previous contents
Next: Research Activities Up: No Title Previous: Introduction

Formatted: Tue Dec 2 14:47:20 EST 1997
Nelson Minar