Abstract
This paper presents a micro-level design perspective of a software agent that is capable of taking part in service-centric interactions with other agents in its environment. The agent software is not built as a monolithic entity rather it is engineered as a set of distinct modules. The ingredients of the agent software are formally specified using the RAI E specification language. Our formal approach to agent building provides clarity at the conceptual level and eases the process of implementation.