I believe the solution is trial and error and then hard work...
Look at various bots' source codes. I advise you to pay more attention to the most simple ones, such as the HPB_bot template. Then you'll learn how to differenciate what are the HL engine function calls and what are the functions that the bot maker wrote himself ; also what data structures are provided with the HL SDK, and what are the data structures that the programmer made up himself.
To spawn one bot in the game, the key function in most bots source code is called "BotCreate()".
Good luck !