How does an AI agent typically discover which skills are available and determine when to invoke each one?