The basic idea of supporting the above-mentioned services is developing personal software assistants representing both users and service providers in the network (see Figure 2). The assistants should autonomously operate in the computer environment according to profile/preferences of their creators. By doing so the assistants will employ pro-activity, communicative ability, learning ability and reactivity [3,6,7,12,20]. The assistants will use both user and service provider models, knowledge base, as well as create them by monitoring user and provider interactions. To some degree this approach was considered for personal assistants of PC users [7,8,9,10,18], however, there is an important difference in focusing the assistants. Traditionally, PC users assistants are oriented to learning via monitoring (watching) users interaction, and this is also valuable for assistants of mobile device user. However, the main focus of the mobile device user assistants we see to be on pro-active prediction of users needs, taking into account the communication context and off-line analysis of information.
Figure 2. Software assistants for customers and providers
The assistant will keep user's interests/profiles, preferences and other user-related information and search, analyze and filter information about available services according to the user preferences. After such analysis the assistant may decide which information is valuable for the user, in which amount and at what time. Following this decision the assistant will send only highly relevant information to the user's mobile device. The information can be sent with different levels of details using SMS messages, web/WML-pages or traditional email depending on its priority for the user. We also would like to underline that intelligence of the assistant can vary for various applications, and it may include a spectrum of capabilities from a simple filtering to a pro-active reasoning, learning and taking into account user's geographical location, time, date, seasons etc.
Because of service providers can also be presented by their software assistants they may be involved into negotiation  or coordination with user's assistants via marketplaces (see Figure 3). This is important for achievement of personalization of services.
Figure 3. Marketplace for customer and provider assistants
The assistant will interact with environment and with other assistants employing location-based service provision as well as taking into account other context of communication. Functionality of the software assistant agent can be more sophisticated than just filtering incoming data. In particular, it may include pro-active reorganizing of the customer's web/WML pages. Such reorganizing may take into account time, date, geographical location and/or the customer's calendar book. For example, a customer may have a list of different offers on his web/WML page which are relevant to his interests. The personal software assistant, which knows the customer's calendar and preferences, may conclude that just before the customer's vacation, offers of travels (to Mediterranean countries) are of greater interest to the customer than other offers. After such a conclusion has been drawn, the assistants can pro-actively find and put such offers on top of the offer list, providing easy offer access and visibility to the customer. The agent's decisions can be based on present customer profile, common knowledge and the agent's deductive abilities. In another situation, geographical location of the customer may suggest some offers related to closely located shops. These offers can be pro-actively put on top of the offer list when the customer is near the shop location. In this case, the agent pro-actively searches for relevant offers from geographically neighboring sources (shops, services, enterprises) and presents the offers to the customer.
Both customers and/or service providers can form coalitions. This allows exchanging useful information and developing a common policy. Coalitions also provide opportunity for collaborative work of customers, providers or both. An example of a collaborating assistants network is presented in Figure 4.
Figure 4. Collaborative network for customers and services provider assistants
The assistants will be able to communicate in high-level languages [4,16] to other assistants as well as deliver information to the customer via web/WML-pages, SMS and other means for communication with users of mobile devices.