This paper describes an architectural framework for the creation of applications based on mobile software agents. As networks grow in popularity, especially the Internet, bandwidth becomes an important issue. At the same time, more and more information is made available on the Internet. This not only aggravates the bandwidth problem but also demands more user search time. Mobile software agents are likely candidate solution to this problem. However, there are currently no common framework for developing agent-based applications. This involves developing an architecture for both the agent as well as the agent execution environment that is flexible, general and able to function efficiently. It is found that many of such Internet-based applications share many commonalties. By having a framework that abstracts away the specific functionality of the application, we are able to extract the common features and thus reuse much of the general architecture. This in turn reduces system design time and makes for more robust systems.