Supporting players with an NPC companion/sidekick is a commonly used GM device. A high level NPC can support with knowledge, social access and combat.
It can offer a safety net if the party get out of their depth. A high level NPC can also be an instigator of quests and storylines.
One alternative to what might be viewed as a common trope (and therefore unoriginal) is the low-level bespoke NPC.
Create an NPC to offer exactly the support required for the mission and no more. It avoids the risk of railroading.
This also prevents the NPC taking on roles that can be performed by a player character. Except for key moments, the NPCs contribution is primarily character RP.
For example; to support a mission against an ice dragon, my NPC sidekick has a fire staff and dragon lore. The NPC also needs to keep their magic-using identity secret. If you want to use this idea, be sure to check out my Dragon Name Generator to name your dragon, provide a description etc.
They can assist my players (if needed) at the crucial moment but in other combat their low Strength, lack of armor etc makes them a liability.
The need to keep their abilities secret prevents them from taking a lead role in the quest - keeping the focus on the PCs.
P.S.: Check out our full article on Creating Memorable NPCs
Happy Gaming!
-Stolph