Custom NPC

Is there way to add custom npc in game and add it on workshop?

Use the generic_actor entity and you can set a custom model for it.

If you want it to be able to shoot weapons, your best chance would be to use the character_manifest.txt, tho others may know better how to do that.

Founded in 2004, Leakfree.org became one of the first online communities dedicated to Valve’s Source engine development. It is more famously known for the formation of Black Mesa: Source under the 'Leakfree Modification Team' handle in September 2004.