A familiar is a spirit created by magical energies from a realm parallel to reality. These spirits are completely loyal to its summoner, and are made to obey their master in any way the individual sees fit. They take the form that their master desires: creatures such as wolves or dragons, objects such as books or pots, etc. Familiars are made for a specific purpose, including attack and defense, securing specific and important objects, a repository of information, and other things. They stay in the real world with their master after they are summoned, and have a psychic connection with them so they can always be in contact.
To create a familiar, a ritual circle must be drawn around the summoner, who then draws energy from the magical realm and shapes it into the form the familiar takes. These spells take weeks or months to perform, with much effort. Every familiar is unique, and have different attributes. They vary in intelligence, size, strength and weaknesses depending on the user's skill, tastes, and power. Once a form and attributes are chosen for the spirit, it cannot be changed unless the summoner banishes it back to the realm and starts the process again.
I want this system to work in a way similiar to a character creation concept in video games. A summoner would obviously want to make his familiar as perfect as possible without debilitating attributes. However, the energy from this magical realm is limitless. There is more than enough for all users, and cannot "run out" due to the number of people drawing from it. I want to design this system to stop individuals from making their spirits all powerful. I also want to limit the amount of spirits a person can have. How can this system be designed to ensure that familiars have both strength and weaknesses?