ShackHartman agent corforms to modern agent api