Abstract
An architecture, and the accompanying infrastructural support, for agent-based software developement is described which supports the use of agent-oriented ideas at multiple levels of abstraction. At the lowest level are micro-agents, which are robust and efficient implementations of streamlined agents that can be used for many conventional programming tasks. Agents with more sophisticated functionality can be constructed by combining these micro-agents into more complicated agents. Consequently the system supports the consistent use of agent-based ideas throughout the software engineering process, since higher level agents may be hierarchically refined into more detailed agent implementations. We outline how micro-agents are implemented in Java and how they have been used to construct the Opal framework for the construction of more complex agents that are based on the FIPA specifications.