Building Generative AI Agents