Carl Hewitt recently remarked that the question what is an agent? is embarrassing for the agent-based computing community in just the same way that the question what is intelligence? is embarrassing for the mainstream AI community. The problem is that although the term is widely used, by many people working in closely related areas, it defies attempts to produce a single universally accepted definition. This need not necessarily be a problem: after all, if many people are successfully developing interesting and useful applications, then it hardly matters that they do not agree on potentially trivial terminological details. However, there is also the danger that unless the issue is discussed, `agent' might become a `noise' term, subject to both abuse and misuse, to the potential confusion of the research community. It is for this reason that we briefly consider the question.
We distinguish two general usages of the term `agent': the first is weak, and relatively uncontentious; the second is stronger, and potentially more contentious.