It is by now a cliche that there is no one, universally accepted defin
ition of intelligent agent technology, but a number of loosely related
techniques. Yet there are certain themes that appear common to agent-
based systems, and correspondingly, certain problems that must be addr
essed and overcome by all agent system builders. The aim of this paper
is to briefly survey the tools and techniques that can be used to add
ress these common issues, and that hence from a substrate for software
agent systems. This paper begins with a review of agent communication
languages, focusing particularly on the emerging standard known as KQ
ML. Then a thumbnail sketch of various programming languages for build
ing agent-based systems is presented, and there follows a discussion o
n support for ontologies, which allow agents to communicate using comm
only defined terms and concepts. Then other computing infrastructure s
upport for agent-based systems is considered, in particular the use of
client/server architectures and distributed object frameworks. Finall
y, some general comments and conclusions are presented.