Handheld wireless devices such as cellular phones and personal digital assistants (PDAs) have limited memory, storage, and processing power. In addition, small screens and limited input facilities make entering information tedious. It is therefore important that wireless mobile applications optimize resource usage and minimize input effort imposed on the user. One way is to download to the client only the information most relevant to the user, then present that information effectively, taking into account the user's preferences and history as well as the task at hand. This personalization approach minimizes the information to be displayed. In this paper, we present a mobile agent-based system for personalizing mobile services; we use mobile agents simply because such autonomous software entities have characteristics that can benefit mobile devices and the wireless environment. We introduce the tiered architecture of the proposed system and the functions of the different components; then we discuss how we use the Composite/Capabilities Preferences/Profile (CC/PP) in personalizing wireless mobile services. A proof of concept implementation has been developed using Java technologies.