There is a wide gulf between the formal logics used by logicians to describe agents and the informal vocabulary used by people who actually build robotic or software agents. In an effort to help bridge the gap, this report applies techniques borrowed from the field of formal software methods to develop a common vocabulary. Terms useful for discussing agents are given formal definitions. A framework for describing agents, tasks and environments is developed using the Z specification language. The terms successful,... Read more