programming ai agents in python a practical guide